Установка веб сервера nginx + php-fpm + letsencrypt (certbot) на centos 7

Что такое NGINX?

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
systemctl start php-fpm
Для проверки перейдите в браузере по доменному имени или ip-адресу вашего сервера:

http://IP-or-domain-name/

  • centos 7, nginx, php-fpm, certbot, letsencrypt
  • 0 Пользователи нашли это полезным

Помог ли вам данный ответ?