Nella lezione precedente abbiamo introdotto Symfony Framework ed esaminata la struttura dell'applicazione. Adesso possiamo iniziare ad installare e configurare una nostra installazione in locale.
Installare Composer
Per iniziare a lavorare con Symfony la prima operazione da eseguire sarà quella di scaricare ed installare Composer. Apriamo quindi il nostro terminale, posizioniamoci nella root del nostro Web server o comunque nella cartella in cui vogliamo installare Symfony e digitiamo il seguente comando:
curl -s https://getcomposer.org/installer | php
Nel caso in cui si stia utilizzando Windows o comunque curl non sia installato sul vostro sistema, consiglio di leggere la documentazione ufficiale in cui è possibile trovare una sezione dedicata alle modalità di installazione.
Verifichiamo che Composer funzioni correttamente digitando sul terminale l'istruzione:
php composer.phar --version
Se tutto dovesse essere andato a buon fine ci verrà restituita una stringa simile alla seguente:
Composer version 4ecdbf89c4a3d1e5dfe73c57e3202a5e2a18c87e 2014-07-28 20:12:27
Installazione di Symfony2
A questo punto, una volta installato Composer, potremo utilizzarlo per installare Symfony. Digitiamo quindi da terminale un'istruzione sul modello della seguente:
php composer.phar create-project symfony/framework-standard-edition cartella-del-progetto
Sostituiamo cartella-del-progetto
con il nome della cartella in cui vogliamo installare il framework, nell'esempio si è scelto symfony
, e lanciamo il comando. Composer si occuperà di scaricare tutte le dipendenze necessarie e di lanciare automaticamente il tool che ci aiuterà durante la fase di configurazione
Configurazione di Symfony2
Una volta scaricate tutte le dipendenze tramite Composer, ci verranno poste alcune domande per impostare i primi settaggi della nostra applicazione.
Would you like to install Acme demo bundle? [y/N]
Digitiamo Y
per installare il bundle di esempio. Questa operazione non sarà necessaria quando creeremo i nostri progetti reali ma in questo caso il bundle è un ottimo esempio di studio.
Some parameters are missing. Please provide them.
database_driver (pdo_mysql):
database_host (127.0.0.1):
database_port (null):
database_name (symfony):
database_user (root):
database_password (null):
mailer_transport (smtp):
mailer_host (127.0.0.1):
mailer_user (null):
mailer_password (null):
locale (en):
secret (ThisTokenIsNotSoSecretChangeIt):
debug_toolbar (true):
debug_redirects (false):
use_assetic_controller (true):
Ogni parametro può essere omesso, in quel caso verrà preso quello di default indicato tra parentesi. Selezioniamo i dati di accesso al nostro database e, se necessario, quelli per le mail. Lasciamo gli ultimi inalterati, per ora.
A questo punto verrà svuotata automaticamente la cache ed installati gli asset iniziali. Più avanti vedremo in dettaglio il significato di queste operazioni. Verifichiamo quindi che sia stato installato il necessario aprendo il terminale all'interno della cartella del progetto e digitando:
php app/console --version
Se anche stavolta tutto dovesse essere andato a buon fine, riceveremo un messaggio simile al seguente:
Symfony version 2.5.2 - app/dev/debug
Configurare il Web server per Symfony2
Per poter accedere alla nostra applicazione da browser, abbiamo bisogno di impostare il nostro Web server in modo da puntare alla cartella web
della nostra applicazione. In questa guida viene proposto un esempio basato su Apache; per chi utilizza Nginx è presente una guida sulla documentazione ufficiale o su quella di Symfony.
Apriamo il file di configurazione di Apache che, a seconda del sistema operativo e della versione può trovarsi in una posizione differente per inserire il nostro Virtual Host. Su Mac è possibile trovare il file all'indirizzo /private/etc/apache2/extra/httpd-vhosts.conf
. Se si utilizza Ubuntu, i file di configurazione si trovano in /etc/apache2/sites_enabled/
. Su Windows dipende molto dal software che si sta utilizzando come Web server (ad esempio Wamp, Xampp, Ampss, etc.).
Inseriamo all'interno del file le nostre regole:
<VirtualHost *:80>
ServerName symfony.local
DocumentRoot "/var/www/symfony/web"
<Directory "/var/www/symfony/web">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/symfony_error.log
CustomLog /var/log/apache2/symfony_access.log combined
</VirtualHost>
Nel caso in cui si utilizzi una versione di Apache inferiore o uguale alla 2.4, dobbiamo sostuire le riga da 5 a 10 con il seguente codice:
<Directory /var/www/project/web>
AllowOverride All
Require all granted
</Directory>
Con la regola appena vista comunichiamo ad Apache di voler far puntare l'indirizzo symfony.local
alla cartella /var/www/symfony/web
. Questo vuol dire che il path assoluto del progetto si trova in /var/www/symfony
. Anche in questo caso i path delle cartelle dipendono dal sistema operativo di riferimento.
A questo punto riavviamo il nostro server Web e proviamo ad accedere all'indirizzo:
http://symfony.local/config.php
Se dovessimo aver configurato tutto correttamente, riceveremo una pagina come quella in Figura 1 con alcuni suggerimenti di configurazione per il nostro server.
I messaggi differiscono dal tipo di server e di configurazione. Nel caso di un progetto di prova come questo, possiamo anche ignorare le "Raccomandazioni" bisogna invece prestare attenzione nel caso in cui siano presenti messaggi di livello più importante.
Permessi
In base al sistema operativo utilizzato, si può avere la necessità di impostare i permessi di accesso ai vari file dell'applicazione. In particolare le cartelle cache
e logs
devono essere scrivibili per consentire all'applicazione di funzionare correttamente.
Nel caso di un sistema operativo Linux si può fare attraverso ACL o semplice CHMOD. Per tutte le modalità vi rimando alla documentazione ufficiale di Symfony. Dato che ci troviamo su un progetto di esempio, una semplice soluzione potrebbe essere quella di aggiungere la riga:
umask(0000);
all'inizio dei file web/app.php
, web/app_dev.php
e app/console
.
Conclusioni
Ora che abbiamo installato e configurato Symfony, nella prossima lezione inizieremo ad entrare nel cuore del nostro framework analizzando come viene gestito il Routing.
Nel frattempo, se vogliamo dare un'occhiata al bundle Acme che durante l'installazione ci era stato chiesto di installare, apriamo il browser all'indirizzo:
http://symfony.local/app_dev.php