Установка ПО · 7 min read · Oct 31, 2025
Установка Lighttpd с PHP 7 (PHP-FPM) и MySQL 5.7 на Ubuntu 16.04 LTS
Lighttpd — это безопасный, быстрый, соответствующий стандартам веб-сервер, предназначенный для сред, критичных к скорости. Этот учебник показывает, как установить Lighttpd на сервер Ubuntu 16.04 с поддержкой PHP 7 (через PHP-FPM) и MySQL 5.7. PHP-FPM (FastCGI Process Manager) — это альтернативная реализация PHP FastCGI с дополнительными функциями, полезными для сайтов любого размера, особенно для более загруженных сайтов. В этом учебнике я использую PHP-FPM вместо spawn-fcgi Lighttpd.
1 Предварительная заметка
В этом учебнике я использую имя хоста server1.example.com с IP-адресом 192.168.1.100. Эти настройки могут отличаться у вас, поэтому вам нужно заменить их там, где это необходимо.
Я выполняю все шаги в этом учебнике с правами root, поэтому убедитесь, что вы вошли как root:
sudo -s2 Установка MySQL 5.7
Сначала мы устанавливаем MySQL следующим образом:
apt-get -y install mysql-server mysql-clientВам будет предложено ввести пароль для пользователя root MySQL — этот пароль действителен для пользователя root@localhost, а также для [email protected], поэтому нам не нужно указывать пароль root MySQL вручную позже:
Новый пароль для пользователя MySQL “root”: <– вашпарольmysql Повторите пароль для пользователя MySQL “root”: <– вашпарольmysql

Установщик установил пароль root MySQL, но есть еще несколько настроек, которые следует изменить для безопасной установки MySQL. Это можно сделать с помощью команды mysql_secure_installation.
mysql_secure_installationКоманда интерактивная:
root@server1:~# mysql_secure_installationОбеспечение безопасности развертывания сервера MySQL.Введите пароль для пользователя root: <-- Введите пароль root MySQLVALIDATE PASSWORD PLUGIN может быть использован для проверки паролей
и повышения безопасности. Он проверяет надежность пароля
и позволяет пользователям устанавливать только те пароли, которые
достаточно безопасны. Вы хотите настроить плагин VALIDATE PASSWORD?Нажмите y|Y для Да, любую другую клавишу для Нет: <-- Нажмите y, если хотите эту функцию, или нажмите Enter в противном случае.
Используя существующий пароль для root.
Изменить пароль для root? ((Нажмите y|Y для Да, любую другую клавишу для Нет) : <-- Нажмите Enter... пропуск.
По умолчанию установка MySQL имеет анонимного пользователя,
что позволяет любому войти в MySQL, не имея
созданной учетной записи пользователя. Это предназначено только для
тестирования и для того, чтобы установка прошла немного гладче.
Вы должны удалить их перед переходом в производственную
среду.Удалить анонимных пользователей? (Нажмите y|Y для Да, любую другую клавишу для Нет) : <-- y
Успех.
Обычно root должен подключаться только с
'localhost'. Это гарантирует, что кто-то не сможет угадать
пароль root из сети.Запретить удаленный вход root? (Нажмите y|Y для Да, любую другую клавишу для Нет) : <-- y
Успех.По умолчанию MySQL поставляется с базой данных под названием 'test', к которой
может получить доступ любой. Это также предназначено только для тестирования,
и должно быть удалено перед переходом в производственную
среду.
Удалить тестовую базу данных и доступ к ней? (Нажмите y|Y для Да, любую другую клавишу для Нет) : <-- y
- Удаление тестовой базы данных...
Успех.- Удаление привилегий на тестовую базу данных...
Успех.Перезагрузка таблиц привилегий обеспечит немедленное применение всех изменений,
внесенных до сих пор.Перезагрузить таблицы привилегий сейчас? (Нажмите y|Y для Да, любую другую клавишу для Нет) : <-- y
Успех.Все готово!3 Установка Lighttpd
Lighttpd доступен как пакет Ubuntu. Поэтому мы можем установить его напрямую с помощью apt из репозитория пакетов Ubuntu Xenial Xerus:
apt-get -y install lighttpdТеперь направьте ваш браузер на http://192.168.1.100/, и вы должны увидеть страницу-заглушку 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 7.0
Мы можем заставить PHP работать в Lighttpd через PHP-FPM, который мы устанавливаем следующим образом:
apt-get -y install php7.0-fpm php7.0PHP-FPM — это демон-процесс (с init-скриптом php5-fpm), который запускает сервер FastCGI на сокете /var/run/php/php7.0-fpm.sock.
5 Настройка Lighttpd и PHP 7.0
Чтобы включить PHP в Lighttpd, мы должны изменить /etc/php/7.0/fpm/php.ini и раскомментировать строку cgi.fix_pathinfo=1:
nano /etc/php/7.0/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.conf.bak) и изменяем 15-fastcgi-php.conf следующим образом:
cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php.conf.bak
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 (нужен пакет php7.0-cgi)
fastcgi.server += ( ".php" =>
((
"socket" => "/var/run/php/php7.0-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 Apr 27 11:26 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Apr 27 11:26 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf
lrwxrwxrwx 1 root root 42 Apr 21 11:10 90-javascript-alias.conf -> ../conf-available/90-javascript-alias.conf
root@server1:/etc/lighttpd/conf-available#Затем мы перезагружаем Lighttpd:
service lighttpd force-reloadПримечание: Если вы получаете ошибки локали, вы можете удалить ошибку, используя
apt-get -y install language-pack-en-base
dpkg-reconfigure locales6 Тестирование PHP 7.0 / Получение информации о вашей установке PHP
Корневая директория документа по умолчанию — /var/www/html. Теперь мы создадим небольшой PHP-файл (info.php) в этой директории и вызовем его в браузере. Файл отобразит множество полезных деталей о нашей установке PHP, таких как установленная версия PHP.
nano /var/www/html/info.phpТеперь мы вызываем этот файл в браузере (например, http://192.168.1.100/info.php):

Как вы видите, PHP 7.0 работает, и он работает через FPM/FastCGI, как показано в строке Server API. Если вы прокрутите дальше вниз, вы увидите все модули, которые уже включены в PHP5. MySQL там не указан, что означает, что у нас еще нет поддержки MySQL в PHP.
7 Получение поддержки MySQL в PHP
Чтобы получить поддержку MySQL в PHP, мы можем установить пакет php7.0-mysql. Также неплохо установить некоторые другие модули PHP, так как они могут понадобиться для ваших приложений. Вы можете искать доступные модули PHP следующим образом:
apt-cache search php7.0Выберите те, которые вам нужны, и установите их следующим образом:
apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettextAPCu — это расширение для модуля PHP Opcache, который поставляется с PHP 7, оно добавляет некоторые функции совместимости для программного обеспечения, которое поддерживает кэш APC (например, плагины кэша Wordpress).
APCu можно установить следующим образом:
apt-get -y install php-apcuТеперь перезагрузите PHP-FPM:
service php7.0-fpm reloadТеперь обновите http://192.168.1.100/info.php в вашем браузере и снова прокрутите вниз до раздела модулей. Теперь вы должны найти множество новых модулей, включая модули mysqli и mysqlnd:

8 phpMyAdmin
phpMyAdmin — это веб-интерфейс, через который вы можете управлять своими базами данных MySQL. Установить его — хорошая идея:
apt-get -y install phpmyadminВы увидите следующие вопросы:
Веб-сервер для автоматической перенастройки: <-- lighttpd
Настроить базу данных для phpmyadmin с dbconfig-common? <-- Да
Пароль приложения MySQL для phpmyadmin: <-- Нажмите EnterЕсли вы получите следующую ошибку:
Запустите /etc/init.d/lighttpd force-reload, чтобы включить изменения
dpkg: ошибка при обработке пакета phpmyadmin (--configure):
подпроцесс установленного пост-установочного скрипта вернул код выхода с ошибкой 2
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)Тогда выполните эти команды:
/etc/init.d/lighttpd force-reload
apt-get -y install phpmyadminПосле этого вы можете получить доступ к phpMyAdmin по адресу http://192.168.1.100/phpmyadmin/:

9 Настройка PHP-FPM для использования TCP-соединения (по желанию)
По умолчанию PHP-FPM прослушивает сокет /var/run/php/php7.0-fpm.sock. Также возможно заставить PHP-FPM использовать TCP-соединение. Для этого откройте /etc/php/7.0/fpm/pool.d/www.conf…
nano /etc/php/7.0/fpm/pool.d/www.conf… и измените строку listen следующим образом:
[...]
;listen = /var/run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000
[...]Это заставит PHP-FPM прослушивать порт 9000 на IP 127.0.0.1 (localhost). Убедитесь, что вы используете порт, который не занят в вашей системе.
Затем перезагрузите PHP-FPM:
service php7.0-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 (нужен пакет php7.0-cgi)
fastcgi.server += ( ".php" =>
((
"host" => "127.0.0.1",
"port" => "9000",
"broken-scriptfilename" => "enable"
))
)Наконец, перезагрузите Lighttpd:
service lighttpd force-reload10 Ссылки
- 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.