Ho un certo script PHP che chiama exec() per eseguire un comando per convertire un PDF in JPG. Questo comando funziona bene in bash.PHP exec() non eseguirà il comando shell quando viene eseguito tramite il browser
di prevenire le vostre ipotesi iniziali di risoluzione dei problemi, tenere presente quanto segue:
- safe_mode = Off
- autorizzazioni per la directory che contiene il file PDF e lo script è impostato su 777, e questo elenco è anche il luogo dove il JPG è stato scritto
- Il comando che sto passando a exec() punta esplicitamente al binario utilizzato (ad es./Usr/local/bin/convert).
- display_errors = On
- error_reporting = E_ALL
- disable_functions = [vuoto]
- sto riecheggiando exec() s 'uscita e restituisce nulla. Il comando eseguito per impostazione predefinita non restituisce nulla.
Quando chiamo questo script PHP dal browser (visitando http://www.example.com/script.php), exec() non esegue il suo argomento.
IMPORTANTE: So che ci sono problemi con il mio script o il modo in cui ho costruito il comando bash, perché da bash, posso eseguire lo script con 'php' e funziona (ad esempio, script php'. php 'converte il file)
Ho anche provato a spegnere exec() con system().
Infine, ho avuto questo problema una volta in passato, ma non ricordo come l'ho risolto.
So che c'è qualcosa che mi manca, quindi spero che qualcun altro abbia provato questo come ho e ricorda come sistemarlo!
Grazie in anticipo per qualsiasi tipo di assistenza è possibile fornire.
Alex
In PHP 5 assicurarsi di utilizzare E_ALL | E_STRICT per la segnalazione completa degli errori. – Ross
* AGGIORNAMENTO - IMPORTANTE *: ho scoperto che si trattava di un problema con ImageMagick e ho completato la conversione da PDF a JPEG con GhostScript (con un comando molto più lungo) invece di usare ImageMagick come un intermediario. Non ci sono stati problemi con PHP, le mie autorizzazioni o exec(). Grazie per tutto il vostro contributo! – Alex
Quali sono gli argomenti passati alla conversione? Includono il percorso completo del file? – Powerlord