Site icon OS CONFIG

Запуск LEMP-сервера в Gentoo

Краткая инструкция по быстрой установке и настройке веб-сервера в связке Gentoo GNU/Linux, HTTP-сервера nginx, PHP и MariaDB (MySQL).

Установка сервера баз данных

Для начала необходимо установить MariaDB (MySQL) сервер. В подавляющем большинстве веб-сайтов это — один из главных шагов, без которого нет смысла запускать проект.

Ниже приведены несколько команд, которые помогут запустить сервер БД на начальном этапе:

# emerge --ask mariadb
# emerge --config mariadb
# rc-service mysql start
# rc-update add mysql default
# /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.

Exit mobile version