Урок 2: Установка php-cgi
By admin ~ Октябрь 23rd, 2008. Filed under: Вебсервер, Уроки.
Теперь нам нужно установить php. Nginx не содержит поддержки модульного режима php, поэтому мы будет запускать его в режиме php-cgi. Php в этом режиме будет принимать все запросы на определенный порт и обрабатывать. Выполняем:
apt-get install php5-cgi php5-mysql php5-gd
После инсталляции php мы должны создать демона слушающего порт и пере запускающего php. Для перезапуска php-cgi служит скрипт spawn из состава lighttpd. Для этого поставим весь пакет lighttpd:
apt-get install lighttpd rcconf
Lighttpd установится и запустится. Так как мы будем использовать nginx, а не lighttpd - то остановим lighttpd:
/etc/init.d/lighttpd stop
Что, бы он никогда не запускался, выполняем команду rcconf и снимаем галку с имени lighttpd. Теперь он не запустится даже при перезагрузке компьютера.
Для запуска php-cgi мы испьзуем следущий скрипт:
#!/bin/sh
## ABSOLUTE path to the spawn-fcgi binary
SPAWNFCGI=”/usr/bin/spawn-fcgi”## ABSOLUTE path to the PHP binary
FCGIPROGRAM=”/usr/bin/php-cgi”## bind to tcp-port on localhost
FCGIPORT=”8888″## number of PHP childs to spawn
PHP_FCGI_CHILDREN=3## number of request server by a single php-process until is will be restarted
PHP_FCGI_MAX_REQUESTS=500## IP adresses where PHP should access server connections from
FCGI_WEB_SERVER_ADDRS=”127.0.0.1″# allowed environment variables sperated by spaces
ALLOWED_ENV=”ORACLE_HOME PATH USER”## if this script is run as root switch to the following user
USERID=eugene
GROUPID=eugene################## no config below this line
if test x$PHP_FCGI_CHILDREN = x; then
PHP_FCGI_CHILDREN=5
fiexport PHP_FCGI_MAX_REQUESTS
export FCGI_WEB_SERVER_ADDRSALLOWED_ENV=”$ALLOWED_ENV PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS”
if test x$UID = x0; then
EX=”$SPAWNFCGI -p $FCGIPORT -f $FCGIPROGRAM -u $USERID -g $GROUPID -C $PHP_FCGI_CHILDREN”
else
EX=”$SPAWNFCGI -p $FCGIPORT -f $FCGIPROGRAM -C $PHP_FCGI_CHILDREN”
fi# copy the allowed environment variables
E=for i in $ALLOWED_ENV; do
E=”$E $i=${!i}”
done# clean environment and set up a new one
env - $E $EX
Внимание в строки - поставте пользователя от которого будет работать php.
USERID=eugene
GROUPID=eugene
Кладем его в /etc/init.d/ и называем run_php_cgi. Выполняем:
chmod +x /etc/init.d/run_php_cgi
/etc/init.d/run_php_cgi start
Опять заходим в rcconf и ставим галку напротив run_php_cgi. Теперь run_php_cgi будет запускатся при рестаре компьютера.
Все php у нас запущен. Проверить вы можете - выполнив команду
ps ax | grep php-cgi
Должно вывести несколько процессов php-cgi. Если нет - ищете ошибку. А мы переходим к следующему уроку
Popularity: 23%
Похожие статьи:
Январь 17th, 2010 at 00:48
Стабильно работающий скрипт стал выдавать
/etc/init.d/run_php_cgi: 50: Bad substitution
проблема в строках
for i in $ALLOWED_ENV; do
E=”$E $i=${!i}”
done
я в bash не очень силен - как править не знаю - если тока закомментировать
Март 16th, 2011 at 18:39
Теперь пакет lighttpd устанавливать не обязательно. Достаточно поставить пакет spawn-fcgi