Установка LEMP-стека на CentOS 7

Установка LEMP-стека на CentOS 7

https://t.me/admguides

LEMP — это акроним, обозначающий набор программного обеспечения, широко используемого на веб-серверах Linux.

Рассмотрим его установку на CentOS 7, однако перед этим произведем обновление системы и выполним перезагрузку:

sudo yum update -y

reboot


Настройка Firewall

Так как по умолчанию порты 80 и 443 закрыты настройками файрволла, следует выполнить несколько команд для получения доступа к веб-серверу из интернета.

Открываем порт 80:

sudo firewall-cmd --permanent --zone=public --add-service=http


Открываем порт 443:

sudo firewall-cmd --permanent --zone=public --add-service=https


Перезагружаем службу:

sudo systemctl restart firewalld


Проверяем внесенные изменения:

sudo firewall-cmd --zone=public --list-services


В итоге должно отобразиться следующее:

dhcpv6-client http https ssh


Установка Nginx

Включаем репозиторий EPEL, если это не было сделано ранее. EPEL содержит некоторые пакеты, которые не вошли в стандартный набор RHEL (CentOS), в том числе Nginx. Вводим следующую команду для подключения репозитория:

sudo yum install epel-release -y


Установим непосредственно сам Nginx:

sudo yum install nginx -y


Запускаем сервис и добавляем его в автозапуск:

sudo systemctl start nginx

sudo systemctl enable nginx


Установка MariaDB

Теперь перейдем к установке и первоначальной настройке СУБД:

sudo yum install mariadb-server mariadb -y


Запускаем службу аналогично Nginx:

sudo systemctl start mariadb

sudo systemctl enable mariadb


Следующей командой запустим базовую настройку безопасности:

sudo mysql_secure_installation


Процесс заключается в установке пароля root-доступа к базам, отключении анонимного и удаленного доступа и удалении тестовых баз. Если не требуется иное, читаем запрос и соглашаемся нажатием клавиши “Y”.


Установка PHP 7.3

Поддерживаемые версии PHP можно посмотреть на официальном сайте. В нашем случае устанавливаем PHP версии 7.3 и подключаем репозиторий Remi следующей командой:

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm


Далее устанавливаем пакет yum-utils для работы с репозиторием Remi:

sudo yum install yum-utils


Теперь нужно активировать репозиторий и запустить установку пакетов PHP 7.3:

sudo yum-config-manager --enable remi-php73

sudo yum install php73 -y


Завершим процесс установки подключением часто используемых модулей и запуском php-fpm:

sudo yum install php-fpm php-mysql php-cli php-mbstring php-opcache php-curl php-gd -y

systemctl start php-fpm

systemctl enable php-fpm


Настройка PHP

Открываем файл настроек php.ini:

nano /etc/php.ini

Меняем значение cgi.fix_pathinfo. Данное изменение внесет запрет на исполнение произвольного кода на сервере с правами PHP-процесса при загрузке файла:

..

cgi.fix_pathinfo=0 #Убираем комментарий ";" в начале строки и меняем 1 на 0

..

Далее меняем группу и пользователя с Apache на Nginx в конфигурационном файле php-fpm:

sudo nano /etc/php-fpm.d/www.conf

Получаем:

; RPM: apache user chosen to provide access to the same directories as httpd

user = nginx

; RPM: Keep a group allowed to write in log dir.

group = nginx

Перезапускаем php-fpm:

sudo systemctl restart php-fpm


Настройка Nginx

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

sudo nano /etc/nginx/nginx.conf


Вносим следующие изменения в файл:

server {

listen 80 default_server;

listen [::]:80 default_server;

server_name 46.243.182.96; #Пишем имя сервера или IP адрес

root /usr/share/nginx/html;

include /etc/nginx/default.d/*.conf;

location / {

root /usr/share/nginx/html;

index index.php index.html index.htm; #Добавляем index.php

}

error_page 404 /404.html;

location = /40x.html {

root /usr/share/nginx/html;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

location ~ .php$ { #Добавляем возможность обрабатывать запросы PHP

root /usr/share/nginx/html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}


Настало время проверить наш веб-сервер. Создадим страницу по следующему пути:

nano /var/www/html/info.php

Вставим следующую строку и сохраним файл:

<?php phpinfo();?>

Перезапустим Nginx командой:

sudo systemctl restart nginx


Теперь, если вы зайдете через браузер на ваш веб-сервер по адресу http://server_name/info.php (http://xxx.xxx.xxx.xxx/info.php, где xxx.xxx.xxx.xxx — адрес), то увидите информационную страницу:

Установка PHP


Источник

Report Page