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

Установка Lighttpd с PHP5 (PHP-FPM) и MySQL на Debian 8 (Jessie)

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

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

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

2 Установка MySQL / MariaDB

Debian 8 поставляется с 2 совместимыми с MySQL базами данных: традиционной базой данных MySQL и MariaDB, ответвлением MySQL, поддерживаемым оригинальным изобретателем MySQL Монти Видениусом. В настоящее время MariaDB лидирует по скорости работы баз данных и активности разработки, поэтому я выберу ее для своего сервера.

Ниже я опишу установку MariaDB (Глава 2.1) и MySQL (Глава 2.2), чтобы вы могли выбрать базу данных, которая вам больше нравится. Просто убедитесь, что вы следуете либо главе 2.1, либо 2.2, но не обеим.

2.1 Установка MariaDB

Чтобы установить MariaDB, выполните эту команду.

apt-get install mariadb-server mariadb-client

Вам будет предложено ввести пароль для пользователя root MariaDB — этот пароль действителен для пользователя root@localhost, а также для [email protected], поэтому нам не нужно будет указывать пароль root MariaDB вручную позже:

Новый пароль для пользователя "root" MariaDB: <-- вашпарольsqlroot  
Повторите пароль для пользователя "root" MariaDB: <-- вашпарольsqlroot

2.2 Установка MySQL

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

apt-get install mysql-server mysql-client

Вам будет предложено ввести пароль для пользователя root MySQL — этот пароль действителен для пользователя root@localhost, а также для [email protected], поэтому нам не нужно будет указывать пароль root MySQL вручную позже:

Новый пароль для пользователя “root” MySQL: <– вашпарольsqlroot
Повторите пароль для пользователя “root” MySQL: <– вашпарольsqlroot

3 Установка Lighttpd

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

apt-get install lighttpd

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

Корневая директория документа Lighttpd по умолчанию — /var/www на Debian, а файл конфигурации — /etc/lighttpd/lighttpd.conf.

Дополнительные конфигурации хранятся в файлах в каталоге /etc/lighttpd/conf-available — эти конфигурации можно включить с помощью команды lighttpd-enable-mod, которая создает символическую ссылку из каталога /etc/lighttpd/conf-enabled на соответствующий файл конфигурации в /etc/lighttpd/conf-available. Вы можете отключить конфигурации с помощью команды lighttpd-disable-mod.

4 Установка PHP5

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

apt-get install php5-fpm php5

PHP-FPM — это демон-процесс (с init-скриптом /etc/init.d/php5-fpm), который запускает сервер FastCGI на сокете /var/run/php5-fpm.sock.

5 Конфигурирование Lighttpd и PHP5

Чтобы включить 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
[...]

И перезапустите службу php5-fpm, чтобы применить изменения конфигурации:

systemctl restart php5-fpm.service

Файл конфигурации 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
# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/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-enabled
root@server1:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled  
total 0  
lrwxrwxrwx 1 root root 33 Aug 11 08:20 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf  
lrwxrwxrwx 1 root root 37 Aug 11 08:20 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf

Затем мы перезагружаем Lighttpd:

systemctl force-reload lighttpd.service

6 Тестирование PHP5 / Получение информации о вашей установке PHP5

Корневая директория документа по умолчанию — /var/www. Теперь мы создадим небольшой PHP-файл (info.php) в этом каталоге и вызовем его в браузере. Файл отобразит множество полезных деталей о нашей установке PHP, таких как установленная версия PHP.

nano /var/www/html/info.php

Теперь мы вызываем этот файл в браузере (например, http://192.168.1.100/info.php):

PHPInfo для php-fpm на lighttpd.

Как вы видите, PHP5 работает, и он работает через FPM/FastCGI, как показано в строке Server API. Если вы прокрутите вниз, вы увидите все модули, которые уже включены в PHP5. MySQL там не указан, что означает, что у нас еще нет поддержки MySQL в PHP5.

7 Получение поддержки MySQL в PHP5

Чтобы получить поддержку MySQL в PHP, мы можем установить пакет php5-mysqlnd. Это новый драйвер базы данных, совместимый с MySQL и MariaDB. Хорошая идея — установить некоторые другие модули PHP5, так как они могут понадобиться для ваших приложений. Вы можете искать доступные модули PHP5 следующим образом:

apt-cache search php5

Выберите те, которые вам нужны, и установите их следующим образом:

apt-get install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Xcache — это бесплатный и открытый кэш PHP opcode для кэширования и оптимизации промежуточного кода PHP. Он похож на другие кэши PHP opcode, такие как eAccelerator и APC. Настоятельно рекомендуется установить один из них, чтобы ускорить вашу страницу PHP.

Xcache можно установить следующим образом:

apt-get install php5-xcache

Теперь перезагрузите PHP-FPM:

systemctl restart php5-fpm.service

Теперь обновите http://192.168.1.100/info.php в вашем браузере и прокрутите вниз до раздела модулей снова. Вы должны теперь найти много новых модулей, включая модуль MySQL:

Драйвер MySQL, показанный в выводе phpinfo().

8 phpMyAdmin

phpMyAdmin — это веб-интерфейс, через который вы можете управлять своими базами данных MySQL. Хорошая идея — установить его:

apt-get install phpmyadmin

Вы увидите следующие вопросы:

Веб-сервер для автоматической перенастройки: <– lighttpd

apt phpmyadmin lighttpd selector.

Настроить базу данных для phpmyadmin с dbconfig-common? <-- Да  
Пароль административного пользователя базы данных: <-- вашпарольsqlroot  
Пароль приложения MySQL для phpmyadmin: <-- Нажмите 

После этого вы сможете получить доступ к 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:

systemctl restart php5-fpm.service

Затем откройте файл конфигурации PHP Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf и замените строку сокета на строки хоста и порта:

nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
# -*- depends: fastcgi -*-
# /usr/share/doc/lighttpd/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:

systemctl force-reload lighttpd.service

10 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.