XAMPP + Laravel en Linux

A l’institut utilitzem Laravel per treballar el MVC amb frameworks. Ho trobo molt interessant perquè és un entremig entre la facilitat d’aprenentatge de CodeIgniter (que és el framework que s’ensenyava fa uns anys) i la robustesa de Symfony, que potser és una mica massa complicat pel temps que tenim marcat pel Departament d’Ensenyament.

Pel que fa al servidor (o al stack) per fer-lo córrer deixo llibertat als meus alumnes d’escollir el que vulguin. Jo tradicionalment he treballat amb WAMP, però veig que molts dels meus alumnes utilitzen XAMPP. Cap problema, canviem a XAMPP. De fet utilitzant XAMPP no ens lliguem a cap sistema operatiu i a més m’ha anat bé utilitzar-lo perquè he pogut guiar als alumnes en algun problema d’enrutament amb Laravel.

Els ordinadors de l’institut tenen Windows 7 com a sistema operatiu, i tots ja porten Composer instal·lat, que és el gestor de dependències de PHP amb el que instal·larem i crearem els projectes de Laravel.

La instal·lació i l’ús, tant de XAMPP com de Composer, en Windows és trivial. Només cal baixar els .msi o .exe i anar clicant “Següent”. Ara bé, amb Linux, si no estàs massa acostumat al seu ús, el procés pot ser una mica més amarg.

Tot seguit guiaré les etapes per tenir un servidor web a punt per treballar amb Laravel en Linux, concretament de la branca Debian (paquets .deb), però serà igual si es treballa amb .rpm. En un altre post parlaré de la gestió de paquets amb Snaps.

La primera pregunta que ens podem fer és per què instal·lar XAMPP si podem instal·lar cadascun dels seus components (Apache + MySQL MariaDB + PHP) per separat? Sí, és veritat, però considero que en el moment d’aprenentatge que es troba un alumne, i tal com està de polaritzat el mercat, ja està força bé haver escollit treballar amb Linux i entendre com funcionen els paquets, què són els repositoris, el perquè n’hi ha que estan en uns repositoris i altres no, etc., com per a sobre carregar-los de comandes que al capdavall les copiaran i enganxaran al terminal. XAMPP a més ens dona una petita consola, no tant molona com en Windows, però força amigable per engegar i apagar els servidors.

Per tant comencem. Primer anem a la pàgina de descàrregues de XAMPP i busquem la versió més actual (o la que més ens interessi pel nostre Linux). La descarreguem on vulguem, i obtindrem un arxiu .run. Per executar aquest arxiu (equivalent a l’instal·lador amb Windows) cal que tinguem permís d’execució, que molt probablement per defecte no tindrem ja que ens l’hem descarregat de fonts “no segures”. Obrim el terminal allí on tinguem l’arxiu i executem:

sudo chmod 755 xampp-linux-XXXXXX-installer.run

sudo ./xampp-linux-XXXXXX-installer.run

On XXXXX és la versió que haguem descarregat. La primera ordre atorgarà permís d’execució i la segona llençarà l’instal·lador. A partir d’aquí farem el que faríem amb Windows: “Següent, següent…”. Cal fixar-nos en la ruta d’instal·lació que per defecte és /opt/lampp. Això serà interessant perquè un cop acabada la instal·lació serà bona idea donar permís 777 (total) a la carpeta /opt/lampp/htdocs que és on posarem els arxius i projectes web que creem:

sudo chmod 777 -R /opt/lampp/htdocs

Un cop acabada la instal·lació ens sortirà per primer cop el panell de control de XAMPP tal com es veu en la següent imatge:

Panell de control de XAMPP per a Linux
Panell de control de XAMPP per a Linux

Si el tanquem i el volem tornar a obrir haurem d’executar l’arxiu manager-linux-x64.run ubicat a /opt/lampp, per tant seria bona idea fer-se un petit script o un llançador d’aplicacions en algun lloc còmode del nostre escriptori o barra d’eines.

Molt bé, ja tenim XAMPP instal·lat. Per fer més còmodes en un futur les crides a PHP des de la consola (que les necessitarem sense anar més lluny al instal·lar Composer), posarem la ruta on es troba el PHP-CLI. Editem la variable global PATH que es troba a /etc/environment:

sudo nano /etc/environment

Afegim la següent línia al final del document i el desem:

/opt/lampp/bin/php

Finalment creem un enllaç simbòlic entre on tenim PHP i la ruta que hem posat al PATH:

sudo ln -s /opt/lampp/bin/php /usr/local/bin/php

Ara anem a instal·lar Composer i tot seguit provem de crear un projecte amb Laravel. Ara sí que utilitzarem la consola per descarregar l’instal·lador, més que res per comoditat. Primer anirem a la carpeta /tmp per descarregar Composer i tot seguit l’instal·larem de la següent forma:

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

Ara mourem l’arxiu .phar a una ruta global per poder-lo cridar des de qualsevol projecte. Un arxiu .phar és un PHp ARchive, on en aquest cas tota l’aplicació Composer es troba encapsulada en aquest únic arxiu. Anem a fer-lo global:

sudo mv composer.phar /usr/local/bin/composer

Ara ja ho tenim tot a punt per crear un nou projecte amb Laravel. Ens assegurem que tenim tots els servidors engegats (almenys Apache) i ens dirigim al nostre directori web públic (/opt/lampp/htdocs). Aquí fent ús del Composer, creem un nou projecte anomenat “test”, pe exemple:

composer create-project --prefer-dist laravel/laravel test

Si tot ha anat bé, i després d’una estoneta, tindrem un projecte de Laravel creat. Per comprovar que tot està bé, a part de no haver vist cap missatge d’error, podem anar al nostre navegador i escriure: localhost/test/public

Bom! Error oi? No problem!, la documentació de Laravel ja ens adverteix d’això. Ens diu que després de la creació d’un projecte ens hem d’assegurar de tenir permís d’escriptura de les carpetes storage i cache:

After installing Laravel, you may need to configure some permissions. Directories within the storage and the bootstrap/cache directories should be writable by your web server or Laravel will not run. If you are using the Homestead virtual machine, these permissions should already be set.

Doncs o bé executem el propi servidor de Laravel (Homestead) escrivint a la consola en la carpeta del projecte:

php artisan serve

i llavors ens connectem a 127.0.0.1:8000/test, o bé donem permís d’escriptura a les carpetes anteriors:

sudo chmod 777 -R storage/

sudo chmod 777 -R boostrap/cache/

I si tot ha anat bé, ara sí que tindrem la vista de benvinguda per defecte de Laravel:

vista benvinguda Laravel
Vista de benvinguda de Laravel

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *