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

запуск скриптов через веб интерфейс

Добавлено: 2010-06-12 18:08:20
gumeniuc
Добрый день

Есть машина с FreeBSD 8.0, накатил apache. Задача следующая:

Создаю скрипт, например, для проверки синтаксиса конфига pf. Хотелось бы , чтобы при входе на страничку результат проверки выводился на экран.

При срабатывании выдаётся пустая страница (якобы ничего проверка не вернула), но в файле 100% есть ошибка.
Были подозрения не отсутствие прав. Ставил suphp , та же самая кухня.

ПОдскажите, пожалуйста, куда копать.

Спасибо

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-12 20:11:49
Gendos
мало информации....

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-12 22:28:32
Burner
руками php скрипт запустите, проверьте

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-12 22:30:30
gumeniuc
Согласен , расскажу подробнее.

в дикертории /usr/local/www/apache22/data/run есть файл test (config pf)

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

web = "{80, 443}"

block all
pass     on le0 proto icmp from any to any
pass in  on le0 proto tcp  from any to self port ssh
pass in  on le0 from 10.3.1.111     to self
pass in  on le0 proto tcp  from !10.3.1.111 to self port $web keep state (max-sr
pass out on le0 from self to any
pass in  on le0 proto tcp from any to self port 23
block in on le0 proto tcp  from any to self port ssh
sdsd

Очевидно что при вводе pfctl -nf test выдаётся следующая ошибка test:11: syntax error

в этой же директории есть файл index.php

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

<?php

echo exec ('pfctl -nf /usr/local/www/apache22/data/run/test'); или просто echo exec ('pfctl -nf test');

?>
Поидее при открытии http://ip/run на экране должно появиться test:11: syntax error , а тут пустота.

также прикрутил suphp (была мысля что не хватает прав). В логах вижу

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

[Sat Jun 12 18:43:55 2010] [info] Executing "/usr/local/www/apache22/data/run/index.php" as UID 0, GID 0

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-12 22:31:42
gumeniuc
Burner писал(а):руками php скрипт запустите, проверьте
руками всё работает. я уже при открытии страницы запускал перловый скрипт. Тоже не получается. Если руками запускаю - всё работает отлично.

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-12 22:34:43
terminus
Webmin вам поможет.

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-12 22:36:59
gumeniuc
terminus писал(а):Webmin вам поможет.
ммм.. слышал о нём, но тут хотелось бы собрать своё :)

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-13 15:04:12
Pez!
а если в консоли файлик запустить, как ругаться будет ?

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

#/usr/local/bin/php index.php

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-13 15:56:43
manefesto
смотри логи.
У меня есть страничка, тоже кое что выводит http://manefesto.ru
данные дергаются через sysctl
при попытке дернуть данные через

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

smartctl -a /dev/ad0 | grep Tempe
в ответ получал тишину.
При запуске же на серваке

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

perl index.pl 
все нормально

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-13 16:28:21
gumeniuc
Pez! писал(а):а если в консоли файлик запустить, как ругаться будет ?

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

#/usr/local/bin/php index.php

/usr/local/bin/php index.php
/usr/local/www/apache22/data/run/test:11: syntax error

Всё отрабатывает

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-13 17:39:30
Pez!
а поправька свой скрипт вот так:

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

<?php
$out =array();
$result = exec('pfctl -nf /usr/local/www/apache22/data/run/test', $out);
echo '<pre>';
var_dump($out);
echo '</pre>';
?>

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-13 19:57:48
Burner
честно говоря, я думаю вы занимаетесь постройкой ненужных костылей

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-13 20:15:39
gumeniuc
Pez! писал(а):а поправька свой скрипт вот так:

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

<?php
$out =array();
$result = exec('pfctl -nf /usr/local/www/apache22/data/run/test', $out);
echo '<pre>';
var_dump($out);
echo '</pre>';
?>
Поправил. открыл браузер и увидел

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

#echo exec ('pfctl -nf /usr/local/www/apache22/data/run/test'); #echo 123; #?> 
array(0) {
}

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-13 20:17:20
gumeniuc
Burner писал(а):честно говоря, я думаю вы занимаетесь постройкой ненужных костылей
Дело в том, что задумка была немного другая, а это просто как тестирование , но грабли тут как тут. Мне бы понять что не так..

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-13 20:21:52
gumeniuc
manefesto писал(а):смотри логи.
У меня есть страничка, тоже кое что выводит http://manefesto.ru
данные дергаются через sysctl
при попытке дернуть данные через

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

smartctl -a /dev/ad0 | grep Tempe
в ответ получал тишину.
При запуске же на серваке

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

perl index.pl 
все нормально
хммм. открыл httpd-error.log , при обращении появляется лишь одна строка

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

[Sun Jun 13 20:11:03 2010] [error] [client 10.3.1.111] pfctl: not found
знать бы ещё кто именно её не находит...

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-13 21:44:49
Burner
укажите полный пусть к pfctl

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-14 20:54:36
gumeniuc
Burner писал(а):укажите полный пусть к pfctl
Дело в том, что такая ошибка проявляется лишь при использовании скрипта который посоветовал Pez!, а вот и моём варианте ошибок нет. якобы всё как и должно быть, а не тут то было..

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-15 7:08:07
BlackCat
gumeniuc, у вас, случаем, safemode не включен в php?

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-15 9:41:18
Pez!
gumeniuc, так и в моем ошибок нет, просто скрипт сообщает, что функция exec ничего не возвращает. PS: про полный путь очень дельный совет, так как в suphp path очень короткий устанавливается.

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-16 21:30:49
receptor
Ужас столько обсуждается, и всё чушь
pfctl не будет запускаться от пользователя www, тем более у которого nologin командный интерпретатор.

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-19 13:26:32
gumeniuc
BlackCat писал(а):gumeniuc, у вас, случаем, safemode не включен в php?
нет, выключён .
Pez! писал(а):gumeniuc, так и в моем ошибок нет, просто скрипт сообщает, что функция exec ничего не возвращает. PS: про полный путь очень дельный совет, так как в suphp path очень короткий устанавливается.
уставновил полный путь. в httpd-error.log наблюдаю

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

[Sat Jun 19 13:10:39 2010] [error] [client 10.3.1.111] /usr/local/www/apache22/data/run/test:11:
[Sat Jun 19 13:10:39 2010] [error] [client 10.3.1.111] syntax error
[Sat Jun 19 13:10:39 2010] [error] [client 10.3.1.111]
receptor писал(а):Ужас столько обсуждается, и всё чушь
pfctl не будет запускаться от пользователя www, тем более у которого nologin командный интерпретатор.
Я в апаче указал

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

user user 
group wheel

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-20 17:28:02
Alex Keda
Burner писал(а):укажите полный пусть к pfctl

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-20 17:30:13
gumeniuc
Alex Keda писал(а):
Burner писал(а):укажите полный пусть к pfctl
указывал /sbin/pfctl . Результат тот же

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-21 6:42:39
manefesto
да не даст он запустить pf
вот кусок моего лога
at /usr/local/www/site/index.pl line 28
pfctl: /dev/pf: Permission denied
pfctl: /dev/pf: Permission denied
pfctl: /dev/pf: Permission denied
pfctl: /dev/pf: Permission denied
нельзя дать юзеру www читать устройство pf
я бы так не сделал
по крону фигачить в файл, а вот уже в пыховском скрипте дергать из него

Re: запуск скриптов через веб интерфейс

Добавлено: 2010-06-21 10:21:26
AzureZ
а sudo не поможет?