Aşağıdaki komutu kullanarak PHP'den bir Python betiği çalıştırmaya çalışıyorum:
exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2');
Ancak, PHP herhangi bir çıktı üretmez. Hata raporlama E_ALL olarak ayarlandı ve display_errors açık.
İşte denediğim şey:
- Ben kullanılan
python2
,/usr/bin/python2
vepython2.7
yerine/usr/bin/python2.7
- Ayrıca hiçbir şeyi değiştirmeyen mutlak bir yol yerine göreli bir yol kullandım.
- Ben komutları kullanarak denedi
exec
,shell_exec
,system
.
Ancak, koşarsam
if (exec('echo TEST') == 'TEST')
{
echo 'exec works!';
}
shutdown now
hiçbir şey yapmazken mükemmel çalışıyor .
PHP, dosyaya erişim ve yürütme izinlerine sahiptir.
DÜZENLEME: Alejandro sayesinde sorunu çözebildim. Aynı problemi yaşıyorsanız, web sunucunuzun muhtemelen / umarız root olarak çalışmadığını unutmayın. Web sunucunuzun kullanıcısı veya benzer izinlere sahip bir kullanıcı olarak oturum açmayı deneyin ve komutları kendiniz çalıştırmayı deneyin.