Preparando el pastel (instalando cakePHP)

CakePHP es un framework para PHP basandose en el modelo MVC (modelo vista controlador).
En primera instancia descargamos los paquetes necesarios junto con las dependencias necesarias.

gabriel@trantor:~$ sudo aptitude install apache2 mysql-server php5 php5-mysql

Para tener un poco ordenado nuestros sitios en apache, vamos a crear un virtual host donde almacenaremos todos los archivos de la instalación y en donde realizaremos nuestros pruebas al teclear en un navegador web: http://www.caketest.com
Creamos los siguientes directorios.

gabriel@trantor:~$ pwd
/home/gabriel
gabriel@trantor:~$ mkdir -p www/www.caketest.com
gabriel@trantor:~$ mkdir www/www.caketest.com/htdocs
gabriel@trantor:~$ mkdir www/www.caketest.com/cgi-bin
gabriel@trantor:~$ mkdir www/www.caketest.com/logs
gabriel@trantor:~$ sudo vim /etc/apache2/sites-available/www.caketest.com

Escribimos la siguiente configuración para nuestro host virtual.


        ServerAdmin webmaster@caketest.com
        ServerName  www.caketest.com
        ServerAlias caketest.com

        # Indexes + Directory Root.
        DirectoryIndex index.html
        DocumentRoot /home/gabriel/www/www.caketest.com/htdocs/

        # CGI Directory
        ScriptAlias /cgi-bin/ /home/gabriel/www/www.caketest.com/cgi-bin/
        
                Options +ExecCGI
        

        # Logfiles
        ErrorLog  /home/gabriel/www/www.caketest.com/logs/error.log
        CustomLog /home/gabriel/www/www.caketest.com/logs/access.log combined

Activamos el nuevo sitio.

gabriel@trantor:~$ sudo a2ensite www.caketest.com
Enabling site www.caketest.com.
Run '/etc/init.d/apache2 reload' to activate new configuration!
gabriel@trantor:~$ sudo /etc/init.d/apache2 reload
Reloading web server config: apache2
gabriel@trantor:~$ sudo /etc/init.d/apache2 restart
gabriel@trantor:/etc/apache2$ ls -l sites-enabled/
total 0
lrwxrwxrwx 1 root root 26 mar 29 14:36 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root 35 abr 14 09:23 www.caketest.com -> ../sites-available/www.caketest.com

Realizamos una modificación a nuestro archivo hosts.

gabriel@trantor:~$ cat /etc/hosts
127.0.0.1       localhost
127.0.1.1       trantor       www.caketest.com

Tecleamos en algún navegador la dirección http://www.caketest.com donde deberemos visualizar algo similar a un posible listado de archivos.
cake1
Desde la siguiente pagina descargamos la ultima versión estable del framework:
http://cakeforge.org/frs/download.php/713/cake_1.2.2.8120.tar.gz
Descomprimimos el archivo y copiamos todo su contenido al directorio htdocs de nuestro host virtual además de darle permisos al directorio tmp.

gabriel@trantor:~/Descargas$ tar xfz cake_1.2.2.8120.tar.gz
gabriel@trantor:~/Descargas$ cd cake_1.2.2.8120/
gabriel@trantor:~/Descargas/cake_1.2.2.8120$ cp -R * /home/gabriel/www/www.caketest.com/htdocs/
gabriel@trantor:~/Descargas/cake_1.2.2.8120$
gabriel@trantor:~/www/www.caketest.com/htdocs/app$ chmod -R 777 tmp/

Actualizando la pagina debemos ver la pagina de información de cake la cual dista de ser colorida.
cake3

Activamos mod_rewrite de apache.

gabriel@trantor:~$ sudo a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!
gabriel@trantor:~$ sudo /etc/init.d/apache2 restart

Para poder habilitar en nuestras paginas el modulo anterior realizamos unas modificaciones al archivo de configuración de nuestro sitio.

gabriel@trantor:~$ sudo vim /etc/apache2/sites-available/www.caketest.com
VirtualHost *:80>
        ServerAdmin webmaster@caketest.com
        ServerName  www.caketest.com
        ServerAlias caketest.com

        # Indexes + Directory Root.
        DirectoryIndex index.php
        DocumentRoot /home/gabriel/www/www.caketest.com/htdocs/app/webroot

        
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
        

        # CGI Directory
        ScriptAlias /cgi-bin/ /home/gabriel/www/www.caketest.com/cgi-bin/
        
                Options +ExecCGI
        

        # Logfiles
        ErrorLog  /home/gabriel/www/www.caketest.com/logs/error.log
        CustomLog /home/gabriel/www/www.caketest.com/logs/access.log combined

Reiniciamos nuestro servidor apache.

gabriel@trantor:~$ sudo /etc/init.d/apache2 reload

En dado caso que no se note una diferencia, se debe verificar la configuración referente a la activación de mod_rewrite ya que es la causa de los muchos errores iniciales.
cake4
Creamos nuestra base de datos a utilizar, iniciamos el servico de mysql, y nos conectamos con nuestro usuario (al instalarse mysql mediante aptitude, me pidio la clave para root).

gabriel@trantor:~$ sudo /etc/init.d/mysql start
Starting MySQL database server: mysqld.
Checking for corrupt, not cleanly closed and upgrade needing tables..
gabriel@trantor:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 28
Server version: 5.0.51a-24 (Debian)

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0.00 sec)

mysql> create database cake;
Query OK, 1 row affected (0.00 sec)

mysql>

Configuramos el archivo para la conexión de la base de datos a utilizar.

gabriel@trantor:~/www/www.caketest.com/htdocs/app/config$ mv database.php.default database.php
gabriel@trantor:~/www/www.caketest.com/htdocs/app/config$ vim database.php
class DATABASE_CONFIG {

	var $default = array(
		'driver' => 'mysql',
		'persistent' => false,
		'host' => 'localhost',
		'login' => 'root',
		'password' => 'password',
		'database' => 'cake',
		'prefix' => '',
	);

Recargamos la pagina y listo tenemos nuestro cakePHP listo y funcionando.
cake5
Referencias y para leer mas:
http://www.debian-administration.org/articles/412

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: