Con questo articolo creiamo da zero una applicazione PHP+Laravel.
Attenzione: presuppongo che stiate lavorando con una distribuzione Linux Ubuntu!
Sommario
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
3 commenti
Buongiorno Marco,
non riesco a capire perché ad introdurre il comando
$ sudo nano /etc/hosts
mi dice sudo: command not found
Utilizzo windows 10, spero mi possa aiutare.
Grazie
Autore
Uhmm… sudo e nano sono due comandi Linux (il primo consente di eseguire i comando successivo con privilegi di root, il secondo è un piccolo editor in modalità testo).
Il comando equivalente in Windows è “runas”.
Tuttavia il cuore della faccenda è il seguente: puoi editare il file /etc/hosts solo con privilegi di amministratore. Per farlo puoi utilizzare un normale editor di testo come Notepad o TextEditor: andando sull’icona del programma e facendo tasto destro e “Esegui come amministratore” si apre il programma in modalità Administrator e puoi aprire (e modificare!) il file hosts.
Attenzione che file non si trova in /etc/ ma in C:\Windows\system32\drivers\etc\ (almeno in Windows7, magari in Windows10 il percorso è leggeremnte diverso).
Ciao
Autore
non tutte le distribuzioni di Linux hanno il comando sudo. Ad esempio ArchLinux non ce l’ha di default. Bisogna installare quello oppure aprire una sessione di root con il comando “su” e poi procedere.