la manera recomendado de utilizar php con nginx es atreves de fpm, un parche para php que mejora su actuación cuando correo como un processo fast-cgi.
el configuración de ejemplo actual es para joomla, pero esperemos poder propocionar uno para dokuwiki entre aplicaciones php. vamos a compliar nginx y php del codigo fuente seguindo los indicaciones aqui: http://interfacelab.com/nginx-php-fpm-apc-awesome/
aqui unos dependendencias para poder compilar todo. si relamente necesitas todo eso depende del opciones con que vas a complilar nginx y php. vale la pena investigar un poco, pero cualcuier cosa estos deben de funcionar:
sudo apt-get install make bison flex gcc patch autoconf sudo apt-get install libxml2-dev libbz2-dev libpcre3-dev libssl-dev zlib1g-dev libmcrypt-dev libmhash-dev libmhash2 libcurl4-openssl-dev libpq-dev libpq5 libsyck0-dev
descargamos php:
wget http://us.php.net/get/php-5.2.8.tar.gz/from/this/mirror
el parche fpm es para php-5.2.8. no sé si funcionaria con los versiones más recien. ojalá alguien hará el experimiento y nos avisan.
wget http://php-fpm.anight.org/downloads/head/php-5.2.8-fpm-0.5.10.diff.gz
ahora el metodo de instalacion de php-fpm ha cambiado. por el momento checa aqui: http://github.com/dreamcat4/php-fpm/blob/master/readme.markdown
desempaqetamos php
tar zvxf php-5.2.8.tar.gz
y aplicamos el parche de fpm
gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | sudo patch -d php-5.2.8 -p1
ahora compilamos php:
cd php-5.2.8
sudo ./configure –enable-fastcgi –enable-fpm –with-mcrypt –with-zlib –enable-mbstring –disable-pdo –with-pgsql –with-curl –disable-debug –enable-pic –disable-rpath –enable-inline-optimization –with-bz2 –with-xml –with-zlib –enable-sockets –enable-sysvsem –enable-sysvshm –enable-pcntl –enable-mbregex –with-mhash –enable-xslt –enable-memcache –enable-zip –with-pcre-regex –enable-mysql –with-mysql=/usr/include/mysql –with-mysql-sock=/tmp/mysql.sock
./configure --enable-fastcgi --enable-fpm --with-mcrypt --with-zlib --enable-mbstring --with-openssl --with-mysql --with-mysql-sock --with-gd --with-jpeg-dir=/usr/lib --enable-gd-native-ttf --with-curl --disable-debug --enable-pic --with-bz2 --with-xml --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-xslt --enable-memcache --with-pcre-regex
sudo make all install sudo strip /usr/local/bin/php-cgi
copiamos el configuracion php a un lugar razonable:
sudo cp php.ini-recommended /usr/local/lib/php.ini
tambien si puede crear unos enlaces simbolicos para hacer los configuraciones más faciles encontrar:
sudo mkdir /etc/php/ sudo ln -s /usr/local/lib/php.ini /etc/php/php.ini sudo ln -s /usr/local/etc/php-fpm.conf /etc/php/php-fpm.conf
ahora editas /etc/php/php-fpm.conf. donde dice:
Unix user of processes
<value name="user"></value>
Unix group of processes
<value name="group"></value>
ponemos:
Unix user of processes
<value name="user">www-data</value>
Unix group of processes
<value name="group">www-data</value>
cd ..
a la hora de escribir el version estable de nginx es 0.7.60.
wget http://sysoev.ru/nginx/nginx-0.7.60.tar.gz tar zxvf nginx-0.7.60.tar.gz cd nginx-0.7.60 sudo ./configure --sbin-path=/usr/local/sbin --with-http_ssl_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_stub_status_module sudo make && sudo make install
y una ves más un enlace:
sudo ln -s /usr/local/nginx/conf /etc/nginx
ahora encontraras el configuracion de nginx en /etc/nginx/conf/nginx.conf editar a gusto. o revisa nuestras otras paginas sobre Servidor Web / Nginx.
aqui ponemos un configuracion un vhost de nginx para joomla:
server {
listen 80;
server_name ojodeagua.org;
access_log /var/log/nginx/ojo.access.log;
index index.php;
location / {
root /var/www/ojodeagua.org;
expires 30d;
error_page 404 = @joomla;
log_not_found off;
}
location @joomla {
rewrite ^(.*)$ /index.php?q=$1 last;
}
location ~ \.php$ {
fastcgi_pass localhost:9000;
fastcgi_index index.php;
root /var/www/ojodeagua.org;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/conf/fastcgi_params.default;
}
}
tomado del ejemplo aqui:
http://wiki.nginx.org/NginxJoomla
vas a querer crear un script para que nginx arranca automaticamente. puedes modificar el script de init.d de nginx que viene con nginx o puede utilizar lo que si encuentra aqui http://interfacelab.com/nginx-php-fpm-apc-awesome/.
arrancas php-fpm asi:
sudo php-fpm start
si no da, checa /etc/php/php-fpm.conf asegurandote que los logs van a logs y los pids van a los lugares correctos. yo tengo los pids en /var/run y los logs en /var/log (lo que uno esperara en debian)
si puede inclusive copiar el script de arranque de php-fpm a /etc/init.d, para hacerlo qe arranca cuando arrancas la sistema:
sudo cp /usr/local/sbin/php-fpm /etc/init.d/ sudo update-rc.d php-fpm defaults 99