Warning: session_start(): open(/var/lib/php/sessions/sess_7fbbekikg2s5dh2fgo6con44q4, O_RDWR) failed: No space left on device (28) in /home/makenskiy/www/itbuben.org/public_html/engine/modules/session/Session.class.php on line 61
Установка и настройка Apache2 с PHP-FPM в Linux Ubuntu / Unix-way / IT бубен - шаманим вместе, блоги, сообщества

Unix-way → Установка и настройка Apache2 с PHP-FPM в Linux Ubuntu

В статье показано как установить HTTP-сервер Apache2 на Ubuntu с поддержкой PHP5 (через PHP-FPM) и MySQL.
PHP-FPM (FastCGI Process Manager) это альтернативная PHP реализации с некоторыми дополнительными функциями.

В примере используется имя хоста server.example.com с IP-адресом 192.168.0.3. Зайдем под root:

sudo su


Установка MySQL

apt-get install mysql-server mysql-client


В процессе вас попрося ввести пароль пользователя root для MySQL.

Установка Apache2

apt-get install apache2-mpm-worker


Проверим работу. Наберите в браузере 192.168.0.3:



В Ubuntu дефотная корневая директория Apache находиться в /var/www, а конфиг в /etc/apache2/apache2.conf. Дополнительные настройки хранятся в каталогах /etc/apache2, например в /etc/apache2/mods-enabled (модули Apache), /etc/apache2/sites-enabled (виртуальные хосты)…

Установка PHP

apt-get install libapache2-mod-fastcgi php5-fpm php5


PHP-FPM это демоном (/etc/init.d/php5-fpm), который работает с FastCGI сервером через порт 9000. Далее исправляем баг:

nano /etc/init.d/php5-fpm


Ищем функцию do_reload (), меняем --signal 1 на --signal 12

do_reload() {
        #
        # If the daemon can reload its configuration without
        # restarting (for example, when it is sent a SIGHUP),
        # then implement that here.
        #
        #start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
        start-stop-daemon --stop --signal 12 --quiet --pidfile $PIDFILE --name $NAME
        return 0
}


Затем, включим следующие модули Apache:

a2enmod actions fastcgi alias


Перезагрузим Apache:

/etc/init.d/apache2 restart


Настройка 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
</IfModule>


>>>Подробности<<<

Которые можно поместить в глобальный конфиг Apache (для всех виртуальных хостов) или в каждый виртуальный хост.

nano /etc/apache2/sites-available/default


Вставить в раздел VirtualHost


<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
</IfModule>


Перезагрузить Apache:

/etc/init.d/apache2 restart


Чтобы проверить работу, можно в /var/www создать файл info.php:

nano /var/www/info.php


<?php
phpinfo();
?>


Теперь заходим в браузере на 192.168.0.3/info.php.

Настройка MySQL

Установим пакет php5-mysql, попутно зацепив некоторые другие полезные модули:

apt-get install php5-mysql 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


Перезагрузим PHP-FPM:

/etc/init.d/php5-fpm reload


Установка phpMyAdmin

apt-get install phpmyadmin


Вас попросят ответить на некоторые вопросы, после чего веб-интерфейс будет доступен по адресу 192.168.0.3/phpmyadmin

Работа PHP-FPM с Unix Socket

По умолчанию PHP-FPM слушает порт 9000 на 127.0.0.1. Можно сделать чтобы PHP-FPM использовала Unix Socket. Открываем /etc/php5/fpm/pool.d/www.conf:

nano /etc/php5/fpm/pool.d/www.conf


Меняем строчку listen:

;listen = 127.0.0.1:9000
listen = /tmp/php5-fpm.sock


Перезагружаем PHP-FPM:

/etc/init.d/php5-fpm reload


Теперь нужно в виртуальных хостах или в глобальном конфиге изменить:


<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
</IfModule>


На


<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 -socket /tmp/php5-fpm.sock -pass-header Authorization
</IfModule>


Перезагрузить Apache:

/etc/init.d/apache2 reload
  • avatar
  • pashtuun
  • 14807
  • +19
  • 11 февраля 2012, 10:46

Комментариум (2)

RSS свернуть / развернуть
+
+1
avatar

Anonymous

  • 11 февраля 2012, 13:43

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Зачем ответь? mod_php быстрей работает у тебя Apache, а Nginx!
+
+3
avatar

Anonymous

  • 26 февраля 2012, 19:00

  • Warning: Smarty error: unable to read resource: "cmtedit_button.tpl" in /home/makenskiy/www/itbuben.org/public_html/engine/lib/external/Smarty-2.6.19/libs/Smarty.class.php on line 1092
Отличная статья,
для smoop дело не в скорости дело в потреблении ресурсов!

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Warning: Unknown: open(/var/lib/php/sessions/sess_7fbbekikg2s5dh2fgo6con44q4, O_RDWR) failed: No space left on device (28) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php/sessions) in Unknown on line 0