Веб-страница Php не может найти файл bash

Я следовал руководству, написанному здесь Выполнить команду Bash из PHP

и у меня есть /var/www/test.php

<?php $old_path = getcwd();
chdir('/home/');
$output = shell_exec('./test.sh');
echo "<pre>$output</pre>";
chdir($old_path); ?>

и находится с помощью sudo nano /home/test.sh

#/bin/bash
mystring="Hello World"
echo "$mystring"

но работает локально http://localhost/test.php я получаю пустую страницу. Я могу запустить файл из терминала, и я могу успешно запустить shell_exec('ls') как php-скрипт, может ли кто-нибудь увидеть, что я делаю неправильно, пожалуйста?


person Fuzzybear    schedule 26.07.2013    source источник
comment
вы не повторяете свой $output echo $output;   -  person cmorrissey    schedule 26.07.2013
comment
правильно, вслед за @ChristopherMorrissey либо напрямую вызовите shell_exec, либо выведите $output   -  person ಠ_ಠ    schedule 26.07.2013
comment
хорошо, извините, это была опечатка ... обновил OP, и у меня все еще есть пустая страница :(   -  person Fuzzybear    schedule 26.07.2013
comment
А что произойдет, если вы просто попробуете команду shell_exec напрямую?   -  person ಠ_ಠ    schedule 26.07.2013
comment
ааа разрешение отклонено ... мне нужен chmod 700 ./test.sh я верю   -  person Fuzzybear    schedule 26.07.2013
comment
хм, запустил chmod +x /home/test.sh, и теперь в терминале появляется Hello World... но веб-страница по-прежнему пуста...   -  person Fuzzybear    schedule 26.07.2013
comment
echo shell_exec('pwd').... возможно проблема с расположением файла   -  person hendr1x    schedule 26.07.2013
comment
У меня есть идентичный код на моем сервере, и он распечатывает Hello, а не Hello World, так что я рассмотрю отдельную проблему, но странно, что моему локальному компьютеру это не нравится ... есть ли какой-то chmod, который я мог сделать на моем локальном ПК заставить его вести себя таким образом??   -  person Fuzzybear    schedule 26.07.2013
comment
ааа, да, это дало мне пробел после того, как я должен был перейти в /home, попробовал ./home, и это не работает ... это время команды set chmod -x /home?   -  person Fuzzybear    schedule 26.07.2013


Ответы (1)


Хорошо, проблема была решена после нескольких опечаток и неустановленных разрешений, но основная проблема, по-видимому, заключается в том, что getcwd() не запускается в моей ОС локально или на сервере... оба Ubuntu 12.04

Поэтому для тех, кто еще столкнулся с проблемами, обязательно:

  • Проверьте, что файл можно запустить через терминал, если не запустить chmod +x /file/location/test.sh
  • затем проверьте, в каком каталоге вы находитесь, и перейдите к нему с помощью echo shell_exec('pwd')
  • Если вы не перемещаете каталог, попробуйте заменить getcwd() на dirname(__FILE__);

Это решило проблемы для меня :) теперь, чтобы передать переменные в этот скрипт со страницы php !! Большое спасибо за вашу помощь всем.

`

person Fuzzybear    schedule 26.07.2013