Quantcast
Viewing all articles
Browse latest Browse all 10

Tutorial: bootstrap su Ubuntu 12.10 e gestione con Github di un progetto Symfony2

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
  • 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:

  1. 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.
  2. Chiameremo il progetto mySymfony2Project. Va da sé che questa scelta è totalmente arbitraria.
  3. 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.
    New github repository screenshot

    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

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*!


Viewing all articles
Browse latest Browse all 10

Trending Articles