Установка Lighttpd с PHP (режим PHP-FPM) и MySQL или MariaDB в Ubuntu 15.10
Это руководство существует для этих версий ОС
- Ubuntu 15.10 (Wily Werewolf)
- Ubuntu 12.10 (Quantal Quetzal)
На этой странице
- 1 Предварительное примечание
- 2 Установка MySQL/MariaDB
- 2.1 Установка MySQL
- 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: <-- yourrootsqlpassword2.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] <-- y3 Установка 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
Пароль: howtoforgeIP виртуальной машины 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/