CakePHP v2

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 13

https://cakephp.

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

Servidor HTTP. Por ejemplo: Apache. mod_rewrite es recomendado,


pero no requerido.

PHP 5.5.9 o mayor.

extensin mbstring.

extensin intl.

Tcnicamente una base de datos no es necesaria, pero imaginamos que la mayora de


aplicaciones utiliza alguna. CakePHP soporta una gran variedad de sistemas de bases de
datos:

MySQL (5.1.10 o mayor).

PostgreSQL.

Microsoft SQL Server (2008 o mayor).

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

CakePHP utiliza Composer, una herramienta de manejo de dependencias para PHP


5.3+, como el mtodo de instalacin oficialmente soportado.

Primero, necesitas descargar e instalar Composer, si no lo has hecho ya. Si tienes


instalado cURL, es tan fcil como correr esto en un terminal:

curl -s https://getcomposer.org/installer | php

4
O, puedes descargar composer.phar desde el sitio web de Composer.

Para sistemas Windows, puedes descargar el Instalador de Composer para Windows


aqu. Para ms instrucciones acerca de esto, puedes leer el README del instalador de
Windows aqu.

Ya que has descargado e instalado Composer puedes generar una aplicacin CakePHP
ejecutando:

php composer.phar create-project --prefer-dist cakephp/app [app_name]


O si tienes Composer definido globalmente:

composer create-project --prefer-dist cakephp/app [app_name]


Una vez que Composer termine de descargar el esqueleto y la librera core de CakePHP,
deberas tener una aplicacin funcional de CakePHP instalada va Composer. Asegrate
de que los ficheros composer.json y composer.lock se mantengan junto con el resto de
tu cdigo fuente.

Ahora puedes visitar el destino donde instalaste la aplicacin y ver los diferentes avisos
tipo semforo de los ajustes.

Mantente al da con los ltimos cambios de CakePHP

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

CakePHP utiliza el directorio tmp para varias operaciones. Descripciones de Modelos,


el cach de las vistas y la informacin de la sesin son algunos ejemplos de lo anterior.
El directorio logs es utilizado para para escribir ficheros de log por el motor de FileLog
por defecto.

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:

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|


[n]ginx' | grep -v root | head -1 | cut -d\ -f1`
setfacl -R -m u:${HTTPDUSER}:rwx tmp
setfacl -R -d -m u:${HTTPDUSER}:rwx tmp
setfacl -R -m u:${HTTPDUSER}:rwx logs
setfacl -R -d -m u:${HTTPDUSER}:rwx logs
Configuracin

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: fcil de arrancar, las URLs de la aplicacin incluyen el


nombre del directorio de la aplicacin de CakePHP y es menos segura.

Produccin: Requiere tener la habilidad de configurar el directorio raz


del Servidor Web, cuenta con URLs limpias y es bastante segura.

Desarrollo

Este es el mtodo ms rpido para configurar CakePHP. En este ejemplo utilizaremos la


consola de CakePHP para ejecutar el servidor web nativo de PHP para hacer que tu
aplicacin est disponible en http://host:port. Para ello ejecuta desde el directorio de la
aplicacin:

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:

bin/cake server -H 192.168.13.37 -p 5673


Esto colocar tu aplicacin en http://192.168.13.37:5673/.

Eso es todo! Tu aplicacin de CakePHP est corriendo perfectamente sin tener que
haber configurado el servidor web manualmente.

El servidor de desarrollo nunca debe ser utilizado en un ambiente de produccin. Se


supone que esto es un servidor bsico de desarrollo y nada ms.

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

Una instalacin de produccin es una manera ms flexible de montar una aplicacin de


CakePHP. Utilizando este mtodo, podrs tener un dominio entero actuando como una
sola aplicacin de CakePHP. Este ejemplo te ayudar a instalar CakePHP donde quieras
en tu sistema de ficheros y tenerlo disponible en http://www.example.com. Toma en
cuenta que esta instalacin requiere que tengas los derechos de cambiar el directorio
raz (DocumentRoot) del servidor web Apache.

Despus de instalar tu aplicacin utilizando cualquiera de los mtodos mencionados en


el directorio elegido - asumiremos que has escogido /cake_install - tu estructura de
ficheros debe ser la siguiente:

/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.

Felicidades! Ests listo para Crear tu primera aplicacin de CakePHP.

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.

1. Asegura de que un archivo .htaccess de sobreescritura est permitido y que


AllowOverride est ajustado en All para el correcto DocumentRoot. Debes ver
algo similar a:

2. # Cada directorio al que Apache puede acceder puede ser


configurado
3. # con sus respectivos permitidos/denegados servicios y
caractersticas
4. # en ese directorios (y subdirectorios).
5. #
6. # Primero, configuramos el por defecto para ser muy restrictivo
con sus
7. # ajustes de caractersticas.
8. <Directory />
9. Options FollowSymLinks
10. AllowOverride All
11. # Order deny,allow
12. # Deny from all
13. </Directory>
14. Asegura que tu ests cargando mod_rewrite correctamente. Debes ver algo
similar a esto:

15. LoadModule rewrite_module libexec/apache2/mod_rewrite.so


En muchos sistemas esto estar comentado por defecto, as que solo debes
remover el smbolo # al comienzo de la lnea.

Despus de hacer los cambios, reinicia Apache para asegurarte que los ajustes
estn activados.

Verifica que tus archivos .htaccess est actualmente en directorio correcto.


Algunos sistemas operativo tratan los archivos que empiezan con . como oculto
y por lo tanto no podrs copiarlos.

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.

El directorio app de CakePHP (Ser copiado en la raz de tu aplicacin por


bake):

<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.

Para muchos servicios de alojamiento (GoDaddy, 1and1), tu servidor web estar


actualmente sirviendo desde un directorio de usuario que actualmente usa
mod_rewrite. Si tu ests instalando CakePHP en la carpeta de usuario
(http://example.com/~username/cakephp/), o alguna otra estructura de URL que
ya utilice mod_rewrite, necesitars agregar una declaracin a los archivos
.htaccess que CakePHP usa (.htaccess, webroot/.htaccess).

Esto puede ser agregado a la misma seccin con la directiva RewriteEngine,


entonces por ejemplo, tu .htaccess en el webroot debera verse algo as:

<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.

17. (Opcional) Para mejorar la configuracin de produccin, debes prevenir archivos


adicionales invlidos que sean tomados por CakePHP. Modificando tu .htaccess
del webroot a algo cmo esto:

18. <IfModule mod_rewrite.c>


19. RewriteEngine On

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:

ErrorDocument 404 /404-not-found


nginx

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;

# root directive should be global


root /var/www/example.com/public/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;
}
}
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;

# root directive should be global


root /var/www/example.com/public/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 /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:

1. Usa el Intalador de plataforma Web de Microsoft para instalar el


Modulo de Redirrecin 2.0 de URLs o descarga directamente (32-bit /
64-bit).

2. Crear un nuevo archivo llamado web.config en tu directorio de raz de


CakePHP.

3. Usando Notepad o cualquier editor de XML, copia el siguiente cdigo


en tu nuevo archivo web.config:

<?xml version="1.0" encoding="UTF-8"?>


<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Exclude direct access to webroot/*"
stopProcessing="true">
<match url="^webroot/(.*)$" ignoreCase="false" />
<action type="None" />
</rule>
<rule name="Rewrite routed access to assets(img, css,
files, js, favicon)"
stopProcessing="true">
<match url="^(img|css|files|js|favicon.ico)(.*)$"
/>
<action type="Rewrite" url="webroot/{R:1}{R:2}"

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.

No puedo usar Redireccionamientos de URL

Si no quieres o no puedes obtener mod_rewirte (o algun otro modulo compatible) en el


servidor a correr, necesitars usar el decorador de URL incorporado en CakePHP. En
config/app.php, descomentar la lnea para que se vea as:

'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

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy