Всем привет. Под капотом находится пример того, как можно настроить php-cgi на основе unix:sockets. Пример предназначен для дистрибутивов Ubuntu и Debian.
Введение
Лично мне этот метод очень нравится, поэтому я решил поделиться им с публикой, которая с ним не знакома.Ну, во-первых, потому что это очень просто.
Во-вторых, гибкость благодаря розеткам В-третьих, быстро.
Ну и прочие вытекающие возможности, в том числе и с правами)
Монтаж
Дальше ничего особенного, стандартные действия:nginx
обновление sudo apt-get sudo apt-get установить nginxphp
sudo apt-get установить php5-cgiСвязывание php и nginx
Для ссылки просто используйте сценарий одного хорошего человека, Тилля Клампакеля.И так, в каталоге /etc/init.d/ создать файл php-fcgid напишите в него следующее:
#!/bin/sh # # Author: Till Klampaeckel <[email protected]> # Credits # * original script: http://unix.derkeiler.com/Mailing-Lists/FreeBSD/questions/2007-09/msg00468.html # * improved: http://till.klampaeckel.de/blog/archives/30-PHP-performance-III-Running-nginx.html # * all linux start script fu inspired by CouchDB's start script (by Noah Slater) SCRIPT_OK=0 SCRIPT_ERROR=1 DESCRIPTION="php-fcgi super-duper-control thing" NAME=php-fgcid SCRIPT_NAME=$(basename $0) WWW_GROUP=www-data PHP_CGI=/usr/bin/php-cgi phpfcgid_users="user1 user2" phpfcgid_children="2" phpfcgid_tmpdir="/tmp" phpfcgid_requests="100" log_daemon_msg () { echo $@ } log_end_msg () { # Dummy function to be replaced by LSB library. if test "$1" != "0"; then echo "Error with $DESCRIPTION: $NAME" fi return $1 } phpfcgid_start() { echo "Starting $NAME with $phpfcgid_children children (req: $phpfcgid_requests)." export PHP_FCGI_CHILDREN=$phpfcgid_children export PHP_FCGI_MAX_REQUESTS=$phpfcgid_requests for user in ${phpfcgid_users}; do socketdir="${phpfcgid_tmpdir}/.
fastcgi.${user}" mkdir -p ${socketdir} chown ${user}:${WWW_GROUP} ${socketdir} chmod 0750 ${socketdir} su -m ${user} -c "${PHP_CGI} -b ${socketdir}/socket&" done } phpfcgid_stop() { echo "Stopping $NAME." pids=`pgrep php-cgi` pkill php-cgi } phpfcgid_status() { log_daemon_msg "To be implemented: status" log_end_msg $SCRIPT_ERROR } parse_script_option_list () { case "$1" in start) log_daemon_msg "Starting $DESCRIPTION" $NAME if phpfcgid_start; then log_end_msg $SCRIPT_OK else log_end_msg $SCRIPT_ERROR fi ;; stop) log_daemon_msg "Stopping $DESCRIPTION" $NAME if phpfcgid_stop; then log_end_msg $SCRIPT_OK else log_end_msg $SCRIPT_ERROR fi ;; restart|force-reload) log_daemon_msg "Restarting $DESCRIPTION" $NAME if phpfcgid_stop; then if phpfcgid_start; then log_end_msg $SCRIPT_OK else log_end_msg $SCRIPT_ERROR fi else log_end_msg $SCRIPT_ERROR fi ;; status) phpfcgid_status ;; *) cat << EOF >&2 Usage: $SCRIPT_NAME {start|stop|restart|force-reload|status} EOF exit $SCRIPT_ERROR ;; esac } parse_script_option_list $@
Настройка
В настройках nginx настраиваем пользователя на соответствие fastcgi_pass. Пример конфигурации:server {Теги: #Чулан #nginx php-cgi ubuntu
-
Что Такое 3D-Обои?
19 Oct, 24 -
Культовые Игры Dendy: Три Легенды Девяностых
19 Oct, 24 -
Вот Мой Файлообменник «Прижатый К Ногтю»
19 Oct, 24 -
Опять Терминатор?
19 Oct, 24