Установка серверов · 4 min read · Dec 23, 2025

Как установить Lighttpd с PHP-FPM и MariaDB на CentOS 7

Lighttpd — это безопасный, быстрый, соответствующий стандартам веб-сервер, предназначенный для сред, критичных к скорости. Этот учебник показывает, как установить Lighttpd на сервере CentOS 7 с поддержкой PHP (через PHP-FPM) и поддержкой MySQL. PHP-FPM (FastCGI Process Manager) — это альтернативная реализация PHP FastCGI с дополнительными функциями, полезными для сайтов любого размера, особенно для более загруженных сайтов. В этом учебнике я использую PHP-FPM вместо spawn-fcgi от Lighttpd.

1 Предварительная заметка

В этом учебнике я использую имя хоста server1.example.com с IP-адресом 192.168.1.100. Эти настройки могут отличаться у вас, поэтому вам нужно заменить их, где это необходимо.

2 Установка MariaDB в качестве замены MySQL

Сначала мы устанавливаем MySQL следующим образом:

yum -y install mariadb mariadb-server

Затем мы создаем системные ссылки для автозапуска MySQL (чтобы MySQL запускался автоматически при загрузке системы) и запускаем сервер MySQL:

systemctl enable mariadb.service  
systemctl start mariadb.service

Установите пароли для учетной записи root MariaDB:

mysql_secure_installation
[root@server1 ~]# mysql_secure_installation  
/usr/bin/mysql_secure_installation:
ПРИМЕЧАНИЕ: РЕКОМЕНДУЕТСЯ ЗАПУСКАТЬ ВСЕ ЧАСТИ ЭТОГО СКРИПТА ДЛЯ ВСЕХ СЕРВЕРОВ MariaDB, ИСПОЛЬЗУЕМЫХ В ПРОИЗВОДСТВЕ! ПОЖАЛУЙСТА, ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ КАЖДЫЙ ШАГ!
Чтобы войти в MariaDB и обеспечить ее безопасность, нам нужен текущий  
пароль для пользователя root. Если вы только что установили MariaDB и  
еще не установили пароль root, пароль будет пустым,  
поэтому вам просто нужно нажать Enter здесь.
Введите текущий пароль для root (нажмите Enter для отсутствия): <-- нажмите Enter  
Хорошо, пароль успешно использован, продолжаем...
Установка пароля root гарантирует, что никто не сможет войти в учетную запись root MariaDB  
без надлежащей авторизации.
Установить пароль root? [Y/n] <-- y  
Новый пароль: <-- введите новый пароль  
Повторите новый пароль: <-- введите новый пароль  
Пароль успешно обновлен!  
Перезагрузка таблиц привилегий..  
... Успех!
По умолчанию установка MariaDB имеет анонимного пользователя, позволяя любому  
войти в MariaDB без необходимости создания учетной записи пользователя для  
него. Это предназначено только для тестирования и для того, чтобы установка  
проходила немного легче. Вам следует удалить их перед переходом в  
производственную среду.
Удалить анонимных пользователей? [Y/n] <-- y  
... Успех!
Обычно root должен иметь возможность подключаться только с 'localhost'. Это  
гарантирует, что кто-то не сможет угадать пароль root из сети.
Запретить удаленный вход root? [Y/n] <-- y  
... Успех!
По умолчанию MariaDB поставляется с базой данных с именем 'test', к которой любой может  
получить доступ. Это также предназначено только для тестирования и должно быть удалено  
перед переходом в производственную среду.
Удалить тестовую базу данных и доступ к ней? [Y/n] <-- y  
- Удаление тестовой базы данных...  
... Успех!  
- Удаление привилегий на тестовую базу данных...  
... Успех!
Перезагрузка таблиц привилегий обеспечит немедленное применение всех изменений,  
внесенных до сих пор.
Перезагрузить таблицы привилегий сейчас? [Y/n] <-- y  
... Успех!
Очистка...
Готово! Если вы завершили все вышеперечисленные шаги, ваша установка MariaDB  
должна быть теперь безопасной.
Спасибо за использование MariaDB!

3 Установка Lighttpd

Поскольку Lighttpd и PHP-FPM недоступны из официальных репозиториев CentOS, нам нужно включить репозиторий EPEL:

yum -y install epel-release

Импортируйте GPG-ключ EPEL:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

и затем выполните:

yum update

После этого мы можем установить Lighttpd следующим образом:

yum -y install lighttpd

Затем мы создаем системные ссылки для автозапуска Lighttpd (чтобы Lighttpd запускался автоматически при загрузке системы) и запускаем его:

systemctl enable lighttpd.service  
systemctl start lighttpd.service

Если Lighttpd не удается запустить с сообщением об ошибке…

(network.c.203) socket failed: Address family not supported by protocol

… откройте /etc/lighttpd/lighttpd.conf…

nano /etc/lighttpd/lighttpd.conf

… и измените server.use-ipv6 с enable на disable:

[...]  
##  
## Использовать IPv6?  
##  
server.use-ipv6 = "disable"  
[...] 

Затем попробуйте снова запустить Lighttpd - теперь он должен работать без проблем:

systemctl start lighttpd.service

У Lighttpd корневая директория документа находится в /var/www/ htdocs (базовая директория /var/www плюс htdocs как подкаталог согласно файлу lighttpd.conf), но он устанавливает файлы по умолчанию в /var/www/ lighttpd. Это несоответствие, поэтому нам нужно переименовать директорию следующим образом.

mv /var/www/lighttpd /var/www/htdocs

Теперь откройте ваш браузер и перейдите по адресу http://192.168.1.100, и вы должны увидеть следующую страницу:

страница начала lighttpd

Корневая директория документа Lighttpd — это /var/www/htdocs/ на CentOS 7, а файл конфигурации — /etc/lighttpd/lighttpd.conf.

4 Установка PHP

Мы можем заставить PHP работать в Lighttpd через PHP-FPM, который мы устанавливаем следующим образом:

yum -y install php-fpm lighttpd-fastcgi

PHP-FPM — это демон, который запускает сервер FastCGI на порту 9000.

Откройте /etc/php-fpm.d/www.conf…

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

… и установите пользователя и группу на lighttpd:

[...]  
; Unix user/group of processes  
; Примечание: пользователь обязателен. Если группа не установлена, будет использована группа по умолчанию пользователя  
;       будет использована.  
; RPM: apache Выбрано, чтобы иметь возможность получить доступ к некоторым директориям как httpd  
user = lighttpd  
; RPM: Сохраните группу, разрешенную для записи в директорию логов.  
group = lighttpd  
[...] 

Создайте системные ссылки для автозапуска PHP-FPM и запустите его:

systemctl enable php-fpm.service  
systemctl start php-fpm.service
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.