Silex, phar e mongodb su DreamHost

Qualche giorno fa ho voluto sperimentare una microapplicazione Silex sul mio account DreamHost ed ho notato, con un po’ di disappunto, che nè il modulo PHAR nè quello Mongo erano attivi sul server.

Fortunatamente DreamHost permette di personalizzare la versione del PHP.ini che gira sul proprio account abilitando (o compilando) i moduli mancanti.

Ecco come ho fatto a risolvere i vari problemi che mi affliggevano.

PHAR

PHAR è già incluso nell’installazione CGI di PHP 5.3.x di DreamHost quindi tutto quello che c’è da fare è abilitarlo. Anzi… quasi tutto. Infatti, il modulo è in blacklist di Suhosin e pertanto bisognerà configurarne la whitelist per permetterne l’uso esplicito.

Nello specifico per abilitare il modulo, e configurare Suhosin, bisogna aprire il file (creandolo se non presente) /home/PROPRIO_USER/.php/5.3/phprc ed aggiungere le seguenti linee di codice.

extension=phar.so 
detect_unicode = Off
phar.readonly = Off
phar.require_hash = Off
suhosin.executor.include.whitelist = phar 

riavviando PHP (o aspettando qualche minuto) avremo PHAR (e quindi Silex) perfettamente funzionanti.

Per riavviare PHP bisognerà eseguire killall php53.cgi

Mongo

L’installazione del driver mongodb risulta invece un pochino più complessa.

Ricordatevi che DreamHost permette di installare il driver Mongo ma non di far girare un’istanza del server sul vostro account pertanto dovrete crearvi un account su un servizio come MongoLab o MongoHQ.

Per installare il driver Mongo di PHP bisogna scaricarlo dal repository ufficiale su GitHub e successivamente compilarne i sorgenti e copiare il modulo preparato per il nostro ambiente in una directory da noi selezionata.

unzip mongodb-mongo-php-driver-archive.zip
cd mongodb-mongo-php-driver
phpize-5.3
./configure --with-php-config=/usr/local/php53/bin/php-config
make
cp modules/mongo.so /home/PROPRIO_USER/.php/5.3/

A questo punto per abilitare il driver bisognerà, come in precedenza, modificare il file /home/PROPRIO_USER/.php/5.3/phprc indicando, in questo caso, il path completo dell’estensione compilata.

extension=/home/PROPRIO_USER/.php/5.3/mongo.so 

Attendete che l’interprete PHP faccia re-spawn e giocate con la vostra nuova applicazione :)

  • giansimon

    Ciao,
    grazie per la dritta! Una nota:

    “Nello specifico per abilitare il modulo, e configurare Suhosin, bisogna aprire il file (creandolo se non presente) /home/PROPRIO_USER/.php/5.3/phprc”

    le cartelle .php/5.3 non esistono, quindi vanno create prima del file phprc.

    Giansimon

%d bloggers like this: