Tôi đang cố chạy một tập lệnh Python từ PHP bằng lệnh sau:
exec('/usr/bin/python2.7 /srv/http/assets/py/switch.py arg1 arg2');
Tuy nhiên, PHP chỉ đơn giản là không tạo ra bất kỳ đầu ra nào. Báo cáo lỗi được đặt thành E_ALL và display_errors đang bật.
Đây là những gì tôi đã thử:
- Tôi đã sử dụng
python2
,/usr/bin/python2
vàpython2.7
thay vì/usr/bin/python2.7
- Tôi cũng sử dụng một đường dẫn tương đối thay vì một đường dẫn tuyệt đối mà cũng không thay đổi bất cứ điều gì.
- Tôi đã cố gắng sử dụng các lệnh
exec
,shell_exec
,system
.
Tuy nhiên, nếu tôi chạy
if (exec('echo TEST') == 'TEST')
{
echo 'exec works!';
}
nó hoạt động hoàn toàn tốt trong khi shutdown now
không làm gì cả.
PHP có quyền truy cập và thực thi tệp.
CHỈNH SỬA: Cảm ơn Alejandro, tôi đã có thể khắc phục sự cố. Nếu bạn gặp vấn đề tương tự, đừng quên rằng máy chủ web của bạn có thể / hy vọng không chạy dưới dạng root. Thử đăng nhập với tư cách người dùng máy chủ web của bạn hoặc người dùng có quyền tương tự và cố gắng tự chạy các lệnh.