3.219.31.204

CentOS 7 - NGINX, PHP, LetsEncrypt SSL - Installation and Configuration

CentOS 7.5 - NGINX (Mainline), PHP 7.3, LetsEncrypt SSL - Uzstādīšana un konfigurācija

NGINX ir pārāks par vairumu citu tīmekļa serveru attiecībā uz veiktspēju, uzbrukumu mazināšanas potenciālu un resursu izmantošanu. Bet daudziem cilvēkiem ir grūti iegūt visu pareizi un pamatoti. Daudzi instalācijas skripti, kas jums pārvalda Nginx, vai citi ceļveži var sniegt jums norādījumus, kā instalēt novecojušu versiju, kurai, iespējams, trūkst kritisku drošības atjauninājumu vai veiktspējas izmaiņu, vai PHP konfigurāciju, kas pārlūkprogrammās rada servera kļūdas. Mēs esam pārbaudījuši savu un garantējam, ka tas darbojas šajā vidē.

Instalējiet PHP 7.3 no Remi krātuves

Instalējiet yum-utils rīkam yum-config-manager

yum install -y yum-utils

Instalējiet Epel un Remi krātuves

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

Iespējot Remi krātuvi

yum-config-manager --enable remi-php73

Piezīme. Šajā rokasgrāmatā jūs varat mainīt “php73” uz “php72” (vai citām versijām), lai izmantotu citu PHP versiju, ja šeit esošā neatbalsta jums nepieciešamos moduļus.

Palaist atjaunināšanu, pēc tam instalējiet PHP pakotnes

yum update -y

yum install -y php73 php73-php-fpm

Šīs PHP instalācijas laikā ir jārediģē php.ini konfigurācija (varat izmantot jebkuru teksta redaktoru, mēs dodam priekšroku nano, mēs esam vēsāki nekā vim'ers)

nano /etc/opt/remi/php73/php.ini

Aizvietot:

;cgi.fix_pathinfo=1

Ar:

cgi.fix_pathinfo=0

(Remove semicolon, change 1 to 0)

Tagad mums ir jārediģē PHP-FPM konfigurācija

nano /etc/opt/remi/php73/php-fpm.d/www.conf

Aizvietot:

listen = 127.0.0.1:9000

Ar:

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

Rediģējiet to pašu failu, zemākā konfigurācijā, kas jums būs jāmaina nano /etc/opt/remi/php73/php-fpm.d/www.conf

Aizvietot:

;listen.owner = nobody
;listen.group = nobody

Ar:

listen.owner = nginx
listen.group = nginx

(Noņemiet semikolu un mainiet “neviens” uz “nginx”)

Tagad rediģējiet to pašu failu vēlreiz, netālu no konfigurācijas augšdaļas, jums būs jāmaina nano /etc/opt/remi/php73/php-fpm.d/www.confAizvietot:

user = apache
group = apache

Ar:

user = nginx
group = nginx

Tagad izveidojiet kontaktligzdas faila direktoriju

mkdir /var/run/php73-fpm

Mainiet sesiju direktorija failu atļaujas, lai PHP sesijas darbotos pareizi

chown -R nginx:nginx /var/opt/remi/php73/lib/php/session

Pēc NGINX instalēšanas mēs varam sākt PHP-FPM, ja mēģināsim tagad, tas parādīs kļūdu, jo sistēmas nginx lietotājs vēl nav izveidots

systemctl restart php73-php-fpm

systemctl enable php73-php-fpm

Piezīme. Pirms PHP-FPM palaišanas vispirms būs jāinstalē Nginx.

Instalējiet NGINX Mainline no Nginx krātuves

Vispirms mums jāpievieno NGINX PGP atslēga, lai pārbaudītu integritāti un apstiprinātu pakotņu izcelsmi

wget http://nginx.org/keys/nginx_signing.key

rpm --import nginx_signing.key && rm -rf nginx_signing.key

Tagad varēsim pievienot NGINX repo, izveidot jaunu failu

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

Pievienojiet šo saturu un saglabājiet:

[nginx]

name=nginx
baseurl=http://nginx.org/packages/mainline/centos/7/x86_64/
gpgcheck=1
enabled=1

Tagad mēs varam instalēt NGINX Mainline

yum update -y

yum install -y nginx

Startējiet NGINX un iespējojiet sāknēšanas laikā

systemctl start nginx

systemctl enable nginx

Pārbaudiet NGINX versiju un statusu, lai apstiprinātu

systemctl status nginx && nginx -v

Tagad mēs varam izveidot jaunu virtuālo resursdatora konfigurāciju savam domēnam. Pārliecinieties, ka visi vietne “example.com” tiek aizstāti ar savu domēnu

nano /etc/nginx/conf.d/example.com.conf

Ielīmējiet šādu saturu:

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;
  }
}

Restartējiet NGINX, restartējiet arī PHP-FPM, jo nginx lietotājs ir izveidots tagad

systemctl restart nginx

systemctl restart php73-php-fpm

Izveidosim virtuālā resursdatora tīmekļa direktoriju tagad un izveidosim indeksa failu un PHP informācijas failu, lai apstiprinātu, ka PHP apstrāde darbojas

mkdir /usr/share/nginx/example.com

echo test index >> /usr/share/nginx/example.com/index.html
echo  >> /usr/share/nginx/example.com/info.php

Tagad apmeklējiet savu domēnu savā tīmekļa pārlūkprogrammā, lai pārliecinātos, ka viss darbojas. Varat doties uz savu domēnu /info.php, lai pārbaudītu PHP moduļus un parametrus

Lai nākotnē atjauninātu NGINX uz jaunām galvenajām versijām, vienkārši izpildiet šo

yum update nginx -y
systemctl restart nginx

Ja jūs izmantojat ugunsmūri, pārliecinieties, vai ir atļauts abu tīmekļa portu ugunsmūris:

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

Instalējiet LetsEncrypt SSL un virtuālajam resursdatoram iespējojiet HTTPS un HTTP / 2

Tagad instalējiet LetsEncrypt certbot

yum install -y certbot-nginx

Palaidiet certbot tagad, tas prasīs Webroot direktoriju un jūsu e-pastu. Mūsu instalētajam certbot-nginx automātiski jāmaina jūsu Nginx virtuālā resursdatora konfigurācija, tāpēc nav vajadzīgas manuālas izmaiņas.

certbot --authenticator webroot --installer nginx

Izveidojiet crontab ierakstu, lai sertifikātu automātiski atjaunotu katru mēnesi

crontab -e

Pievienot:

35 4 * * 1 certbot renew >> /var/log/certbot-renew.log

Viss pabeigts!