CakePHP v2
CakePHP v2
CakePHP v2
org/
https://book.cakephp.org/3.0/en/installation.html
CakePHP
1
2
3
Instalacin
CakePHP se instala rpida y fcilmente. Los requisitos mnimos son un servidor web y
una copia de CakePHP, y ya! Aunque este manual se enfoca principalmente en
configurar Apache (ya que es el ms utilizado), puedes configurar CakePHP para que
corra con una variedad de servidores web como nginx, LightHTHPD o Microsoft IIS.
Requisitos
extensin mbstring.
extensin intl.
PostgreSQL.
SQLite 3.
Todos los drivers nativos necesitan PDO. Debes asegurarte de tener las extensiones de
PDO correctas.
Licencia
CakePHP est licenciado bajo la Licencia MIT. Esto significa que eres libre para
modificar, distribuir y republicar el cdigo fuente con la condicin de que las notas de
copyright queden intactas. Tambin eres libre para incorporar CakePHP en cualquier
aplicacin comercial o de cdigo cerrado.
Instalando CakePHP
4
O, puedes descargar composer.phar desde el sitio web de Composer.
Ya que has descargado e instalado Composer puedes generar una aplicacin CakePHP
ejecutando:
Ahora puedes visitar el destino donde instalaste la aplicacin y ver los diferentes avisos
tipo semforo de los ajustes.
Si quieres mantenerte al corriente de los ltimos cambios en CakePHP puedes aadir las
siguientes lneas al composer.json de tu aplicacin:
"require": {
"cakephp/cakephp": "dev-master"
}
Donde <branch> es el nombre del branch que quieres seguir. Cada vez que ejecutes php
composer.phar update recibirs las ltimas actualizaciones del branch seleccionado.
Permisos
Asegrate de que los directorios logs, tmp y todos sus subdirectorios tengan permisos
de escritura por el usuario del Servidor Web. La instalacin de CakePHP a travs de
Composer se encarga de este proceso haciendo que dichos directorios tengan los
permisos abiertos globalmente con el fin de que puedas tener ajustado todo de manera
ms rpida. Obviamente es recomendable que revises, y modifiques si es necesario, los
permisos tras la instalacin va Composer para mayor seguridad.
Un problema comn es que logs, tmp y sus subdirectorios deben poder ser modificados
tanto por el usuario del Servidor Web como por el usuario de la lnea de comandos. En
un sistema UNIX, si los usuarios mencionados difieren, puedes ejecutar los siguientes
5
comandos desde el directorio de tu aplicacin para asegurarte de que todo est
configurado correctamente:
Configurar una aplicacin de CakePHP puede ser tan simple como colocarla en el
directorio raz de tu Servidor Web, o tan complejo y flexible como lo desees. Esta
seccin cubrir los dos tipos principales de instalacin de CakePHP: Desarrollo y
Produccin.
Desarrollo
bin/cake server
Por defecto, sin ningn argumento, esto colocar tu aplicacin en
http://localhost:8765/.
Si tienes algn conflicto con localhost o el puerto 8765, puedes indicarle a la consola de
CakePHP que corra el servidor de manera ms especfica utilizando los siguientes
argumentos:
Eso es todo! Tu aplicacin de CakePHP est corriendo perfectamente sin tener que
haber configurado el servidor web manualmente.
Si prefieres usar un servidor web real, Debes poder mover todos tus archivos de la
instalacin de CakePHP (incluyendo los archivos ocultos) dentro la carpeta raz de tu
servidor web. Debes entonces ser capaz de apuntar tu navegador al directorio donde
moviste los archivos y ver tu aplicacin en accin.
6
Produccin
/cake_install/
bin/
config/
logs/
plugins/
src/
tests/
tmp/
vendor/
webroot/ (este directorio es ajutado como el DocumentRoot)
.gitignore
.htaccess
.travis.yml
composer.json
index.php
phpunit.xml.dist
README.md
Si utilizas Apache debes configurar la directiva DocumentRoot del dominio a:
DocumentRoot /cake_install/webroot
Si tu configuracin del Servidor Web es correcta debes tener tu aplicacin disponible
ahora en http://www.example.com.
A rodar!
Muy bien, ahora veamos a CakePHP en accin. Dependiendo de los ajustes que hayas
utilizado, deberas dirigirte en tu navegador a http://example.com/ o
http://localhost:8765/. En este punto, encontrars la pgina principal de CakePHP y un
mensaje que te dice el estado actual de tu conexin a la base de datos.
URL Rewriting
Apache
Mientras que CakePHP est diseado para trabajar con mod_rewrite recin sacado del
horno, usualmente hemos notado que algunos usuarios tienen dificultades para lograr
que todo funcione bien en sus sistemas.
7
Aqu hay algunas cosas que puedes tratar de conseguir para que funcione correctamente.
La primera mirada debe ir a httpd.conf. (Asegura de que ests editando el httpd.conf del
sistema en lugar del httpd.conf de un usuario o sitio especfico)
Hay archivos que pueden variar entre diferentes distribuciones y versiones de Apache.
Debes tambin mirar en http://wiki.apache.org/httpd/DistrosDefaultLayout para obtener
informacin.
Despus de hacer los cambios, reinicia Apache para asegurarte que los ajustes
estn activados.
16. Asegrate que tu copia de CakePHP provenga desde la seccin descargas del
sitio o de nuestro repositorio de Git, y han sido desempacados correctamente,
revisando los archivos .htaccess.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
8
</IfModule>
El directorio webroot de CakePHP (Ser copiado a la raz de tu aplicacin web
por bake):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Si tu sitio an tiene problemas con mod_rewrite, querrs probar modificar los
ajustes para el Servidor Virtual. En Ubuntu, edita el archivo /etc/apache2/sites-
available/default (la ubicacin depende de la distribucin). En este archivo,
debe estar AllowOverride None cambiado a``AllowOverride All``, as tendrs:
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
En macOS, otra solucin es usar la herramienta virtualhostx para crear
servidores virtuales y apuntarlos a tu carpeta.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /path/to/app
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Los detalles de estos cambios dependern de tu configuracin, y puede incluir
algunas lneas adicionales que no estn relacionadas con CakePHP. Por favor
dirgete a la documentacin en lnea de Apache para ms informacin.
9
20. RewriteBase /path/to/app/
21. RewriteCond %{REQUEST_FILENAME} !-f
22. RewriteCond %{REQUEST_URI} !^/(webroot/)?(img|css|js)/(.*)$
23. RewriteRule ^ index.php [L]
24. </IfModule>
Lo anterior simplemente previene que archivos adicionales incorrectos sean
enviados a index.php en su lugar muestre la pgina 404 de tu servidor web.
Adicionalmente puedes crear una pgina 404 que concuerde, o usar la pgina
404 incluida en CakePHP agregando una directiva ErrorDocument:
nginx no hace uso de un archivo .htaccess como Apache, por esto es necesario crear la
reescritura de URL en la configuraciones de site-available. Esto usualmente se
encuentra en /etc/nginx/sites-available/your_virtual_host_conf_file.
Dependiendo de la configuracin, tu necesitars modificar esto, pero por lo menos,
necesitas PHP corriendo como una instancia FastCGI:
server {
listen 80;
server_name www.example.com;
rewrite ^(.*) http://example.com$1 permanent;
}
server {
listen 80;
server_name example.com;
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;
}
}
En algunos servidores (Como Ubuntu 14.04) la configuracin anterior no funcionar
recin instalado, y de todas formas la documentacin de nginx recomienda una forma
diferente de abordar esto (http://nginx.org/en/docs/http/converting_rewrite_rules.html).
Puedes intentar lo siguiente (Notars que esto es un bloque de servidor {}, en vez de
dos, pese a que si quieres que example.com resuelva a tu aplicacin CakePHP en
adicin a www.example.com consulta el enlace de nginx anterior):
10
server {
listen 80;
server_name www.example.com;
rewrite 301 http://www.example.com$request_uri permanent;
access_log /var/www/example.com/log/access.log;
error_log /var/www/example.com/log/error.log;
location / {
try_files $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;
}
}
IIS7 (Windows)
IIS7 no soporta de manera nativa los archivos .htaccess. Mientras hayan add-ons que
puedan agregar soporte a estos archivos, puedes tambin importar las reglas htaccess en
IIS para usar las redirecciones nativas de CakePHP. Para hacer esto, sigue los siguientes
pasos:
11
appendQueryString="false" />
</rule>
<rule name="Rewrite requested file/folder to
index.php"
stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<action type="Rewrite" url="index.php"
appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Una vez el archivo web.config es creado con las reglas de redireccin amigables de IIS,
los enlaces, CSS, JavaScript y redirecciones de CakePHP deberan funcionar
correctamente.
'App' => [
// ...
// 'baseUrl' => env('SCRIPT_NAME'),
]
Tambin remover estos archivos .htaccess:
/.htaccess
webroot/.htaccess
Esto har tus URL verse as
www.example.com/index.php/controllername/actionname/param antes que
www.example.com/controllername/actionname/param.
12
composer.json
"require": {
"cakephp/cakephp": "3.3.*"
}
"require": {
"cakephp/cakephp": "dev-master"
}
13