2016-03-22 36 views
0

/home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1 konsolunda ne zaman çalışırım?Konsol ve exec() 'da aynı komutu yaparken farklı sonuç alın()

sh:: 1: djpeg: bulunamadı

HATA pnm.c L328: beklenmedik EOF

ben php komut dosyasında ne zaman

Ama

exec("/home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1", $out); 

I hatalarından olsun Bu şekilde hangi fark var?

cevap

1

PHP kodunuz sözdizimsel olarak geçersiz. Komutta kullanılan tek tırnaklardan kaçmanız gerekiyor.

Düzenleme: Sözdizimi düzeltmelerinden sonra, PHP için yolunuzdan djpeg'in eksik olduğunu, ancak kabuğunuzdaki yolda olduğunu tahmin ediyorum. Kabuğunuzdan which djpeg'u çalıştırdığınızda ne elde edersiniz?

Düzenleme: Aşağıdaki tartışmaya göre, durum böyle görünüyor. Bunu çözmek için bu PHP kodu deneyin:

exec("export PATH=\$PATH:/home/..myserver_path../.local/bin/; /home/..myserver_path../.local/bin/gocr -i '/home/..myserver_path../runtime//tmp/135_45_ca4b78115a191517c9e356d34deb000c.jpg' 2>&1", $out); 
+0

sayesinde bunu daha anlaşılır hale getirmek için düzenlenmiş, aslen öyle: exec ('/ home/.. myserver_path ../ yerel/bin/GoCRM -i' escapeshellarg (Yii :: getAlias ​​('@ runtime // tmp /'.$ pieceFilename))' 2> & 1 ', $ out); –

+0

'Hangi djpeg' koşarken hiçbir şeyim yok. Bunu php yoluma nasıl ekleyebilirim? Onunla paylaşılacak olan –

+0

Sadece açık olmak gerekirse, PHP'yi çalıştıran sunucuda komutu çalıştırıyorsunuz değil mi? Ve konsolda çalışır, ancak bir PHP betiğinde değil? – Chris