2012-07-03 28 views
6

Ho bisogno di fare alcune azioni sulle immagini jpeg: il PHP GD di Heroku non lo consente. Ho letto che è possibile con Imagick, così ho riscritto il codice, spinto a Heroku e ...Imagick on heroku - è possibile?

PHP Fatal error: Class 'Imagick' not found in [...]

Così sto facendo qualcosa di sbagliato (codice funziona a livello locale)?

$tlo = new Imagick(); 
$tlo->newImage(640, 480, new ImagickPixel('white')); 
$tlo->setImageFormat('jpg'); 

C'è un modo di lavorare con jpg su heroku?

+1

Quanto a fare il male - sì, stai cercando di eseguire il codice su un ambiente diverso, senza rendertene pienamente conto. 'Imagick' rispetto a' GD' non fa parte di php, richiede una libreria esterna (ImageMagick) e deve essere installato in aggiunta. –

+0

Ecco il mio 'imagick.so' compilato su [github] (https://github.com/alkhoo/heroku-cedar-php-extension) con le istruzioni. Prende 5 minuti per configurarlo –

risposta

2

ImageMagick, un'utilità della riga di comando e una libreria di programmazione, deve essere installata sul sistema affinché Imagick funzioni.

Se non funziona per voi, presumibilmente i web dynos PHP di Heroku non sono installati per impostazione predefinita. Hai due opzioni: puoi trovare un modo complesso per pacchettizzare ImageMagick con la tua applicazione stessa, ad esempio aggiungendo i binari compilati al tuo albero git source. Oppure, è possibile modificare lo Heroku PHP buildpack, che è l'insieme di regole che configura il dyno Web prima della distribuzione dell'applicazione, per installare ImageMagick insieme ad Apache e PHP stesso. Quest'ultimo approccio è più probabile che funzioni.

Dopo aver modificato il buildpack, modificare l'applicazione in modo che punti al fork di buildpack con gli strumenti Heroku della riga di comando (l'opzione --buildpack) e ridistribuire.

+0

Grazie @Andrew Gorcester, puoi dirmi come aggiungere imagick a un buildpack personalizzato? Grazie –

+0

Scusa @OscarFanelli, non ho usato questa funzione in tre anni quindi non ricordo o ho informazioni aggiornate. In bocca al lupo! –

Problemi correlati