English version here.
Partendo dall’assunto che il sistema operativo sia stato appena installato, questo tutorial si focalizza sul bootstrap di un nuovo progetto Symfony2 sotto Ubuntu 12.10 e gestito tramite Github, con l’aggiunta di alcuni componenti non essenziali ma di largo utilizzo in progetti del genere. Per qualsiasi dettaglio tralasciato, postate un commento qui sotto o consultate la documentazione ufficiale.
Cominciamo con l’installare i pacchetti e i software propedeutici all’installazione vera e propria del progetto:
- Installiamo git:
sudo apt-get install git
- Installiamo java (facoltativo, diventa necessario se si vuole utilizzare assetic con YUI Compressor):
sudo apt-get install openjdk-7-jre
- Installiamo node e less (facoltativo, diventa necessario se si vuole utilizzare assetic con il filtro less):
sudo apt-get install g++ wget http://nodejs.org/dist/v0.10.0/node-v0.10.0.tar.gz tar xvfz node-v0.10.0.tar.gz cd node-v0.10.0.tar.gz ./configure make && sudo make install sudo npm install less --global
- Installiamo e configuriamo l’ambiente LAMP:
sudo apt-get install php5 php5-gd php5-mysql php5-curl php5-mcrypt php5-intl php-pear php5-cli php5-dev libapache2-mod-php5 mysql-client-5.5 mysql-server-5.5
- Modifichiamo i file /etc/php5/apache2/php.ini e /etc/php5/cli/php.ini:
- decommentiamo la key date.timezone e assegnamole valore Europe/Rome:
date.timezone = Europe/Rome
- settiamo la key short_open_tag a Off:
short_open_tag = Off
- decommentiamo la key date.timezone e assegnamole valore Europe/Rome:
- Modifichiamo i file /etc/php5/apache2/php.ini e /etc/php5/cli/php.ini:
- Installiamo APC (facoltativo, ma caldamente consigliato per accelerare l’esecuzione degli script PHP):
sudo apt-get install libpcre3-dev sudo pecl install apc echo "extension=apc.so" | sudo tee -a /etc/php5/conf.d/apc.ini
Possiamo ora passare all’installazione vera e propria del progetto facendo alcune piccole assunzioni preventive:
- la cartella del progetto sarà posizionata nella home dell’utente Ubuntu. Alcune istruzioni che seguono sono infatti dipendenti da questa assunzione; ciò non toglie che il progetto possa essere installato in qualsiasi altra posizione del filesystem, ma le istruzioni per l’installazione varierebbero leggermente.
- Chiameremo il progetto mySymfony2Project. Va da sé che questa scelta è totalmente arbitraria.
- Utilizzeremo la versione più recente di Symfony2 al momento della scrittura di questo articolo, ossia la 2.2.0.
- Scarichiamo Composer:
cd ~ curl -s https://getcomposer.org/installer | php
- Inizializziamo lo scheletro del progetto Symfony2:
php composer.phar create-project symfony/framework-standard-edition mySymfony2Project 2.2.0 mv composer.phar mySymfony2Project
- Inizializziamo il repository git e eseguiamo il primo commit:
cd mySymfony2Project git init git add . git commit -m "Commit iniziale"
- Creiamo il repository del progetto su Github e colleghiamolo a quello appena creato in locale. Per fare ciò, andiamo all’indirizzo https://github.com/new e compiliamo come da figura:
Image may be NSFW.
Clik here to view.
dopodiché eseguiamo il collegamento:git remote add origin https://github.com/<username>/mySymfony2Project.git git push -u origin master
- Configurare acl per le cartelle cache e logs:
sudo setfacl -R -m u:www-data:rwX -m u:`whoami`:rwX app/cache app/logs sudo setfacl -dR -m u:www-data:rwx -m u:`whoami`:rwx app/cache app/logs
- Impostiamo il virtual host di apache:
- Disabilitiamo il virtual host di default:
sudo a2dissite 000-default
- Creiamo il file per il virtual host del progetto al percorso /etc/apache2/sites-available/mySymfony2Project con il seguente contenuto, sostituendo a <user> il proprio nome utente in Ubuntu:
<VirtualHost *:80> ServerName mysymfony2project.localhost DocumentRoot "/home/<user>/mySymfony2Project/web" DirectoryIndex app.php ErrorLog "/var/log/apache2/mysymfony2project.localhost-error.log" CustomLog "/var/log/apache2/mysymfony2project.localhost-access.log" common TransferLog "/var/log/apache2/mysymfony2project.localhost-transfer.log" <Directory "/home/<user>/mySymfony2Project/web"> AllowOverride All Allow from All </Directory> </VirtualHost>
- Attiviamo il virtual host:
sudo a2ensite mySymfony2Project
- Aggiungiamo l’host in locale:
sudo sh -c 'echo "127.0.0.1 mysymfony2project.localhost" >> /etc/hosts'
- Configuriamo il ServerName di apache:
sudo sh -c 'echo "ServerName localhost" >> /etc/apache2/conf.d/name'
- Riavviamo apache:
sudo service apache2 restart
- Disabilitiamo il virtual host di default:
E’ tutto! Ora possiamo andare all’indirizzo http://mysymfony2project.localhost/app_dev.php e controllare che il progetto si esegua correttamente. Buono sviluppo a tutt*!