2012-01-14 4 views
0

Я знаю, что это простой вопрос, но я не могу за свою жизнь заставить его работать. Если я войду на свой сервер через SSH (linux) и напечатаю: /home/username/public_html/x/foo.cgi f=subscribe l=list [email protected] сценарий работает отлично. Однако, если я пытаюсь запустить скрипт через PHP, например: shell_exec("/home/username/public_html/x/foo.cgi f=subscribe l=list [email protected]");, ничего не происходит.Запуск команды linux из скрипта PHP?

Может ли кто-нибудь указать мне в правильном направлении?

Спасибо заранее!

Tre

+0

является 'foo.cgi' скриптом php? или просто исполняемый двоичный файл? –

+0

Веб-сервер вряд ли получит права доступа к вашему домашнему каталогу - помните, что он работает под совершенно другим идентификатором пользователя, кроме вашей собственной учетной записи. –

+0

Это сценарий CGI. Дада, если быть точным. Я новичок во всем этом, поэтому не знаю, что мне нужно сделать – tr3online

ответ

1

"Ничего не происходит" не является сообщение очень описательной ошибки. Тем не менее, на ум приходят три возможности:

  1. Различия между серверной средой и оболочкой.
  2. Возможно, на вашем сервере или на хостинговом сайте отключен shell_exec или другие функции.
  3. Возможно, вам нужно будет работать с PHP как с тем же пользователем, с которым вы SSH'd (или иным образом получаете правильные разрешения).
  4. Некоторые другие части стека находятся в беспорядке из-за неправильной конфигурации или неправильного использования.

Сделайте свой выбор. Проверьте свои журналы. Убедитесь, что вы не оставили никаких отверстий для злоумышленников, чтобы войти.

0

Если вы управляете сервером, скорее всего, это проблема с разрешениями. Ваш веб-сервер работает как www-data или аналогичный пользователь. Для его выполнения требуются разрешения на выполнение для файла сценария. Попробуйте изменить владельца скрипта с помощью команды chmod или предоставить файл, который вы пытаетесь выполнить более либеральные разрешения доступа с помощью команды chown.

Еще одна вещь, которую следует учитывать, заключается в том, что shell_exec может быть отключен, если PHP is running in safe mode.