Hola, por favor, por favor, ayúdenme, estoy intentando configurar un entorno cakephp en un servidor Centos que ejecute Nginx con CGI de hechos. Ya tengo un sitio de wordpress ejecutándose en el servidor y un sitio de phpmyadmin, así que tengo PHP configurado correctamente.¿Cómo configuro las reglas de reescritura de nginx para que CakePHP funcione en CentOS?
Mi problema es que no puedo hacer que la configuración de las reglas de reescritura sea correcta en mi vhost para que cake muestre las páginas correctamente, es decir, con estilo, etc. He buscado en Google tanto como sea posible y el principal consenso de los sitios como el que se enumeran a continuación es que necesito tener la siguiente regla de reescritura en su lugar
location/{
root /var/www/sites/somedomain.com/current;
index index.php index.html;
# If the file exists as a static file serve it
# directly without running all
# the other rewrite tests on it
if (-f $request_filename) {
break;
}
if (!-f $request_filename) {
rewrite ^/(.+)$ /index.php?url=$1 last;
break;
}
}
http://blog.getintheloop.eu/2008/4/17/nginx-engine-x-rewrite-rules-for-cakephp
problema es que estos reescritura debe asumir ejecuta la torta directamente fuera de la webroot, que no es lo que quiero hacer. Tengo una configuración estándar para cada sitio, es decir, una carpeta por sitio que contiene las siguientes carpetas de registro, copia de seguridad, privada y pública. bienestar público donde Nginx está en busca de sus archivos para servir pero tengo torta instalado en privado con un enlace simbólico de vinculación pública de nuevo a/private/torta/
este es mi host virtual
server {
listen 80;
server_name app.domain.com;
access_log /home/public_html/app.domain.com/log/access.log;
error_log /home/public_html/app.domain.com/log/error.log;
#configure Cake app to run in a sub-directory
#Cake install is not in root, but elsewhere and configured
#in APP/webroot/index.php**
location /home/public_html/app.domain.com/private/cake {
index index.php;
if (!-e $request_filename) {
rewrite ^/(.+)$ /home/public_html/app.domain.com/private/cake/$1 last;
break;
}
}
location /home/public_html/app.domain.com/private/cake/ {
index index.php;
if (!-e $request_filename) {
rewrite ^/(.+)$ /home/public_html/app.domain.com/public/index.php?url=$1 last;
break;
}
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/public_html/app.domain.com/private/cake$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
Ahora como dije Puedo ver el index.php principal de la torta y lo he conectado a mi DB, pero esta página no tiene estilo, así que antes de continuar, me gustaría configurarlo correctamente. ¿Qué estoy haciendo mal?
Gracias seanl
Martin gracias por su aporte, hice la misma pregunta sobre el error de SErver en el sitio hermano de SO y tenía algunas respuestas que podrían interesarle http://serverfault.com/questions/32070/cakephp-nginx-config-rewrite- rules –