En este artículo os voy a mostrar como montar CakePHP mediante git con unos simples pasos, a priori te parecerán muchos pero en realidad son muy simples y no creo que tardes más de 5 minutos.
El truco está en instalar CakePHP como un submodulo con git, de manera que el core del framework siempre lo podemos tener actualizado y linkado al repositorio oficial de CakePHP con git
Primera parte agregar CakePHP como un submódulo de git
1) Ubícate donde quieras montar el proyecto, en /var/www/html, en tu /home o donde quieras.
2) Crea una nueva carpeta
[code]
mkdir <nombre-del-proyecto>
[/code]
Entra en la carpeta
[code]
cd <nombre-del-proyecto>
[/code]
3) Inicia el repositorio con git
[code]
git init
[/code]
Esto te mostrará un mensaje similar al siguiente:
Initialized empty Git repository in /path-completo/.git/
4) Ahora llega la magia. Añade CakePHP como un submódulo
[code]
git submodule add git://github.com/cakephp/cakephp.git cakephp
[/code]
Esto te mostrará por pantalla algo similar a esto:
Cloning into ‘cakephp’…
remote: Counting objects: 174971, done.
remote: Compressing objects: 100% (35369/35369), done.
remote: Total 174971 (delta 136329), reused 170237 (delta 133011)
Receiving objects: 100% (174971/174971), 24.33 MiB | 1.46 MiB/s, done.
Resolving deltas: 100% (136329/136329), done.
Cuando haya terminado actualiza y registra el módulo
[code]
git submodule update –init
[/code]
Segunda parte haz un bake y setup de tu proyecto
1) Situado en el root el proyecto, ejecuta el comando bake de CakePHP.
[code]
cakephp/lib/Cake/Console/cake bake
[/code]
Esto te mostrará por pantalla una serie de pasos que tendrás que ir completando.:
1.1)
[email protected]:~$ cakephp/lib/Cake/Console/cake bake
Welcome to CakePHP v2.2.5 Console
—————————————————————
App : proyecto-prueba
Path: /home/pedro/proyecto-prueba/
—————————————————————
What is the path to the project you want to bake?
[/home/pedro/proyecto-prueba/myapp] >
Pulsa ENTER o introduce un nombre. Yo suelo poner app
1.2 )
What is the path to the directory layout you wish to copy?
[/home/pedro/proyecto-prueba/cakephp/lib/Cake/Console/Templates/skel] >
Pulsa ENTER o introduce un nombre. Suelo pulsar ENTER
1.3)
Skel Directory: /home/pedro/proyecto-prueba/cakephp/lib/Cake/Console/Templates/skel
Will be copied to: /home/pedro/proyecto-prueba/app
—————————————————————
Look okay? (y/n/q)
[y] >
Pulsa y
1.4 ) Ahora te pide los datos para acceder a la base de datos. OJO! Previamente tienes que haber creado una base de datos. Yo he creado una en MySQL.
Your database configuration was not found. Take a moment to create one.
—————————————————————
Database Configuration:
—————————————————————
Name:
[default] >
Se suele dejar default, pulsa ENTER
Datasource: (Mysql/Postgres/Sqlite/Sqlserver)
[Mysql] >
Si usas MySQL pulsa ENTER
Persistent Connection? (y/n)
[n] >
Recomendado es que no, pulsa ENTER
Sigue el resto de pasos, para agregar el Host de la base de datos, el puerto, el usuario, y la contraseña.
Al final de todo te debería aparecer el siguiente mensaje
Creating file /home/pedro/proyecto-prueba/app/Config/database.php
Wrote `/home/pedro/proyecto-prueba/app/Config/database.php`
Ajuste final
* Si usas Apache deberás incluir un archivo .htaccess en la carpeta root de tu proyecto. El resto de archivos .htaccess se crearán con el bake
[code]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
[/code]
* Da permisos de escritura a la carpeta app/tmp siempre y cuando el propietario de la carpeta sea apache
[code]
sudo chmod 755 -R app/tmp
[/code]
Cualquier duda o pregunta, no dudes en hacerlo dejando un comentario!
Y ya sabes para más información de CakePHP échale un ojo a su documentación http://book.cakephp.org/2.0/en/index.html
Buenas Pedro, aún me queda bastante por aprender con CakePHP ya que no sé todavía cuál es la utilidad exacta de GIT.
Sin embargo, creo que al menos esto sí que puedo preguntar por ahora… ¿Por qué has puesto permisos para todos en la carpeta /tmp/ ? ¿No sería un fallo de seguridad?
Un saludo.
Hola Cristian,
Bueno ten en cuenta que puedes usar CakePHP sin necesidad de git. Es cierto que todavía hay cosas de git que no controlo y a veces me vuelve un poco loco.
Pues sobre lo que preguntas, tienes razón, puede llegar a ser un fallo de seguridad. Aunque como su nombre indica es una carpeta que contiene archivos y otras carpetas temporales donde el framework escribe su cache, descripciones de los models, etc..
He hecho un ajuste en el artículo para que sea más óptimo y seguro.
Habría que dar permisos 755 y el propietario de la carpeta debe ser apache.
Con esto securizamos más nuestra aplicación.
Gracias y un saludo!