В дальнейшем используя интернет страницу cloudhosting.lv, вы соглашаетесь с правилами пользования Куки. Узнай больше. Согласен
CentOS 7.5 - NGINX, PHP 7.3, LetsEncrypt SSL - Установка и настройка
NGINX превосходит большинство других веб-серверов по производительности, потенциалу для предотвращения атак и использованию ресурсов. Но многим людям трудно заставить все работать должным образом, по уважительной причине. Многие сценарии установки, которые управляют Nginx для вас или другими руководствами, могут дать вам инструкции по установке устаревшей версии, в которой могут отсутствовать критические обновления безопасности или изменения производительности, или конфигурация PHP, которая отображает ошибки сервера в браузерах. Мы проверили наш и гарантируем, что он работает в этой среде
Установите PHP 7.3 из репозитория Remi
Установите yum-utils для инструмента yum-config-manageryum install -y yum-utils
Установите репозитории Epel и Remi
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Включить Remi репозиторий
yum-config-manager --enable remi-php73
Примечание: Вы можете изменить «php73» на «php72» (или другие варианты) в данном руководстве, чтобы использовать различные версии PHP, если один здесь не поддерживает модули, необходимые Вам.
Запустите обновление и установите пакеты PHP
yum update -y yum install -y php73 php73-php-fpm
Нам нужно отредактировать конфигурацию php.ini для этой установки PHP (вы можете использовать любой текстовый редактор, мы предпочитаем nano, мы круче, чем vim'ers)
nano /etc/opt/remi/php73/php.ini
Заменить:
;cgi.fix_pathinfo=1
От:
cgi.fix_pathinfo=0
(Remove semicolon, change 1 to 0)
Now we need to edit the configuration for PHP-FPM
nano /etc/opt/remi/php73/php-fpm.d/www.conf
Заменить:
listen = 127.0.0.1:9000
От:
listen = /var/run/php73-fpm/php73-fpm.sock
Now edit the same file, lower in the configuration you will need to change the following nano /etc/opt/remi/php73/php-fpm.d/www.conf
Заменить:
;listen.owner = nobody ;listen.group = nobody
От:
listen.owner = nginx listen.group = nginx
(Удалите точку с запятой и замените «nobody» на «nginx»)
Теперь снова отредактируйте тот же файл, в верхней части конфигурации вам нужно будет изменить следующий nano /etc/opt/remi/php73/php-fpm.d/www.conf
Заменить:
user = apache group = apache
От:
user = nginx group = nginx
Теперь создайте каталог для файла сокет
mkdir /var/run/php73-fpm
Измените права доступа к файлу каталога сессий, чтобы сессии PHP работали правильно
chown -R nginx:nginx /var/opt/remi/php73/lib/php/session
После установки NGINX мы можем запустить PHP-FPM, если мы попробуем сейчас, это выдаст ошибку, так как системный пользователь "nginx" еще не создан
systemctl restart php73-php-fpm
systemctl enable php73-php-fpm
Примечание. Перед запуском PHP-FPM вам потребуется сначала установить Nginx ниже.
Установите NGINX Mainline из репозитория Nginx
Сначала мы должны добавить ключ NGINX PGP для проверки целостности и подтверждения происхождения пакетов.
wget http://nginx.org/keys/nginx_signing.key
rpm --import nginx_signing.key && rm -rf nginx_signing.key
Теперь добавим репозиторий NGINX, создайте новый файл
nano /etc/yum.repos.d/nginx.repo
Добавьте следующее содержимое и сохраните:
[nginx]
name=nginx baseurl=http://nginx.org/packages/mainline/centos/7/x86_64/ gpgcheck=1 enabled=1
Теперь мы можем установить NGINX Mainline
yum update -y
yum install -y nginx
Запустите NGINX и включите при загрузке
systemctl start nginx
systemctl enable nginx
Проверьте версию NGINX и статус, чтобы подтвердить
systemctl status nginx && nginx -v
Теперь мы можем создать новую конфигурацию виртуального хоста для нашего домена. Обязательно замените все вхождения "example.com" своим собственным доменом.
nano /etc/nginx/conf.d/example.com.conf
Вставьте следующее содержимое:
server {
listen 80; server_name www.example.com example.com; root /usr/share/nginx/example.com; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$query_string; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.htm { root /usr/share/nginx/example.com; } location ~ .php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php73-fpm/php73-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Теперь перезапустите NGINX, также перезапустите PHP-FPM, так как пользователь nginx был создан
systemctl restart nginx
systemctl restart php73-php-fpm
Давайте создадим веб-каталог для виртуального хоста и создадим индексный файл и информационный файл PHP, чтобы подтвердить, что обработка PHP работает
mkdir /usr/share/nginx/example.com
echo "test index" >> /usr/share/nginx/example.com/index.html echo "" >> /usr/share/nginx/example.com/info.php
Посетите ваш домен в веб-браузере, чтобы убедиться, что все работает. Вы можете зайти на свой домен /info.php, чтобы проверить модули и параметры PHP.
Чтобы обновить NGINX в будущем до новых основных сборок, просто запустите следующую
yum update nginx -y systemctl restart nginx
Если вы используете брандмауэр, убедитесь, что оба веб-порта firewalld:
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload
iptables:
iptables -I INPUT -p tcp --dport 443 -j ACCEPT iptables -I INPUT -p tcp --dport 80 -j ACCEPT
Установите LetsEncrypt SSL и включите HTTPS и HTTP / 2 для виртуального хоста
Теперь установите LetsEncrypt certbot
yum install -y certbot-nginx
Запустите certbot сейчас, он запросит каталог webroot и ваш адрес электронной почты. Установленный нами «certbot-nginx» должен автоматически изменять конфигурацию вашего виртуального хоста Nginx, поэтому никаких изменений вручную не требуется.
certbot --authenticator webroot --installer nginx
Создайте запись crontab для автоматического обновления сертификата каждый месяц.
crontab -e
Добавить:
35 4 * * 1 certbot renew >> /var/log/certbot-renew.log
Все сделано!