PHP не может выполнить любую внешнюю команду?
-
29-09-2019 - |
Вопрос
Мы переехали из Slackware To Centos здесь, он работал нормально, без предварительного уведомления, PHP перестал выполнять внешние вызовы, такие как вызовы на «WC» и «SPAMC». Все такие звонки появляются на error_log как:
SH: / USR / BIN / SPAMC: разрешение запрещено
Пути правильные. У нас есть разрешения, установленные правильно, и Apache должен иметь возможность выполнить файлы без проблем. Были НЕТ На Safe_mode и у нас нет набора base_dir. Это не Selinux, или хотя бы Sestatus говорит, что SELINUX отключен.
резюме:
- PHP не может выполнить что-нибудь через exec () или popen ()
- Пути к бинали верны.
- Мы не в безопасном режиме
- У нас нет набора base_dir
- Разрешения на двоичные файлы позволяют пользователю Apache выполнять их
- SELinux отключен
- disable_functions в php.ini пусто
- У нас нет подсказки, почему это не работает
PHP версия 5.3.3 и CentOS 5.5
У кого-нибудь есть подсказка того, что может происходить? заранее спасибо
Решение 2
Нашел ошибку.
Я пытался выполнить / usr / bin / tidy, например, папка USR имела разрешение на 644, которое похоже на Локосрафта ужаса в моей книге. Я мог бы работать, потому что я был root.
Я полагал его после смягчения сумасшедших и решил проверить разрешения на все компоненты пути команды из корневого / папки в аккуратный двоичный двоичный, я нашел все разрешения, установленные правильно, но в папке USR PROMS были полностью прикручены.
Это исправлено.
Другие советы
SELinux блокирует ваши попытки запустить их. Я рекомендую вам придумать правила, позволяющие запустить подмножество внешних команд, необходимых и загружаю это в качестве модуля.
PHP работает как Apache на сервере? Я думал, что это бегало, как никто ..
https://serverfault.com/questions/207989/php-cant-execute-any-external-command/208001#208001.
Как правило, PHP на Centos работает как никто, если вы не скомпилировали PHP как FastCGI, DSO и т. Д.