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.