Instalando Laravel
Laravel es un framework para el desarrollo de aplicaciones/sitios en PHP y lo voy a instalar para conocerlo mejor y ver si soy capaz de desarrollar una aplicación web. Aunque me dedique a la administración de sistemas la programación me gustaba en mi época de estudiante y quiero ver si soy capaz de desarrollar una aplicación web que lleva tiempo rondándome la cabeza.
Seguro que hay sistemas mejores para programación de aplicaciones, pero hay que recordar que esto es sólo un interés, de momento ni siquiera llega a ser un hobby.
En fin, vamos adelante con la instalación de Laravel en la vieja Raspberry PI B corriendo DietPI.
Instalamos algunos requierimientos previos:
# apt install php-json php-mbstring php-zip php-xml php-tokenizer
Creamos la base de datos para nuestra aplicación con Laravel
# mysql MariaDB [(none)]> CREATE DATABASE laraveldb; MariaDB [(none)]> GRANT ALL ON laraveldb.* to 'adminweb'@'localhost' IDENTIFIED BY 'password'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit
Actualizar composer. Es posible que la versión de composer que tentemos con DietPI esté anticuada, suele mostrar mensaje de advertencia. Podemos comprobar si hay versiones más nuevas con composer self-update y podemos actualizar ala versión 2 con composer self-update –2 Según la web de composer, hay una mejora de rendimiento considerable.
También se puede actualizar mediante script, si no nos funciona el comando anterior, como indican aquí.
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" # php composer-setup.php --install-dir=/usr/bin # php -r "unlink('composer-setup.php');"
Nos posicionamos en la carpeta del sitio web e instalamos Laravel ayudándonos de «composer»
# cd /var/www/html # composer create-project --prefer-dist laravel/laravel rbiapps.com
Cuando finalice, podemos entrar en la carpeta que ha creado. Si hacemos ls -la podemos ver las carpetas y ficheros que ha creado, entre ellos el fichero .env, que es el que tiene la configuración del sitio.
root@RBIPI01:/var/www/rbiapps.com# ls -la total 320 drwxr-xr-x 12 root root 4096 Feb 7 23:07 . drwxr-xr-x 6 root root 4096 Feb 7 23:19 .. -rw-r--r-- 1 root root 220 Jan 19 16:20 .editorconfig -rw-r--r-- 1 root root 862 Feb 7 23:08 .env -rw-r--r-- 1 root root 811 Jan 19 16:20 .env.example -rw-r--r-- 1 root root 111 Jan 19 16:20 .gitattributes -rw-r--r-- 1 root root 191 Jan 19 16:20 .gitignore -rw-r--r-- 1 root root 181 Jan 19 16:20 .styleci.yml -rw-r--r-- 1 root root 3780 Jan 19 16:20 README.md drwxr-xr-x 7 root root 4096 Jan 19 16:20 app -rwxr-xr-x 1 root root 1686 Jan 19 16:20 artisan drwxr-xr-x 3 root root 4096 Jan 19 16:20 bootstrap -rw-r--r-- 1 root root 1646 Jan 19 16:20 composer.json -rw-r--r-- 1 root root 224057 Feb 7 23:07 composer.lock drwxr-xr-x 2 root root 4096 Jan 19 16:20 config drwxr-xr-x 5 root root 4096 Jan 19 16:20 database -rw-r--r-- 1 root root 473 Jan 19 16:20 package.json -rw-r--r-- 1 root root 1202 Jan 19 16:20 phpunit.xml drwxr-xr-x 2 root root 4096 Jan 19 16:20 public drwxr-xr-x 6 root root 4096 Jan 19 16:20 resources drwxr-xr-x 2 root root 4096 Jan 19 16:20 routes -rw-r--r-- 1 root root 563 Jan 19 16:20 server.php drwxr-xr-x 5 root root 4096 Jan 19 16:20 storage drwxr-xr-x 4 root root 4096 Jan 19 16:20 tests drwxr-xr-x 44 root root 4096 Feb 7 23:08 vendor -rw-r--r-- 1 root root 559 Jan 19 16:20 webpack.mix.js
Asignamos permisos necesarios en algunas carpetas
# chown -R :www-data /var/www/html/rbiapps.com/storage/ # chown -R :www-data /var/www/html/rbiapps.com/bootstrap/cache/ # chmod -R 0777 /var/www/html/rbiapps.com/storage/ # chmod -R 0775 /var/www/html/rbiapps.com/bootstrap/cache/
Laravel utiliza una KEY para securizar las sesiones y otros datos encriptados. Vamos a generar una nueva que se guardará en el fichero .env, en la clave KEY_APP
# php artisan key:generate
También editaremos el fichero .env para configurar los datos de conexión a la base de datos que hemos creado en MariDB para nuestro sitio o aplicación web.
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laraveldb DB_USERNAME=adminweb DB_PASSWORD=password
Creamos el fichero de configuración de nuestro nuevo sitio en NGINX
# nano /etc/nginx/sites-available/rbiapps.com.conf
server{ listen 80; server_name www.rbiapps.com; root /var/www/html/rbiapps.com/public; index index.php; charset utf-8; gzip on; gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php { include fastcgi.conf; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php/php7.3-fpm.sock; } location ~ /\.ht { deny all; } }
Ahora creamos el enlace en los sitios habilitados de nginx
# ln -s /etc/nginx/sites-available/rbiapps.com.conf /etc/nginx/sites-enabled/
Comprobamos la configuración de nginx y, si todo es correcto, reiniciamos ngix para que aplique la nueva configuración.
# nginx -t # systemctl restart nginx
Ya podemos acceder a nuestro sitio. Si estamos trabajando en el equipo local o con máquinas virtuales puede ser que necesitemos editar el fichero host para resolver el nombre de dominio que hayamos elegido.

Y ahora ya podemos empezar a desarrollar con Laravel.
Espero que te resulte de utilidad.