Con questo articolo creiamo da zero una applicazione PHP+Laravel.
Attenzione: presuppongo che stiate lavorando con una distribuzione Linux Ubuntu!
PHP
Ci posizioniamo nella cartella htdocs della installazione del nostro web server (Apache, Ngnix, LiteSpeed,…)
$ composer create-project laravel/laravel middleware 5.2.*
MySQL
mysql > create database middleware;
mysql > grant all privileges on middleware.* to 'middleware' identified by 'secret';
Modifichiamo il file .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=middleware
DB_USERNAME=middleware
DB_PASSWORD=secret
Modifica di /etc/hosts
Occorre definire l’host che andremo ad invocare in modo tale che tcp/ip si connetta a localhost:
$ sudo nano /etc/hosts
127.0.0.1 localhost
127.0.0.1 cms.dev
127.0.1.1 jsbach js
127.0.0.1 api.trackye.com
127.0.0.1 smazing.dev
127.0.0.1 login.dev
127.0.0.1 middleware.dev
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Ho aggiunto la riga in grassetto.
Diritti sulle cartelle
$ sudo chown -R www-data middleware/
$ sudo chmod o+x storage/
$ sudo chmod g+w laravel.log
$ sudo chgrp marcob laravel.log #altrimenti non posso lanciare comandi da bash
Fino a qui riesco a fare funzionare l’url http://localhost/middleware/public ma non http://middleware.dev. Per fare questo occorre
Creare un virtualhost
# middleware
<VirtualHost *:80>
DocumentRoot /var/www/html/middleware/public
ServerName middleware.dev
<Directory /var/www/html/middleware/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error_middleware.log
CustomLog ${APACHE_LOG_DIR}/access_middleware.log combined
</VirtualHost>
Riavviare Apache
$ sudo service apache2 restart
Creare il controller Auth per gestire la protezione degli accessi
$ php artisan make:auth
...
Authentication scaffolding generated successfully!
Queste istruzioni creano l’infrastruttura PHP per gestire la login. Però non viene creato nulla sul database, questo va fatto a mano tramite le migrazioni. Facendo riferimento alle due migrazioni che vengono create per default (la tabella users e la tabella password_resets) con artisan possiamo creare le tabelle nel database:
$ php artisan migrate
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table
Nel database vengono create e due tabelle:

In realtà esiste una terza che è migrations che è i log delle migrazioni che facciamo (nel linguaggio di Laravel una migrazione è uno script PHP che ha come effetto una modifica del database).
Alla fine ecco creata l’applicazione, alla quale accediamo con http://middleware.dev

Commenti recenti