Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: PHP и bash не работает wget  (Прочитано 2467 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bestov

  • Автор темы
  • Участник
  • *
  • Сообщений: 194
  • Я люблю тебя ЗЕМЛЯ
    • Просмотр профиля
PHP и bash не работает wget
« : 30 Октября 2011, 20:22:23 »
Проблема в том что запуская через терминал все работает на ура а пот когда это запускаю через php не запускается функция wget
test.sh
#!/bin/bash
wget http://img.yandex.net/i/www/logo.png

test.php
<?php
 $ping
=shell_exec('./test.sh');
echo 
"<pre>$ping</pre>";
?>

В чем же проблема?

Пользователь решил продолжить мысль 31 Октября 2011, 15:47:59:
Не кто не знает в чем может быть проблема?  :idiot2:
« Последнее редактирование: 31 Октября 2011, 15:47:59 от bestov »

Оффлайн xeon_greg

  • Активист
  • *
  • Сообщений: 981
    • Просмотр профиля
Re: PHP и bash не работает wget
« Ответ #1 : 31 Октября 2011, 16:02:53 »
флаг выполнения у скрипта стоит ? и что никаких ошибок? отображение ошибок в php  включено ?

Оффлайн unimix

  • Активист
  • *
  • Сообщений: 537
    • Просмотр профиля
Re: PHP и bash не работает wget
« Ответ #2 : 31 Октября 2011, 16:20:30 »
Попробуй:
$ping=shell_exec('/bin/bash ./test.sh');

Оффлайн bestov

  • Автор темы
  • Участник
  • *
  • Сообщений: 194
  • Я люблю тебя ЗЕМЛЯ
    • Просмотр профиля
Re: PHP и bash не работает wget
« Ответ #3 : 31 Октября 2011, 16:49:40 »
флаг выполнения у скрипта стоит ? и что никаких ошибок? отображение ошибок в php  включено ?
Включено и не чего вообще не выводить на экран :(

Попробуй:
$ping=shell_exec('/bin/bash ./test.sh');
и так запустил вот этот скрипт:
#!/bin/bash
cd /home/ovik/www/kino.ru/www

wget http://img.yandex.net/i/www/logo.png

нет не каких результатов, на экран не чего не вывел и не скачал :(

Оффлайн shumtest

  • Активист
  • *
  • Сообщений: 731
  • Это вам просто кажется...
    • Просмотр профиля
    • Блог Шумомера
Re: PHP и bash не работает wget
« Ответ #4 : 31 Октября 2011, 17:47:36 »
Вариантов 3

1) Не находит команду wget или ваш скрипт. Используйте полные пути:
#!/bin/bash
cd /home/ovik/www/kino.ru/www

/usr/bin/wget http://img.yandex.net/i/www/logo.png

<?php
$ping
=shell_exec('/home/ovik/www/kino.ru/www/test.sh');
echo 
"<pre>$ping</pre>";
?>


2) Апачу не хватает прав для доступа в папку /home/ovik/www/kino.ru/www и/или запуска скрипта. Проверьте
ls -l /home/ovik/www/kino.ru/www/
3) shell_exec просо запрещен

Не понятно почему не дает ни каких ошибок. Попробуйте в скрипт добавить вывод ошибок:
<?php
error_reporting
(E_ALL);
@
ini_set("display_errors","1");

$ping=shell_exec('./test.sh');
echo 
"<pre>$ping</pre>";
?>


Оффлайн bestov

  • Автор темы
  • Участник
  • *
  • Сообщений: 194
  • Я люблю тебя ЗЕМЛЯ
    • Просмотр профиля
Re: PHP и bash не работает wget
« Ответ #5 : 01 Ноября 2011, 01:04:33 »
shumtest спасибо большое получилось наконец таки завести скрипт :)
У меня еще один маленький вопросик есть, я вообще то программист на php и вот первый раз запускаю скрипты php и bash совместно.
Когда в test.sh прописываю
#!/bin/bash
df -h
по получаю обратно ответ в php и могу этот ответ вывести на экран.

но когда запускаю вот это вот:
#!/bin/bash
wget -P /home/ovik/ http://img.yandex.net/i/www/logo.png
Сценарий проигрывается и фаил качает но в ответ выдает только лишь пустоту, как в bash ему объяснить что бы тот ответ который я вижу при обработки в терминале отдавал мне в php?

И еще один вопросик, как можно передать какую нить переменную или массив в язык bash когда вот так вот запускаешь его в php, и как ее в bash получить? Так же как можно из bash отправить обратно что нить, какую нить переменную или массив?
$ping = shell_exec('bash/ls.sh');

 

Страница сгенерирована за 0.031 секунд. Запросов: 25.