×
Rewrite rules de CakePHP para Nginx y Apache

Rewrite rules de CakePHP para Nginx y Apache


Hola, en esta oportunidad vamos a hablar sobre como configurar los 2 servidores web más utilizados como son Apache y Nginx para colocar nuestra aplicación realizada en el framework de php llamado Cakephp, aquí vas a encontrar los archivos de configuración de forma simple para que lo puedas implementar en tus proyectos. Si bien en Apache suele funcionar casi todo por defecto, vamos a explorar su configuración y también veremos como configurar cakephp en Nginx, que suele ser un mundo totalmente diferente al viejo Apache.

 

Configuración de Apache2 para nuestro proyecto Cakephp

 

En tu archivo de httpd.conf debes verificar las siguientes configuraciones adentro de la etiqueta virtualhost

En la etiqueta Directory

1. Options FollowSymLinks
2. AllowOverride All : debe estar en All

<Directory/>
    Options FollowSymLinks
    AllowOverride All
</Directory>

 

<Directory>
Options Indexes FollowSymLinks MultiViews 
AllowOverride All 
Order Allow,Deny 
Allow from all
</Directory/>

Ahora debes verificar si tienes instalado el modulo rewrite y colocar esta configuración

 
  <IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
  </IfModule>

 

Configuración de Nginx para nuestro proyecto Cakephp

 

Configuración de Ejemplo

server {
    listen   80;
    server_name example.com;

    # root directive should be global
    root   /var/www/example.com/public/app/webroot/;
    index  index.php;

    access_log /var/www/example.com/log/access.log;
    error_log /var/www/example.com/log/error.log;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

Lineas importantes

1. Document root de nuestro proyecto, termina en app/webroot/

root   /var/www/example.com/public/app/webroot/;

2. Redirección de todas las peticiones al index.php

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

3. Nuestro bloque de Php-fpm

   location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

Si has seguido estos pasos ya deberías tener cakephp funcionando tanto en Apache como con Nginx. Avísanos si encuentras algún problema puntual con estas configuraciones o si tienes una mejor configuración para aportar.

¿Te gustó el artículo? Compártelo:

Santiago Borges

Escrito por Santiago Borges

Departamento Técnico VIP, asignado a brindar soporte de forma exclusiva a clientes de alto tráfico y con requerimientos de programación. Además, es un experimentado SysAdmin, que se encargará de que recibas la mejor asistencia ante cualquier problema. Actualmente está cursando estudios de RHCE y posee certificaciones en Inglés por la Universidad de Cambridge. Conoce más sobre él desde su perfil de LinkedIn.

    Recibe en tu correo electrónico toda la información sobre hosting, desarrollo web y dominios

    Términos y Condiciones de Servicio

    Infranetworking Internacional - Copyright 2002-2024
    Todos los derechos reservados.