Instalando Laravel en Debian 9

icono de php Repasando el “histórico” del blog que a menudo me sirve como memoria veo que he recurrido en los últimos 12 años a dos frameworks para php: cake y codeigniter. Ahora que me toca volver a decidirme por alguno y teniendo en cuenta que tengo totalmente olvidado a ambos he preguntado por ahí y todo el mundo parece estar de acuerdo en que lo mejor del momento es Laravel. La versión actual de Laravel es la 5.6. Vamos, pues, a por el tercero.

La instalación de Laravel es bien sencilla. En esta entrada tocaremos un entorno “clásico” en este blog: una Debian sin entorno gráfico. En una entrada posterior tocaremos la instalación en un windows 7 con Xampp que en este caso me resulta también imprescindible. Vamos a ello.

Partimos de una Debian 9.3.0 (la versión estable en el momento de escribir esto) recién instalada y sin ningún tipo de personalización. Lo primero que necesitamos instalar son ciertos paquetes de utilidades y el entorno web necesario para trabajar con laravel: apache2, php y mysql-server:

apt install curl unzip git
apt install apache2 libapache2-mod-php
apt install mysql-server
apt install php-mysql php-xml php-mbstring

En segundo lugar tenemos que instalar composer, un gestor de paquetes php que nos servirá para instalar el entorno necesario para trabajar con Laravel. Así:

cd /usr/local/bin
curl -sS https://getcomposer.org/installer | php

Esto bajará un archivo llamado composer.phar y lo depositará en el directorio /usr/local/bin. Y ya hemos acabado. ¿Y he leído por ahí que alguien decía que era difícil? ¡Tendrían que haber instalado alguna red Novell en su vida! 😀

Como decía, ya tenemos todo lo que necesitamos para crear nuestra primera aplicación con Laravel. Empezamos. Nuestro primer proyecto se llamará prueba y estará en el directorio /var/www/html/prueba. Lo primero que tenemos que hacer es hacer que composer nos cree toda la estructura necesaria:

cd /var/www/html
composer.phar create-project laravel/laravel prueba --prefer-dist

Asignamos los permisos adecuados en la estructura que se ha creado:

chgrp -R www-data /var/www/html/your-project
chmod -R 775 /var/www/html/your-project/storage

Creamos un virtual host adecuado en el directorio /etc/apache2/sites-availables. En mi caso le he puesto laravel.conf y el contenido creado es este:

<VirtualHost *:80>
    DocumentRoot /var/www/html/prueba/public
    DirectoryIndex index.php
    <Directory /var/www/html/prueba>
        AllowOverride All
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Por último, deshabilitamos el virtual host que apache crea por defecto, habilitamos el nuestro, habilitamos el modulo rewrite de apache y reiniciamos el servidor web:

a2dissite 000-default.conf
a2ensite laravel.conf
a2enmod rewrite
systemctl restart apache2

Si ahora apuntamos con un navegador a la ip de nuestra máquina debian veremos la página de inicio de Laravel:

Laravel 5.6 en Debian 9.4

Inicios con Cake PHP Framework

icono de phpTengo pendiente empezar el diseño y desarrollo de un par de aplicaciones sencillitas y estaba barajando la posibilidad de usar un framework de PHP para acelerar la parte tediosa de manejo de las bases de datos. He instalado y he estado leyendo algo de documentación de tres de ellos (PDT, Zend y Cake) y al final este último es el que más me convence. Instalar PDT ha sido tal engorro (eclipse se está convirtiendo en un verdadero monstruo, pero de feo) que me ha dejado sin energías para cogerle gusto… Y de entre Cake y Zend, ambos increíblemente sencillos de echar a andar, me ha convencido el primero por varias cosas (casi pueriles, he de reconocerlo) como que, por ejemplo, visualmente me ha entrado mucho más por los ojos (por algo tan sencillo como que aplica una hoja de estilos por defecto a los proyectos nuevos).

La instalación de un entorno de desarrollo básico es bien sencilla y mucho más usando para ello xampp. Te bajas la última versión de cake, la descomprimes sobre un directorio que cuelge de htdocs y ya. Para instalación en otros entornos hay un capítulo dedicado a ello en el manual básico.

Crear el primer “armazón” para una aplicación es también muy sencillo: basta con ejecutar desde un terminal el script bake.php que está en el directorio de cake/scripts (tal vez necesitarás instalar un interprete en línea de comandos para php) y que nos guiará de forma interactiva para crear la estructura necesaria para cake.

Otra función muy interesante es lo que llama scaffolding. Sólo tenemos que definir una variable ($scaffold) en la clase controladora de una de nuestras bases de datos para que cake cree de forma automática todo lo necesario para borrar, crear, editar o navegar por entre los registros de la misma.

Cake usa el patrón MVC (modelo-vista-controlador), una estructura que separa en tres capas el diseño de la aplicación y que es usado por otros muchos frameworks, entre ellos el omnipresente Ruby on Rails.