Поэтому я запускаю докувики под Apache на RHEL6 и работаю над плагином, который вызывает proc_open в php-скрипте. Моя проблема в том, что я пытаюсь вызвать приложение, которое было установлено локально для apache (в ~/.local/bin), но программа, которая вызывается из php, отличается. Это, вероятно, лучше понять следующим образом:

Когда я захожу как пользователь apache:

$ sudo su - user

И я проверяю версию своего приложения:

$ /var/www/.local/bin/rst2html.py --version

Я получил:

rst2html.py (Docutils 0.12 [release], Python 2.6.6, on linux2)

Однако, когда я делаю тот же вызов в моем приложении php (с proc_open), который работает под Apache, я получаю:

rst2html.py (Docutils 0.6 [release], Python 2.6.6, on linux2)

Какая версия установлена глобально, т. Е. Доступна всем пользователям.

Так в чем же причина этого несоответствия, есть ли что-то в среде, что мне нужно настроить?

Примечание: приложение python было установлено с использованием pip

1 ответ1

0

Судя по звукам, вы не запускаете его через Интернет, вы запускаете его из командной строки - в этом случае скрипт будет запускаться от имени пользователя, который его запускает (на самом деле, здесь даже не задействован apache) - таким образом, если вы являетесь пользователем root, вы запустите его как root.

Если вы хотите запустить скрипт как apache, попробуйте что-то вроде sudo -u apache "/path/to/script"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .