|
|||||||
Nginx+php (FastCGI) под Ubuntu
Время создания: 02.12.2009 13:33
Раздел: Компьютер - Linux - Сеть в Linux - nginx
Запись: xintrea/mytetra_syncro/master/base/0000001329/text.html на raw.github.com
|
|||||||
|
|||||||
Казалось бы – что может быть тривиальнее – поставить nginx с поддержкой php. Но оказывается что все не так просто: большая часть информации уже устарела или просто не работает, потому я решил обьеденить всю собранную информацию. (Использовался Ubuntu 8.04.2 LTS Hardy Heron) Ставим инструментарий для сборки apt-get install php5-cli build-essential Нюанс: я не знаю какой логикой руководствовались мейнтейнеры убунту, но факт в том что пакет php5 зависит от libapache2-mod-php5, который в свою очередь тянет за собой весь апач, потому нам нужен именно php5-cgi. Устанавливаем spawn-fcgi из состава lighttpd wget http://www.lighttpd.net/download/lighttpd-1.4.21.tar.gz tar -xvvf lighttpd-1.4.21.tar.gz ./configure && make Далее из-под рута копируем куда надо бинарники spawn-fcgi: cp src/spawn-fcgi /usr/local/bin/spawn-fcgi cp doc/spawn-php.sh /etc/init.d/spawn-php chmod +x /etc/init.d/spawn-php Да, есть более удобный метод, описаный тут (http://blog.kovyrin.net/2006/05/30/nginx-php-fastcgi-howto/). (Запуск встроенного в PHP сервера FastCGI – метод, не требующий никаких дополнительных утилит.) Но у меня он банально не заработал: 2009/02/27 23:24:27 [error] 14755#0: *19 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.0.102, server: home-test, URL: “/var/www/files/index.php”, upstream: “fastcgi://127.0.0.1:8888″, host: “home-test” Исправляем настройки spawn-php Обязательно: SPAWNFCGI=”/usr/local/bin/spawn-fcgi” FCGIPROGRAM=”/usr/lib/cgi-bin/php5″ Желательно: USERID=www-data GROUPID=www-data FCGIPORT=”9999″ Остальное. Настраиваем nginx Для настройки nginx достаточно убрать комментарии с строк в файле /etc/nginx/sites-enabled/default , и получить: location ~ \.php$ { fastcgi_pass 127.0.0.1:9999; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; } includefastcgi_params я удалил, т.к. nginx не запускался с таким параметром. За(пере)запускаем nginx и spawn-fcgi /etc/init.d/spawn-php /etc/init.d/nginx restart И получаем работающий php. Кто не знает, его работоспособность можно проверить простым кодом: <?php phpinfo(); ?> |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|