PHP shell_exec () Benim belirli bir komutu çalıştırmak değil

0 Cevap php

Şu anda WKHTMLTOPDF komut satırı uygulamasını kullanarak PDF belgeleri oluşturur PHP bir sınıf inşa ediyorum.

Bunu yapmak için, ben wkhtmltopdf yürütülebilir aramak için shell_exec çağrısı kullanıyorum. Ancak, bu çağrı yürütülecek görünmüyor; neredeyse anında NULL döndürür.

Ben yaptım küçük bir test bana şu sonuçları verdi:

var_dump(shell_exec('ping nu.nl'));
// This prints a string, containting the expected output of the ping command
var_dump(shell_exec('"c:/wkhtmltopdf/wkhtmltopdf.exe" --orientation "Landscape" --page-size "A2" --margin-top "25mm" --margin-left "20mm" --margin-bottom "20mm" --margin-right "20mm" "http://www.nu.nl/" "C:/Temp/1280310218.pdf"'));
// This prints NULL

Yani, shell_exec() de safe_mode kapalı, çalışıyor gibi görünüyor, ve does düzgün komutunu çalıştırın cmd.exe içine tam komutunu yapıştırarak.

Sorun yukarıdaki (güvenli mod, hatalı bir komut veya shell_exec() kendisi) ya değilse başka ne olabilir? Ben düşünmek tüm kullanıcı hakları sorunu olduğunu, ama öyle yürütülebilir ve dizin hem benim sistemde her kullanıcı grubu için tam erişim ayarları vardır.

(Not: Ben bir Windows makine üzerinde geliştiriyorum rağmen, bu kod üretimde bir Linux sunucu üzerinde çalışacak tabii bu sorunu kendisi ile ilgili olarak ortaya çıkıyor sürece Dolayısıyla, windows-tek çözüm, ben arıyorum ne değildir. pencere)

0 Cevap