Урок 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
fi

export PHP_FCGI_MAX_REQUESTS
export FCGI_WEB_SERVER_ADDRS

ALLOWED_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%

Похожие статьи:

2 Responses to Урок 2: Установка php-cgi

  1. admin

    Стабильно работающий скрипт стал выдавать

    /etc/init.d/run_php_cgi: 50: Bad substitution

    проблема в строках

    for i in $ALLOWED_ENV; do
    E=”$E $i=${!i}”
    done

    я в bash не очень силен - как править не знаю - если тока закомментировать :(

  2. sequel

    Теперь пакет lighttpd устанавливать не обязательно. Достаточно поставить пакет spawn-fcgi

Оставьте комментарий: