feroom

CentOS 7 установка и настройка вебвервера (Nginx, PHP 7., PerconaDB)

1 сообщение в этой теме

Мануал по установке и вебсервера на "чиситую" CentOS 7

1. Подготовка операционной системы:

- Отключаем firewalld (планируется использование iptables)

systemctl disable firewalld
systemctl stop firewalld

* Описание правил iptables и автозагрузка, будут описаны в отдельном мануале.

- Обновим дистрибутив до актуальной версии

yum -y update

- Установим простой текстовый редактор nano (понадобится в дальнейших шагах, можно использовать и vi, команды немного изменятся*)

yum -y install nano

 

nginx.png

 

2. Установка и базовая настройка Nginx

- Ставить будем свежую версию из репозитория yum
Для этого добавим репозиторий:

nano /etc/yum.repos.d/nginx.repo

- Вставим следующее содержимое:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

- Обновим информацию из репозиториев:

yum updateinfo

- Установим Nginx

yum -y install nginx

 - Запускаем и разрешаем автозагрузку сервиса nginx
 

systemctl start nginx
systemctl enable nginx

Вебсервер запустился. Далее переходим к настройке

3. Отредактируем конфигурационный файл:
 

nano /etc/nginx/nginx.conf

- Приводим его к следующему виду:
 

worker_processes auto;
access_log off;
server_tokens off;

sendfile on;
tcp_nopush on;
tcp_nodelay on;

keepalive_timeout 0;

 

149px-PHP-logo.svg.png

 

4. Установка php 7

- Добавим репозиторий Webtatic

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

- Обновим информацию из репозиториев:

yum updateinfo

 

- Установим PHP 7.1 и наиболее часто используемые модули
 

yum install php71w-fpm php71w-opcache php71w-cli php71w-common php71w-gd php71w-mbstring php71w-mcrypt php71w-mysqlnd php71w-xml

- Запустим и разрешим автозагрузку php-fpm

systemctl start php-fpm
systemctl enable php-fpm

 

5. Настойка PHP-FPM

- Редактируем конфигурационный файл (приводим его к следующему виду)

user = nginx
group = nginx

listen = /var/run/php-fpm.sock

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

- Перезапустим php-fpm

systemctl stop php-fpm
systemctl start php-fpm

- Создаем конфигурацию для взаимодействия Nginx и php-fpm

(отредактируйте файл и приведите к следующему виду)

server {
    listen       80;
    server_name  servertest.net;

    root   /usr/share/nginx/html;
    index  index.php index.html;

    location ~ .php$ {
        try_files $uri = 404;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

- Применяем изменения:

systemctl restart nginx

 

logo.png

 

5. Установка Percona (На данном этапе, вместо Percona, можно установить MySQL, MariaDB, в данном примере будет описана установка именно Percona)

- Добавляем репозиторий и обновляем информацию:

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum updateinfo

- Установим Percona-server:

yum -y install Percona-Server-server-57

- Запускаем и разрешаем автозагрузку:

systemctl start mysql
systemctl enable mysql

- Сервис успешно запустился, пароль от пользователя root смотрим следующей командой:
 

cat /var/log/mysqld.log | grep generated

Данная команда выведет, следующую строку:

Дата и время: [Note] A temporary password is generated for root@localhost: KJd87saHLOu78Hn

В данному случае пароль от пользователя root@localhost установлен KJd87saHLOu78Hn

- Изменим пароль (Можно оставить и пользоваться этим, но в логе он будет и его сможет получить другой пользователь системы с правами на чтение директории /var/log/*)

mysql_secure_installation

Отвечаем на все вопросы и пароль будет изменен.

*Пример вывода данной команды:

Securing the MySQL server deployment.

Enter password for user root:
The 'validate_password' plugin is installed on the server.
The subsequent steps will run with the existing configuration
of the plugin.
Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

New password:

Re-enter new password:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

** В процессе изменения пароля, хотелось бы предупредить о том, что длинна пароля от 12 символов и проверяется его сложность (наличие заглавных +  строчных букв + цифры).

 

- Откорректируем конфигурационный файл:

nano /etc/percona-server.conf.d/mysqld.cnf

В секции [mysqld] добавляем следующие параметры, при необходимости правим под свои нужды:

bind-address=127.0.0.1
# Следующим параметром можно отключить проверку сложности пароля, не рекомендую, но иногда это необходимо
# validate-password=off
innodb_buffer_pool_size=2G
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method=O_DIRECT
max_connections=300

Важным параметром является innodb_buffer_pool_size. Устанавливаем его равным 50%-80% от оперативной памяти или больше размера Вашей базы.

(Например база данных весит 50Mb, параметр, можно выставить с запасом innodb_buffer_pool_size=100)

- Перезапустим сервис :

systemctl restart mysql

 

 На этом базовая установка и настройка вебсевера на CentOS 7 (Nginx+php-fpm+PerconaDB) завершена. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах