NGINX, произносится как «engine-ex», является известным веб-сервером с открытым исходным кодом. Изначально он предназначался для веб-обслуживания HTTP трафика, но в результате развития Nginx также может работать как почтовый прокси-сервер IMAP/POP3, а также как балансировщик нагрузки и HTTP-кэш-сервер.
Первоначальные требования
Для установки web-сервера nginx и php-fpm требуются права суперпользователя.
Процесс установки
В первую очередь необходимо подключить репозитории epel и remi:
Устанавливаем репозиторий epel:
sudo yum install epel-release
Далее скачиваем и устанавливаем репозиторий remi:
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Подключение репозиториев в одну строку:
sudo yum install epel-release && sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Примечание: репозиторий EPEL (Extra Packages for Enterprise Linux) - поддерживается в рамках проекта Fedora и содержит дополнительные пакеты, не входящие в стандартный набор CentOS.
Примечание: репозиторий REMI - является одним из самых популярных репозиториев, основной задачей которого является предоставление самых последних версий пакетов для rpm-based дистрибутивов.
Отключение selinux:
SELinux - система принудительного контроля доступа, реализованная на уровне ядра.
setenforce 0
echo "SELINUX=disabled" > /etc/sysconfig/selinux
echo "SELINUXTYPE=targeted" >> /etc/sysconfig/selinux
Установка службы управления пакетами:
sudo yum install yum-utils -y
Активация репозитория remi php 7.4:
sudo yum-config-manager --enable remi-php74
Установка веб сервера nginx и службы бесплатных SSL сертификатов Let's Encrypt
yum install nginx certbot certbot-nginx -y
Далее установите NGINX на ваш виртуальный сервер:
sudo yum install nginx -y
Далее установите php с основными модулями:
sudo yum install yum install php-bcmath php php-devel php-fpm php-common php-bz2 php-calendar php-core php-ctype php-curl php-date php-dba php-dom php-exif php-fileinfo php-filter php-ftp php-gd php-geoip php-gettext php-hash php-iconv php-imap php-json php-ldap php-libxml php-mbstring php-mcrypt php-mysqli php-mysqlnd php-openssl php-pcntl php-pcre php-pdo php-pdo_mysql php-pdo-dblib php-pdo_pgsql php-pdo_sqlite php-pgsql php-phar php-posix php-readline php-reflection php-session php-shmop php-xml php-snmp php-soap php-sockets php-standard php-sysvmsg php-sysvsem php-sysvshm php-tokenizer php-wddx php-xml php-xmlreader php-xmlwriter php-xsl php-opcache php-zip php-zlib php-cli php-pecl-mailparse php-pecl-apcu php-imagick -y
После того, как программное обеспечение будет установлено, необходимо настроить автозапуск веб-сервера nginx и php-fpm:
systemctl enable nginx.service
systemctl enable php-fpm.service
Также необходимо открыть порты 80 (http) и 443 (https) для подключения из сети Интернет:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Для коректной работы php необходимо создать конфигурацию php-fpm (выделить весь текст и вставить в консоль):
cat > /etc/php-fpm.d/www.conf <<EOF
[www]
user = nginx
user = nginx
listen.mode = 0666
listen = 0.0.0.0:9008
# как будут создаваться новые рабочие процессы
pm = dynamic
# максимальное оличество рабочих процессов
pm.max_children = 10
# число запущенных процессов при старте сервера
pm.start_servers = 2
# минимальное и максимальное количество процессов в простое
pm.min_spare_servers = 5
pm.max_spare_servers = 10
slowlog = /var/log/php-fpm/slow.log
chdir = /
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
EOF
После чего необходимо запустить веб-сервер nginx и php-fpm:
systemctl start nginx
Для проверки перейдите в браузере по доменному имени или ip-адресу вашего сервера:
systemctl start php-fpm
http://IP-or-domain-name/