Страница 1 из 1

(perl) выполнение system() из браузера

Добавлено: 2008-09-09 13:50:01
HRonik
Добрый день.
cgi скрипт на perl из командной строки выполняется на ура...
Да и из браузера работает почти все, только упорно отказывается выполнять sh команду, и с помощью system() и с помощью кавычек ``.
В чем могут быть грабли?
Подскажите пожалуйста...
ЗЫ права на скрипты 777.

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-09 13:59:38
zg
пути

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-09 14:10:59
HRonik
zg писал(а):пути
system('/var/www/stat/usertraf.sh $user');
полные...
из командной строки работает.

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-09 14:20:29
zg
пути в /var/www/stat/usertraf.sh ;-)

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-09 14:38:28
HRonik
zg писал(а):пути в /var/www/stat/usertraf.sh ;-)
я об этом тоже сразу же подумал :)
перенес скрипт в папку /data с правами 777 , ноль эмоций =\

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-09 14:45:40
HRonik
Причем system() возвращает код 0, что означает успешное выполнение команды, однако команда то не выполнилась %)

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-09 16:33:31
ProFTP
покажи тч оты выполняешь...!!

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-09 16:58:54
zg
HRonik писал(а):Причем system() возвращает код 0, что означает успешное выполнение команды, однако команда то не выполнилась %)
значит выполнилась :cf:
HRonik писал(а):перенес скрипт в папку /data с правами 777 , ноль эмоций =\
))) ну дак пути никто ж не менял :roll: чего ты от него хочешь

давай, выкладывай свой секретный usertraf.sh, никто его ломать не будет :smile:

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-09 17:10:47
ProFTP
во-первых по-моиму надо так

Код: Выделить всё

system("/var/www/stat/usertraf.sh $user");

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-09 19:51:52
zingel
да и 755 а не 777

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 6:23:32
HRonik
Всем спасибо за ответы, сейчас попробую разобрать их.
zg писал(а):
HRonik писал(а):Причем system() возвращает код 0, что означает успешное выполнение команды, однако команда то не выполнилась %)
значит выполнилась :cf:
HRonik писал(а):перенес скрипт в папку /data с правами 777 , ноль эмоций =\
))) ну дак пути никто ж не менял :roll: чего ты от него хочешь
давай, выкладывай свой секретный usertraf.sh, никто его ломать не будет :smile:
Пути я естественно поменял :)

Код: Выделить всё

system("/data/usertraf.sh", $user);
Скрипт usertraf.sh объяснять долго, хотя он и не большой, но он возвращает число (трафик за день) в файл с именем /tmp/stat/$user.tmp.
Потом этот файл открывается и считывается... такое извращение пришлось делать, потому что при выводе числа в STDOUT команда

Код: Выделить всё

$var=`/var/www/stat/usertraf $user`;
опять же из консоли работала правильно , а из браузера отказывалась выполняться.
Дак вот, файл /tmp/stat/$user.tmp просто не создается , хотя system() возвращает 0....
Если нужен полный код usaertraf.sh (строчек 7) могу привести.
ProFTP писал(а):во-первых по-моиму надо так

Код: Выделить всё

system("/var/www/stat/usertraf.sh $user");
Без разницы ему, из консоли выполняет , и так , и сяк...
zingel писал(а):да и 755 а не 777

поэтому может не пускать ? О_о
ну вам виднее сейчас попробую....

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 6:28:49
zingel
так уж повелось, что если не 755, то premature end of sript headers

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 6:32:20
zg
HRonik писал(а):Скрипт usertraf.sh объяснять долго, хотя он и не большой
чего его объяснять, просто выложи и всё
HRonik писал(а):Если нужен полный код usaertraf.sh (строчек 7) могу привести.
давно пора :smile:

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 6:44:48
HRonik
Вот я лох та:)
zg писал(а): HRonik писал(а):Скрипт usertraf.sh объяснять долго, хотя он и не большой
ты был невероятно прав))
дело оказалось пустяком, просто я вчера видимо до конца отупел, а с утра на свежий ум все решилось :)
Скрипт вызывал скрипт, который обращался к маленькому файлу, который (собака) лежал в недоступной директории.
Всем спасибо.

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 8:04:40
Alex Keda
вот за это - перл в топку.
неумение внятно ругаться на ошибки - это дебилизм...

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 8:12:51
zg
всё он умеет, просто его неправильно используют.

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 8:14:39
Alex Keda
ну так покажи чтобы ругался так же внятно как php

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 8:18:17
zg

Код: Выделить всё

zg# cat 1.sh
#!/usr/bin/perl -w

system('asdasda');
system('echo hello');

zg# ./1.sh
Can't exec "asdasda": No such file or directory at ./1.sh line 3.
hello

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 8:19:51
Alex Keda
ага.
а теперь чёнить посложней на пару килобайт?
Желательно с ошибками типа забытая скобка, точка с запятой и прочие часто распространённые.

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 8:24:47
zg

Код: Выделить всё

zg# cat 1.sh
#!/usr/bin/perl -w
asdasdasd
asdasdasd
asdasd
system('asdasda');
system('echo hello');

zg# ./1.sh
Unquoted string "asdasd" may clash with future reserved word at ./1.sh line 5.
syntax error at ./1.sh line 5, near "asdasd
system"
Execution of ./1.sh aborted due to compilation errors.
zg#

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 8:56:26
Alex Keda
хм... перл чтоли стал умнее....
а аналог var_dump() там появился? чтоб массив могло красиво показать?

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 9:28:45
zg

Код: Выделить всё

zg# cat 1.sh 
#!/usr/bin/perl -w
use Data::Dumper;
my @array = ({gander => 'goose', fox => 'vixen'}, 48,
[ 39, 'steps', 'movie' ]);
print Dumper(\@array);

zg# ./1.sh 
$VAR1 = [
          {
            'fox' => 'vixen',
            'gander' => 'goose'
          },
          48,
          [
            39,
            'steps',
            'movie'
          ]
        ];
zg# 

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 9:36:55
HRonik
А если perl скрипт из браузера запускать, как сделать чтоб он ошибки на странице показывал?

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 9:46:18
Alex Keda
мда.
походу я действительно его готовить не умею =)

Re: (perl) выполнение system() из браузера

Добавлено: 2008-09-10 11:20:51
zg
HRonik писал(а):А если perl скрипт из браузера запускать, как сделать чтоб он ошибки на странице показывал?
http://forum.lissyara.su/viewtopic.php?p=94740#p94740
lissyara писал(а):мда.
походу я действительно его готовить не умею =)
:smile: