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

Установка Lighttpd с PHP (режим PHP-FPM) и MySQL или MariaDB в Ubuntu 15.10


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

  • Ubuntu 15.10 (Wily Werewolf)
  • Ubuntu 12.10 (Quantal Quetzal)

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

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

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

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

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

    Я выполняю все шаги в этом руководстве с привилегиями root, поэтому убедитесь, что вы вошли в систему как root, прежде чем продолжить:

    sudo su

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

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

    2.2 Установка MariaDB

    Установите MariaDB следующим образом:

    apt-get -y install mariadb-server mariadb-client

    Теперь мы устанавливаем пароль root для MariaDB.

    mysql_secure_installation

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

    Enter current password for root (enter for none): <-- press enter
    Set root password? [Y/n] <-- y
    New password: <-- Enter the new MariaDB root password here
    Re-enter new password: <-- Repeat the password
    Remove anonymous users? [Y/n] <-- y
    Disallow root login remotely? [Y/n] <-- y
    Reload privilege tables now? [Y/n] <-- y

    3 Установка Lighttpd

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

    apt-get -y install lighttpd

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

    Корень документа Lighttpds по умолчанию — /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 php5

    PHP-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 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
    [...]

    Файл конфигурации 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
    
    ## 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 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-reload

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

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

    nano /var/www/html/info.php
    <?php
    phpinfo();
    ?>

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

    Как видите, PHP 5.6 работает и работает через FPM/FastCGI, как показано в строке 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-xsl

    Xcache — это бесплатный открытый кешировщик кода операции PHP для кэширования и оптимизации промежуточного кода PHP. Он похож на другие кешировщики кода операции PHP, такие как 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? <-- да

    Password of the database's administrative user: <-- Enter the MySQL/MariaDB root password
    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:

    service php5-fpm reload

    Затем откройте файл конфигурации PHP Lighttpds /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
    
    ## 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:

    service lighttpd force-reload

    10 Загрузка образа виртуальной машины из этого руководства

    Это руководство доступно в виде готового к использованию образа виртуальной машины в формате ovf/ova для подписчиков Howtoforge. Формат виртуальной машины совместим с VMWare и Virtualbox. Образ виртуальной машины использует следующие данные для входа:

    Вход по SSH/оболочке

    Имя пользователя:admin
    Пароль: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/
    • Убунту: http://www.ubuntu.com/
    • phpMyAdmin: http://www.phpmyadmin.net/