2016-06-23 5 views
2

Я столкнулся с странной проблемой. У меня есть настройка кнопки, когда при нажатии на нее запускается сценарий оболочки, который я создал с помощью PHP. Сценарий оболочки - две команды curl.Запустить сценарий оболочки с использованием PHP

curl -H "Accept: application/xml" "http://blah/blah" > /tmp/listofchannels.xml 
curl -H "Accept: application/xml" "http://blah/blah" > /tmp/listofnodes.xml 
echo "Done!" 

Я использовал shell_exec(), exec() и system() запустить этот скрипт с PHP и работает успешно. НО он не перенаправляет вывод на файлы /tmp/listofchannels.xml и /tmp/listofnodes.xml.

Я использовал tail в журналах ошибок httpd, и он показывает, как закручиваются кудри. Я даже увижу, что Done! появляется на моей веб-странице при использовании system(), но он не будет создавать файлы.

Если я запускаю скрипт сам из командной строки, он работает полностью. Файлы создаются, но только если я запускаю скрипт из командной строки сам, а не используя код PHP.

Есть ли у кого-нибудь идеи, почему?

Я думал, что это была проблема с разрешениями, но я не вижу ошибки, заявляя, что у меня нет разрешения.

Любая помощь будет замечательной!


Update:

Я нашел и устранил эту проблему. Это был SElinux. Возможно, я должен был упомянуть, что делал это на CentOS7. То, что я сделал, это создать новую папку и сделать владельца apache, после чего разрешить apache писать.

chown apache:apache /folder 
sudo chcon -t httpd_sys_rw_content_t /folder 
+3

Почему бы не использовать php curl? –

+1

Я имею в виду, я думаю, мог. Мне просто интересно, почему это не работает ... Я имею в виду, что он запускает скрипт, так почему бы не создать два файла ... Я просто хочу понять, что происходит сейчас. – iamcyruss

+0

Я бы поставил на вопрос с разрешением –

ответ

2

Я нашел проблему и исправил ее. Это был SElinux. Возможно, я должен был упомянуть, что делал это на CentOS7. То, что я сделал, это создать новую папку и сделать apache владельца, а затем разрешить apache писать на нее.

chown apache:apache /folder 
sudo chcon -t httpd_sys_rw_content_t /folder 
Смежные вопросы