Поиск по сайту:

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


Это руководство существует для этих версий ОС

  • Debian 4 (Etch)

На этой странице

  1. 1 Предварительное примечание
  2. 2 Установка MySQL/MariaDB
    1. 2.1 Установка MariaDB
    2. 2.2 Установка MySQL

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

    1 Предварительное примечание

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

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

    Debian 8 поставляется с двумя базами данных, совместимыми с 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 — этот пароль действителен для пользователя [email , поэтому позже нам не нужно указывать пароль root пользователя MariaDB вручную:

    New password for the MariaDB "root" user: <-- yourrootsqlpassword
    Repeat password for the MariaDB "root" user: <-- yourrootsqlpassword

    2.2 Установите MySQL

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

    apt-get install mysql-server mysql-client

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

    Новый пароль для пользователя \root\ MySQL: <-- yourrootsqlpassword
    Повторите пароль для пользователя \root\ MySQL: <-- yourrootsqlpassword

    3 Установка Lighttpd

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

    apt-get install lighttpd

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

    Корневой каталог документа Lighttpds по умолчанию — /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 — это процесс-демон (со сценарием инициализации /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 provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
    ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
    ; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
    ; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
    ; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
    ; to use SCRIPT_FILENAME rather than 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
    
    ## Start an FastCGI server for php (needs the php5-cgi package)
    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
    :/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
    <?php
    phpinfo();
    ?>

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

    Как видите, PHP5 работает и работает через FPM/FastCGI, как показано в строке 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 для кэширования и оптимизации промежуточного кода PHP. Он похож на другие кешировщики кода операции PHP, такие как eAccelerator и APC. Настоятельно рекомендуется установить один из них, чтобы ускорить вашу PHP-страницу.

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

    apt-get install php5-xcache

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

    systemctl restart php5-fpm.service

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

    8 phpMyAdmin

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

    apt-get install phpmyadmin

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

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

    Configure database for phpmyadmin with dbconfig-common? <-- Yes
    Password of the database's administrative user: <-- yourrootsqlpassword
    MySQL application password for phpmyadmin: <-- Press <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 = /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 Lighttpds /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
    
    ## Start an FastCGI server for php (needs the php5-cgi package)
    fastcgi.server += ( ".php" =>
            ((
                    "host" => "127.0.0.1",
                    "port" => "9000",
                    "broken-scriptfilename" => "enable"
            ))
    )

    Наконец, перезагрузите Lighttpd:

    systemctl force-reload lighttpd.service

    10 ссылок

    • Lighttpd: http://www.lighttpd.net/
    • PHP: http://www.php.net/
    • PHP-FPM: http://php-fpm.org/
    • MySQL: http://www.mysql.com/
    • Debian: http://www.debian.org/
    • phpMyAdmin: http://www.phpmyadmin.net/