sergo_stavropol
Guest
shell_exec (user apache)
Заметил одну странность и не пойму как понять в чем ее причина.
Ос - Linux, веб-сервер - apache
1. PHP && Shell_exec
Работает скрипт примерно след.содержания:
То есть выполняется перловый бинарник html2ps - конвертит html в postscript.
2. Shell
Даем пользователю apache доступ к /bin/bash и выполняем то же, но в командн.оболочке:
3. Результаты
--------------------------------------------------------
Получаются после выполнения одной и тойже команды pb1.ps и pb2.ps разного размера. Нашел чем они отличаются - несколькими строками, где есть инфа о шрифтах. Может быть когда команда выполняется "через апач", нет какой-либо информации о переменных окружения юзера?
-~{}~ 07.02.05 13:07:
Так и есть.
Переменные окружения.
Выполнил команду set в php-скрипте и в оболочке, получил разные результаты.
Но как определить какую установить чтобы все работало правильно?
-~{}~ 07.02.05 14:27:
хм..
а что, системную переменную окружения нельзя установить в php-скрипте?
-~{}~ 07.02.05 15:42:
никаких соображений не будет?
Заметил одну странность и не пойму как понять в чем ее причина.
Ос - Linux, веб-сервер - apache
1. PHP && Shell_exec
Работает скрипт примерно след.содержания:
PHP:
$ht_file = "/var/testwww/html/test/pdf/pb.html";
$ps_file = "/var/testwww/html/test/pdf/pb1.ps";
$cmd1 = "html2ps -e koi8-r ".$ht_file." > ".$ps_file;
var_dump(shell_exec($cmd1)); // string(0) ""
var_dump(shell_exec("whoami")); // string(7) "apache "
2. Shell
Даем пользователю apache доступ к /bin/bash и выполняем то же, но в командн.оболочке:
Код:
#su - apache
$html2ps -e koi8-r /var/testwww/html/test/pdf/pb.html > /var/testwww/html/test/pdf/pb2.ps
Код:
#ls -l
-rw-r--r-- 1 apache apache 53278 фев 7 12:32 pb1.ps
-rw-r--r-- 1 apache apache 51618 фев 7 12:32 pb2.ps
-rw-r--r-- 1 apache apache 3253 фев 7 12:32 pb.html
Получаются после выполнения одной и тойже команды pb1.ps и pb2.ps разного размера. Нашел чем они отличаются - несколькими строками, где есть инфа о шрифтах. Может быть когда команда выполняется "через апач", нет какой-либо информации о переменных окружения юзера?
-~{}~ 07.02.05 13:07:
Так и есть.
Переменные окружения.
Выполнил команду set в php-скрипте и в оболочке, получил разные результаты.
Но как определить какую установить чтобы все работало правильно?
-~{}~ 07.02.05 14:27:
хм..
а что, системную переменную окружения нельзя установить в php-скрипте?
PHP:
shell_exec("export aaa=bbb");
var_dump(shell_exec("set")); // переменной aaa нет
никаких соображений не будет?