Краткая инструкция по быстрой установке и настройке веб-сервера в связке Gentoo GNU/Linux, HTTP-сервера nginx, PHP и MariaDB (MySQL).
Установка сервера баз данных
Для начала необходимо установить MariaDB (MySQL) сервер. В подавляющем большинстве веб-сайтов это — один из главных шагов, без которого нет смысла запускать проект.
Ниже приведены несколько команд, которые помогут запустить сервер БД на начальном этапе:
- установка и конфигурирование
# emerge --ask mariadb # emerge --config mariadb
- запуск службы mysql и включение её в автозагрузку
# rc-service mysql start # rc-update add mysql default
- начальная настройка с помощью mysql_secure_installation
# /usr/bin/mysql_secure_installation
Более подробно об установке сервера БД MariaDB (MySQL) можно почитать здесь: https://dondub.com/2021/05/zapusk-subd-mariadb-v-gentoo/
Установка веб-сервера
Теперь необходимо установить HTTP-сервер nginx
# emerge --ask nginx
После установки открываем конфигурационный файл /etc/nginx/nginx.conf
# nano /etc/nginx/nginx.conf
в секции server исправляем строчку listen на IP-адрес своего сервера:
listen 192.168.1.25:80;
также раскомментируем строчки секции server для https (SSL example) — получиться должно так:
# SSL example server { listen 192.168.1.25:443; server_name localhost; ssl on; ssl_certificate /etc/ssl/nginx/nginx.pem; ssl_certificate_key /etc/ssl/nginx/nginx.key; access_log /var/log/nginx/localhost.ssl_access_log main; error_log /var/log/nginx/localhost.ssl_error_log info; root /var/www/localhost/htdocs; }
Затем создадим директорию /var/www/localhost/htdocs/ и в ней файл index.html
# mkdir /var/www/localhost/htdocs/ # touch /var/www/localhost/htdocs/index.html
открываем его
# nano /var/www/localhost/htdocs/index.html
и впишем следующие строчки:
<html> <head> <title>nginx start page</title> </head> <body> <p align="center">Welcome to nginx web server</p> </body> </html>
После этого запускаем службу nginx и добавим её в автозагрузку
# rc-service nginx start # rc-update add nginx default
на другой машине в сети в браузере впишем адрес сервера:
http://IP-адрес-сервера
и увидим содержимое нашего файла index.html
или
https://IP-адрес-сервера
Установка PHP
Далее необходимо установить PHP с расширениями, в том числе и FPM (FastCGI Process Manager) для обработки скриптов
# USE="fpm mysql mysqli pdo zip unicode cgi curl gd json ssl session flatfile fileinfo opcache" emerge --ask php
После этого запускаем службу php-fpm и добавим её в автозагрузку
# rc-service php-fpm start # rc-update add php-fpm default
Снова открываем конфигурационный файл /etc/nginx/nginx.conf
# nano /etc/nginx/nginx.conf
и в секции server после строчки
root /var/www/localhost/htdocs;
впишем такие:
location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi.conf; fastcgi_pass unix:/run/php-fpm.socket; }
Также и для SSL.
Далее откроем конфигурационный файл /etc/php/fpm-php7.4/fpm.d/www.conf
# nano /etc/php/fpm-php7.4/fpm.d/www.conf
в самом конце допишем такие строчки:
listen = /run/php-fpm.socket listen.owner = nginx
После этого перезапускаем службы php-fpm и nginx
# rc-service php-fpm restart # rc-service nginx restart
Готово!
Теперь в директории /var/www/localhost/htdocs/ создадим файл info.php и откроем его
# touch /var/www/localhost/htdocs/info.php # nano /var/www/localhost/htdocs/info.php
впишем в него такие строчки:
<?php phpinfo(); ?>
Проверяем на другой машине в браузере
http://IP-адрес-сервера/info.php
или
https://IP-адрес-сервера/info.php
Должна появиться информация о PHP и его расширениях:
Настройка виртуальных хостов
Настройке виртуальных хостов на HTTP-сервере nginx в Gentoo посвящена отдельная статья. Почитать её можно здесь: https://dondub.com/2021/07/nastroyka-virtualnyh-hostov-nginx-v-gentoo/
Подключение SSL-сертификатов
Один из самых эффективных способов настройки SSL-сертификатов — это через специализированные сервисы. Например — Certbot — https://certbot.eff.org/lets-encrypt/gentoo-nginx
Там находится инструкция по установке и настройке сертификатов для Gentoo.