Установка LEMP-стека на CentOS 7
LEMP — это акроним, обозначающий набор программного обеспечения, широко используемого на веб-серверах. Рассмотрим его установку на CentOS 7, однако перед этим произведем обновление системы и выполним перезагрузку:
reboot
Настройка Firewall
Так как по умолчанию порты 80 и 443 закрыты настройками файрвола, следует выполнить несколько команд для получения доступа к веб-серверу из интернета.
Открываем порт 80:
Открываем порт 443:
Перезагружаем службу:
Проверяем внесенные изменения:
В итоге должно отобразиться следующее:
Установка Nginx
Включаем репозиторий EPEL, если это не было сделано ранее. EPEL содержит некоторые пакеты, которые не вошли в стандартный набор RHEL (CentOS), в том числе Nginx. Вводим следующую команду для подключения репозитория:
Установим непосредственно сам Nginx:
Запускаем сервис и добавляем его в автозапуск:
sudo systemctl enable nginx
Установка MariaDB
Теперь перейдем к установке и первоначальной настройке СУБД:
Запускаем службу аналогично Nginx:
sudo systemctl enable mariadb
Следующей командой запустим базовую настройку безопасности:
Процесс заключается в установке пароля root-доступа к базам, отключении анонимного и удаленного доступа и удалении тестовых баз. Если не требуется иное, читаем запрос и соглашаемся нажатием клавиши "Y".
Установка PHP 7.3
Поддерживаемые версии PHP можно посмотреть на официальном сайте. В нашем случае устанавливаем PHP версии 7.3 и подключаем репозиторий Remi следующей командой:
Далее устанавливаем пакет yum-utils для работы с репозиторием Remi:
Теперь нужно активировать репозиторий и запустить установку пакетов PHP 7.3:
sudo yum install php73 -y
Завершим процесс установки подключением часто используемых модулей и запуском php-fpm:
systemctl start php-fpm
systemctl enable php-fpm
Настройка PHP
Открываем файл настроек php.ini:
Меняем значение cgi.fix_pathinfo. Данное изменение внесет запрет на исполнение произвольного кода на сервере с правами PHP-процесса при загрузке файла:
cgi.fix_pathinfo=0 #Убираем комментарий ";" в начале строки и меняем 1 на 0
..
Далее меняем группу и пользователя с Apache на Nginx в конфигурационном файле php-fpm:
Получаем:
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
Перезапускаем php-fpm:
Настройка Nginx
Откроем файл конфигураций Nginx:
Вносим следующие изменения в файл:
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;
}
}
Настало время проверить наш веб-сервер. Создадим страницу по следующему пути:
Вставим следующую строку и сохраним файл:
Перезапустим Nginx командой:
Теперь, если вы зайдете через браузер на ваш веб-сервер по адресу http://server_name/info.php (http://xxx.xxx.xxx.xxx/info.php, где xxx.xxx.xxx.xxx — адрес), то увидите информационную страницу: