Сценарий Python запускается командой shell_exec
, но не выводит.
Под выводом я не имею в виду никаких ошибок, и при направлении на вывод в файл файл создается, но остается пустым.
Что работает:
- Запуск этого скрипта от имени любого другого пользователя
- Запуск этого скрипта как Apache с использованием
sudo -u apache ...
- Другие
shell_exec
команды запускаются как Apache - Другой Pythonскрипты запускаются как apache в том же исходном каталоге
- Другие скрипты Python запускаются с использованием
shell_exec
в том же PHP-скрипте, которые выводятся в ту же папку
Единственное отличие между скриптами, которыеработать, а то, что нет, это использовать import
для загрузки модулей.
ОБНОВЛЕНИЕ: похоже, это проблема с разрешениями, но я не могу понять, почему
/usr/local/bin/python2.7: can't open file '/var/www/scripts/script.py': [Errno 13] Permission denied
Расположение скрипта: /var/www/scripts
/var
drwxrwxr-x. 20 root apache 4096 Oct 26 00:04 var
/var/www
drwxrwxr-x. 8 root apache 4096 Oct 13 13:55 www
/var/www/scripts
drwxrwxrwx. 2 apache apache 4096 Oct 27 01:26 scripts
/var/www/scripts/script.py
-rwxrwxrwx. 1 apache apache 1315 Oct 27 09:25 script.py
ОБНОВЛЕНИЕ: F ***** g SELinux.
Временное отключение SELinux с помощью setenforce Permissive
решает проблему.Как лучше всего сделать так, чтобы SELinux позволил Apache постоянно запускать этот скрипт из этого каталога?