Netbeans, IDE per PHP
Posted by Davide | Filed under PHP
Si dice che l’IDE sia estensione stessa dello sviluppatore: se ne trova uno che abbia le funzionalità che ci servono e si impara ad usarlo in maniera veloce e produttiva.
Nella notte dei tempi usavo Homesite di Adobe, buono per creare pagine HTML tempestate di codice PHP (e viceversa) ma davvero poco per lo sviluppo serio (infatti l’hanno dismesso). Poi c’è stato Eclipse PDT, completo ma davvero troppo pesante e dal crash facile su Ubuntu. Mi sono quindi buttato su cose più leggere: Kate e GEdit (con le modifiche trendy & cool per farlo assomigliare a TextMate).
Infine, eccoci qua: Netbeans. Non l’avevo mai considerato perché non pensavo avesse un’estensione per PHP, e invece non solo ce l’ha ma, con sorpresa, gestisce tutto quello che mi può servire: debugging, unit testing (con PHPUnit), integrazione con Symfony. E quelle funzionalità base, come l’auto completamento del codice e la navigazione dei sorgenti, sviluppate in maniera intuitiva e che non richiedono troppi smanettamenti nella configurazione.
Installare un progetto Symfony su Aruba
Posted by Davide | Filed under Web Development
Ultimamente mi e’ capitato di sviluppare un paio di siti utilizzando Symfony come framework di sviluppo e Aruba come hosting provider.
Come risaputo, a fronte di un costo davvero concorrenziale, Aruba non è certo la soluzione ideale per chi sviluppa, con i suoi pochi margini di configurazione (devo dire comunque molto ampliati, rispetto a qualche anno fa).
Installare un progetto Symfony su Aruba non è semplice, ma comunque possibile. Ecco quindi come feci l’impresa. Molti spunti sono presi dalla guida per installare Symfony su OVH, un hosting provider francese.
Test della configurazione
Scaricate lo script per testare la configurazione del server, uploadatelo su Aruba e puntatelo con browser
Nel mio caso, ritorna
******************************** * * * symfony requirements check * * * ******************************** php.ini used by PHP: /etc/apache/phpini/php5/php.ini ** Mandatory requirements ** OK PHP version is at least 5.2.4 OK php.ini has zend.ze1_compatibility_mode set to off ** Optional checks ** OK PDO is installed OK PDO has some drivers installed: sqlite2, sqlite, mysql OK PHP-XML module is installed OK XSL module is installed OK The token_get_all() function is available OK The mb_strlen() function is available OK The iconv() function is available OK The utf8_decode() is available [[WARNING]] A PHP accelerator is installed: FAILED *** Install a PHP accelerator like APC (highly recommended) *** [[WARNING]] php.ini has short_open_tag set to off: FAILED *** Set it to off in php.ini *** [[WARNING]] php.ini has magic_quotes_gpc set to off: FAILED *** Set it to off in php.ini *** [[WARNING]] php.ini has register_globals set to off: FAILED *** Set it to off in php.ini *** OK php.ini has session.auto_start set to off
Tutto più o meno OK, ma dobbiamo gestire i magic_quotes e register_global (vanno settati ad off)
Potete entrare nel pannello di configurazione di Aruba e selezionare un php.ini adeguato, oppure più semplicemente aggiungere un file project/config/php.yml per fixare il problema, scrivendo
check: magic_quotes_gpc: on register_globals: on
Struttura delle directory
L’aspetto sicuramente più noioso è quello che la struttura delle directory di Symfony non è adatta a quella della document root di Aruba.
Se in Symfony abbiamo, ad esempio
mySite /project /web /css /index.php
su Aruba dobbiamo avere
www.mysite.it /project /css index.php
Quindi: spostiamo la directory project in web.
Modificate poi il file index.php in modo che punti correttamente a web/project/config
Modificate config/ProjectConfiguration, aggiungendo
$this->setWebDir($this->getRootDir().'/..');
Congeliamo il progetto
Adesso è necessario incorporare le librerie di Symfony all’interno del nostro progetto.
Rimuovere quindi la directory web/sf e lanciate
symfony freeze <data_dir>
(nel mio caso, <data_dir> è /usr/share/php/symfony, su Linux)
Lanciate
symfony cc
per eliminare la cache, e uploadate il progetto sul server.
Ultimi accorgimenti
Per ultimo, date i permessi 777 alle directory project/cache, project/log e upload su Aruba. E ricordate che ogni volta che copiate nuovi file sul server, bisogna cancellare il contenuto della directory project/cache.
In caso riceviate Internal Server Error 500, provate a rimuovere option follow symlink da .htaccess.
E attenzione ad utilizzare la protezione password da admin: cancella il file .htaccess.