Установка сервера · 6 min read · Dec 23, 2025
Установка Lighttpd с PHP (режим PHP-FPM) и MySQL или MariaDB на Ubuntu 15.10
Lighttpd — это безопасный, быстрый и соответствующий стандартам веб-сервер, разработанный для сред, критичных к скорости. Этот учебник показывает, как установить Lighttpd на сервер Ubuntu 15.10 с поддержкой PHP (через PHP-FPM) и MySQL или MariaDB. PHP-FPM (FastCGI Process Manager) — это альтернативная реализация PHP FastCGI с некоторыми дополнительными функциями, полезными для сайтов любого размера, особенно более загруженных сайтов. В этом учебнике я использую PHP-FPM вместо spawn-fcgi Lighttpd.
1 Предварительная заметка
В этом учебнике я использую имя хоста server1.example.com с IP-адресом 192.168.1.100. Эти настройки могут отличаться у вас, поэтому вам нужно заменить их там, где это необходимо.
Я выполняю все шаги в этом учебнике с правами root, поэтому убедитесь, что вы вошли как root, прежде чем продолжить:
sudo su2 Установка MySQL / MariaDB
Ubuntu предоставляет пакеты для оригинального сервера базы данных MySQL (MySQL 5.6) и форка MySQL MariaDB (10). Большинство пользователей предпочитают использовать MariaDB, так как она немного быстрее, чем MySQL, и разработка идет быстрее. Я оставляю решение о том, что установить, вам, и объясню оба варианта. Следуйте инструкциям в главе 2.1 или 2.2, но не в обеих.
2.1 Установка MySQL
Установите MySQL следующим образом:
apt-get -y install mysql-server-5.6 mysql-client-5.6Вам будет предложено ввести пароль для пользователя root MySQL — этот пароль действителен для пользователя root@localhost, а также для [email protected], поэтому нам не нужно будет указывать пароль root MySQL вручную позже:
Новый пароль для пользователя MySQL “root”: <– вашпарольrootsql
Повторите пароль для пользователя MySQL “root”: <– вашпарольrootsql
2.2 Установка MariaDB
Установите MariaDB следующим образом:
apt-get -y install mariadb-server mariadb-clientТеперь мы устанавливаем пароль root для MariaDB.
mysql_secure_installationВам будут заданы следующие вопросы:
Введите текущий пароль для root (нажмите Enter, если нет): <-- нажмите Enter
Установить пароль root? [Y/n] <-- y
Новый пароль: <-- Введите новый пароль root MariaDB здесь
Повторите новый пароль: <-- Повторите пароль
Удалить анонимных пользователей? [Y/n] <-- y
Запретить удаленный вход root? [Y/n] <-- y
Перезагрузить таблицы привилегий сейчас? [Y/n] <-- y3 Установка Lighttpd
Lighttpd доступен как пакет Ubuntu, поэтому мы можем установить его следующим образом:
apt-get -y install lighttpdТеперь направьте ваш браузер на http://192.168.1.100/index.lighttpd.html, и вы должны увидеть страницу-заглушку Lighttpd:

Корневая директория документа Lighttpd по умолчанию — /var/www/html на Ubuntu, а конфигурационный файл — /etc/lighttpd/lighttpd.conf. Дополнительные конфигурации хранятся в файлах в директории /etc/lighttpd/conf-available — эти конфигурации могут быть включены с помощью команды lighttpd-enable-mod, которая создает символическую ссылку из директории /etc/lighttpd/conf-enabled на соответствующий конфигурационный файл в /etc/lighttpd/conf-available. Вы можете отключить конфигурации с помощью команды lighttpd-disable-mod.
4 Установка PHP 5.6
Мы можем заставить PHP5 работать в Lighttpd через PHP-FPM, который мы устанавливаем следующим образом:
apt-get -y install php5-fpm php5PHP-FPM — это демон-процесс (с единицей службы systemd php5-fpm.service), который запускает сервер FastCGI на сокете /var/run/php5-fpm.sock.
5 Конфигурирование Lighttpd и PHP
Чтобы включить PHP5 в Lighttpd, мы должны изменить /etc/php5/fpm/php.ini и раскомментировать строку cgi.fix_pathinfo=1:
nano /etc/php5/fpm/php.ini[...]
; cgi.fix_pathinfo предоставляет *реальную* поддержку PATH_INFO/PATH_TRANSLATED для CGI. PHP
; предыдущее поведение заключалось в том, чтобы устанавливать PATH_TRANSLATED в SCRIPT_FILENAME и не понимать,
; что такое PATH_INFO. Для получения дополнительной информации о PATH_INFO смотрите спецификации cgi. Установка
; этого в 1 заставит PHP CGI исправить свои пути в соответствии со спецификацией. Установка
; нуля заставляет PHP вести себя как раньше. По умолчанию 1. Вы должны исправить свои скрипты
; чтобы использовать SCRIPT_FILENAME вместо PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]Конфигурационный файл Lighttpd для PHP /etc/lighttpd/conf-available/15-fastcgi-php.conf подходит для использования с spawn-fcgi, однако мы хотим использовать PHP-FPM, поэтому мы создаем резервную копию файла (с именем 15-fastcgi-php-spawnfcgi.conf) и изменяем 15-fastcgi-php.conf следующим образом:
cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf
nano 15-fastcgi-php.conf# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
## Запустите сервер FastCGI для php (нужен пакет php5-cgi)
fastcgi.server += ( ".php" =>
((
"socket" => "/var/run/php5-fpm.sock",
"broken-scriptfilename" => "enable"
))
)Чтобы включить конфигурацию fastcgi, выполните следующие команды:
lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-phpЭто создаст символические ссылки /etc/lighttpd/conf-enabled/10-fastcgi.conf, которая указывает на /etc/lighttpd/conf-available/10-fastcgi.conf, и /etc/lighttpd/conf-enabled/15-fastcgi-php.conf, которая указывает на /etc/lighttpd/conf-available/15-fastcgi-php.conf:
ls -l /etc/lighttpd/conf-enabledroot@server1:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled
total 0
lrwxrwxrwx 1 root root 33 Nov 11 13:59 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Nov 11 13:59 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.confЗатем мы перезагружаем Lighttpd:
service lighttpd force-reload6 Тестирование PHP5 / Получение информации о вашей установке PHP5
Корневая директория документа веб-сайта по умолчанию — /var/www/html. Теперь мы создадим небольшой PHP-файл (info.php) в этой директории и вызовем его в браузере. Файл отобразит множество полезных деталей о нашей установке PHP, таких как установленная версия PHP.
nano /var/www/html/info.phpТеперь мы вызываем этот файл в браузере (например, http://192.168.1.100/info.php):

Как вы видите, PHP 5.6 работает, и он работает через FPM/FastCGI, как показано в строке Server API. Если вы прокрутите вниз, вы увидите все модули, которые уже включены в PHP5. MySQL там не указан, что означает, что у нас еще нет поддержки MySQL в PHP.
7 Получение поддержки MySQL в PHP5
Чтобы получить поддержку MySQL в PHP, мы можем установить пакет php5-mysqlnd. Это предпочтительнее, чем пакет php5-mysql, так как он содержит более новый драйвер MySQL, который поддерживает как MySQL, так и MariaDB. Хорошей идеей будет установить некоторые другие модули PHP5, так как они могут понадобиться для ваших приложений. Вы можете искать доступные модули PHP5 следующим образом:
apt-cache search php5Выберите те, которые вам нужны, и установите их следующим образом:
apt-get -y install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xslXcache — это бесплатный и открытый кэш PHP opcode для кэширования и оптимизации промежуточного кода PHP. Он похож на другие кэши PHP opcode, такие как eAccelerator и APC. Настоятельно рекомендуется установить один из них, чтобы ускорить вашу страницу PHP.
Xcache можно установить следующим образом:
apt-get -y install php5-xcacheТеперь перезагрузите PHP-FPM:
service php5-fpm reloadТеперь перезагрузите http://192.168.1.100/info.php в вашем браузере и прокрутите вниз до раздела модулей снова. Теперь вы должны найти там множество новых модулей, включая модуль MySQL:

8 phpMyAdmin
phpMyAdmin — это веб-интерфейс, через который вы можете управлять вашими базами данных MySQL. Хорошей идеей будет установить его:
apt-get -y install phpmyadminВы увидите следующие вопросы:
Веб-сервер для автоматической перенастройки: <– lighttpd
Настроить базу данных для phpmyadmin с dbconfig-common? <– да
Пароль административного пользователя базы данных: <-- Введите пароль root MySQL/MariaDB
Пароль приложения MySQL для phpmyadmin: <-- Нажмите ENTER
После этого вы можете получить доступ к phpMyAdmin по адресу http://192.168.1.100/phpmyadmin/:

9 Настройка PHP-FPM для использования TCP-соединения (по желанию)
По умолчанию PHP-FPM слушает на сокете /var/run/php5-fpm.sock. Также возможно заставить PHP-FPM использовать TCP-соединение. Для этого откройте /etc/php5/fpm/pool.d/www.conf…
nano /etc/php5/fpm/pool.d/www.conf… и измените строку listen следующим образом:
[...]
;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000
[...]Это заставит PHP-FPM слушать на порту 9000 по IP 127.0.0.1 (localhost). Убедитесь, что вы используете порт, который не занят в вашей системе.
Затем перезагрузите PHP-FPM:
service php5-fpm reloadДалее откройте конфигурационный файл PHP Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf и замените строку сокета на строки хоста и порта:
nano /etc/lighttpd/conf-available/15-fastcgi-php.conf# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
## Запустите сервер FastCGI для php (нужен пакет php5-cgi)
fastcgi.server += ( ".php" =>
((
"host" => "127.0.0.1",
"port" => "9000",
"broken-scriptfilename" => "enable"
))
)Наконец, перезагрузите Lighttpd:
service lighttpd force-reload10 Скачивание образа виртуальной машины этого учебника
Этот учебник доступен в виде готового к использованию образа виртуальной машины в формате ovf/ova для подписчиков Howtoforge. Формат VM совместим с VMWare и Virtualbox. Образ виртуальной машины использует следующие данные для входа:
SSH / Shell Вход
Имя пользователя: administrator
Пароль: howtoforge
Этот пользователь имеет права sudo.
MySQL / MariaDB Вход
Имя пользователя: root
Пароль: howtoforge
IP виртуальной машины — 192.168.1.100, его можно изменить в файле /etc/network/interfaces. Пожалуйста, измените все вышеприведенные пароли для обеспечения безопасности виртуальной машины.
11 Ссылки
- Lighttpd: http://www.lighttpd.net/
- PHP: http://www.php.net/
- PHP-FPM: http://php-fpm.org/
- MySQL: http://www.mysql.com/
- Ubuntu: http://www.ubuntu.com/
- phpMyAdmin: http://www.phpmyadmin.net/
Get new posts in your inbox
No spam. Unsubscribe anytime.