Открываем файл: vi /etc/apache2/ports.conf и комментируем строки:
#NameVirtualHost *:80
#Listen 80
Перезапускаем Апача:
/etc/init.d/apache2 restart
После этого убеждаемся, что Апач остался лишь на 443 порту и не забинден на 80й.
Теперь ставим nginx:
apt-get install -y --force-yes nginx
Далее нам необходимо собрать php-fpm, вот офсайт автора: http://github.com/dreamcat4/php-fpm
apt-get install -y libxml2-dev libjpeg62-dev make patch autoconf libpng-dev libfreetype6-dev libmysqlclient15-dev
Теперь ставим обновленный libevent (по мануалу с сайта автора fpm):
export LE_VER=1.4.12-stable
wget "http://www.monkey.org/~provos/libevent-$LE_VER.tar.gz"
tar -zxvf "libevent-$LE_VER.tar.gz"
cd "libevent-$LE_VER"
./configure --prefix=/opt/libevent && make
make install
export LIBEVENT_SEARCH_PATH="/opt/libevent"
Генерируем патч (полный список патчей вот здесь, а старые вот здесь):
export PHP_VER=5.3.0
# или
export PHP_VER=5.2.11
wget "http://launchpad.net/php-fpm/master/0.6/+download/php-fpm-0.6~$PHP_VER.tar.gz"
tar -zxvf "php-fpm-0.6~$PHP_VER.tar.gz"
"php-fpm-0.6-$PHP_VER/generate-fpm-patch"
Качаем исходники пхп:
wget "http://us.php.net/get/php-$PHP_VER.tar.gz/from/us.php.net/mirror"
tar xvfz "php-$PHP_VER.tar.gz"
cd "php-$PHP_VER"
Патчим пхп и собираем:
patch -p1 < ../fpm.patch ./buildconf --force mkdir fpm-build && cd fpm-build ../configure --with-fpm --prefix=/opt/php53 --with-libevent="$LIBEVENT_SEARCH_PATH" --with-mysql --with-gd --with-freetype-dir=/usr/include/freetype2 --with-jpeg-dir=/usr/lib && make # или ../configure --with-fpm --prefix=/opt/php52 --with-libevent="$LIBEVENT_SEARCH_PATH" --with-mysql --with-gd --with-freetype-dir=/usr/include/freetype2 --with-jpeg-dir=/usr/lib && make make install
Да, и общее замечание -- при изменении опций configure рекомендую делать make clean, иначе глюки обеспечены (у меня они возникли, когда jpeg не цеплялся, clean спас) :)
Добавляем fpm в автозапуск:
update-rc.d php-fpm defaults; invoke-rc.d php-fpm start
Открываем конфиг: /etc/php-fpm.conf и все вхождения nobody заменяем на www-data
Итак, запускаем php-fpm: /etc/init.d/php-fpm start
Убеждаемся, что все поднялось:
ps aux | grep fpm
root 13445 0.0 0.0 14392 2104 ? Ss 15:48 0:00 /opt/php53/bin/php-fpm --fpm-config /etc/php-fpm.conf
www-data 13446 0.0 0.0 14392 1840 ? S 15:48 0:00 /opt/php53/bin/php-fpm --fpm-config /etc/php-fpm.conf
www-data 13447 0.0 0.0 14392 1840 ? S 15:48 0:00 /opt/php53/bin/php-fpm --fpm-config /etc/php-fpm.conf
www-data 13448 0.0 0.0 14392 1840 ? S 15:48 0:00 /opt/php53/bin/php-fpm --fpm-config /etc/php-fpm.conf
www-data 13449 0.0 0.0 14392 1840 ? S 15:48 0:00 /opt/php53/bin/php-fpm --fpm-config /etc/php-fpm.conf
www-data 13450 0.0 0.0 14392 1840 ? S 15:48 0:00 /opt/php53/bin/php-fpm --fpm-config /etc/php-fpm.conf
Теперь создаем папку: /var/www/fpmroot, там размещаем файл index.php со следующим контентом:
<?PHP phpinfo(); ?>
Теперь конфигурируем nginx, открываем файл vi /etc/nginx/sites-enabled/default
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/fpmroot$fastcgi_script_name;
include fastcgi_params;
}
}
После этого перезапускам nginx: /etc/init.d/nginx restart
И любуемся результатом нашей работы :)
Источник: https://bugs.launchpad.net/php-fpm/+bug/397721
объясните дураку
ReplyDeleteпри
apache+nginx+fastcgi
нужно ставить PHP-FPM ?
и зачем если нужно?
а то мне вроде сказали PHP-FPM если без индейца