Я наконец нашел хороший учебник, предназначенный для этого. Я опишу шаги, которые я предпринял, поскольку у меня уже был установлен мой стек LAMP, но полное руководство можно найти здесь .
Примечание для нового:
В учебнике он начинается с переключения на пользователя root с помощью:
sudo su
В моем случае я просто использовал префикс этих команд sudo
вместо переключения пользователей, поэтому я буду документировать свои шаги таким образом.
Начать
Шаг первый: установите Apache Worker MPM (многопроцессорные модули)
sudo apt-get install apache2-mpm-worker
Это заменяет установленный мной prefork, который используется по умолчанию при установке Apache.
Шаг 2: Установите PHP5 и необходимые модули
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
На этом этапе вы можете получить сообщение об ошибке установки libapache2-mod-fastcgi:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libapache2-mod-fastcgi is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or is only available from another source
E: Package 'libapache2-mod-fastcgi' has no installation candidate
Эта часть не в учебнике выше
Чтобы согласовать это, multiverse
хранилище должно быть добавлено к подходящим источникам.
Сделать это:
sudo nano /etc/apt/sources.list
К которому я добавил следующие строки:
deb http://archive.ubuntu.com/ubuntu precise multiverse
deb http://archive.ubuntu.com/ubuntu precise-updates multiverse
deb http://security.ubuntu.com/ubuntu precise-security multiverse
precise
в данном случае относится к моей версии Ubuntu " Precise Pangolin ".
Теперь сохраните эти изменения и вернитесь в терминал:
sudo apt-get update
и снова:
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
который будет (должен) сейчас работать.
Теперь включите эти модули Apache:
sudo a2enmod actions fastcgi alias
перезапустить Apache
sudo service apache2 restart
Шаг 3: настройка Apache
Чтобы Apache работал с PHP-FPM, нам нужна следующая конфигурация:
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
#directory statement mult be on multiple lines
</IfModule>
Заметка:
Если вы используете более старую версию Apache (2.3.x или старше), пропустите строку
<Directory /usr/lib/cgi-bin> Require all granted </Directory>
Вы можете проверить установленную версию с помощью команды
apache2 -version
Вы можете поместить его в глобальную конфигурацию Apache (чтобы он был включен для всех vhosts), например, в /etc/apache2/conf.d/php5-fpm.conf
(этот файл не существует, поэтому вы должны его создать), или вы можете поместить его в каждый vhost, который должен использовать PHP-FPM.
Я выбираю глобальный маршрут, поэтому:
sudo nano /etc/apache2/conf.d/php5-fpm.conf
вставьте в блок кода выше и сохраните, выйдите. Этот новый файл будет автоматически загружен конфигурацией по умолчанию Apache, которая загружает все файлы в /etc/apache2/conf.d/
каталоге.
перезапустите Apache:
sudo service apache2 restart
Теперь создайте следующий файл PHP в корне документа /var/www
:
sudo nano /var/www/info.php
Добавлять:
<?php phpinfo();
сохранить и выйти.
Теперь мы вызываем этот файл в браузере (например http://your-server-ip/info.php
)
Под Server API вверху вы должны увидеть FPM/FastCGI
.
Успех!
Для получения дополнительной информации, например о том, как изменить PHP-FPM для использования сокета unix вместо TCP-порта по умолчанию или как настроить его для отдельных виртуальных хостов вместо всех, см. Учебное руководство по исходным кодам в верхней части.