Нарешті я знайшов хороший підручник, спрямований на те, щоб робити саме це. Я викладу кроки, які я здійснив, оскільки в мене вже був встановлений стек LAMP, але повний підручник можна знайти тут .
Примітка до нового:
У підручнику він починається з переходу на користувача root з:
sudo su
У моєму випадку я просто встановив ці команди sudo
замість перемикання користувачів, тому таким чином буду документувати свої кроки.
Почніть
Крок перший: Встановіть Apache Worker MPM (багатопроцесорні модулі)
sudo apt-get install apache2-mpm-worker
Це замінює встановлений мною префорк, який є типовим при установці 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 " Точний Панголін ".
Отже, збережіть ці зміни та поверніться до терміналу:
sudo apt-get update
і знову:
sudo apt-get install libapache2-mod-fastcgi php5-fpm php5
яка буде (повинна) працювати зараз.
Тепер увімкніть ці модулі Apache:
sudo a2enmod actions fastcgi alias
перезапустити апаш
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
)
Під серверним API вгорі ви повинні побачити FPM/FastCGI
.
Успіху!
Для отримання додаткової інформації про те, як змінити PHP-FPM, щоб використовувати unix-сокет замість типового порту TCP або як налаштувати це для окремих віртуальних хостів замість усіх, див. Підручник з джерелом, пов’язаний у верхній частині.