LINUX.ORG.RU

[php]Вызов внешней программы

 


0

0

Пишу:
echo exec('ls');
а оно мне:
sh: /usr/bin/ls: No such file or directory

пишу:
echo `ls`
а оно:
Warning: shell_exec(): Cannot execute using backquotes in Safe Mode

Несмотря на то что:
$ which ls
/bin/ls
и в php.ini
safe_mode = Off

Пробовал даже echo exec('/ls'); - реакция что и в первом случае.

ЗЫЖ Пишу консольный скрипт.



Последнее исправление: muu (всего исправлений: 1)

мм?

echo exec('/bin/ls');

bk_ ★★
()

> in Safe Mode
А что, если выключить его или отказаться от подобных идей? Может быть, попробовать system() с указанием полного пути?

AITap ★★★★★
()
Ответ на: комментарий от AITap

Безопасный режим отключен.
system() с указанием полного пути - так же не работает
Да, кстати я пишу консольную утилиту... Вообще выглядит подозрительно, что safe_mode = Off
а он все равно на Safe Mode ругается. Хотя я и пути в safe_mode_exec_dir прописал на всякий случай. Как будто и не тот конфиг настраиваю, хотя
$ file /usr/bin/php
/usr/bin/php: symbolic link to `/etc/alternatives/links/|usr|bin|php'
$ file /etc/alternatives/links/\|usr\|bin\|php
/etc/alternatives/links/|usr|bin|php: symbolic link to `/usr/bin/php-5.2.5'
и
$ find . -name php.ini
./5.2.5/apache2-mod_php/php.ini
./5.2.5/cli/php.ini
и
$ grep safe_mode cli/php.ini | grep -v «^;»
safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir = "./:/usr/lib/php/:/usr/lib/php/5.2.5/:/usr/share/php/pear/:/usr/share/php/modules/:/usr/share/php/5.2.5/modules/"
safe_mode_exec_dir = «/bin/:/usr/bin/:/usr/local/bin/:/sbin/»
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = «LD_LIBRARY_PATH,LD_PRELOAD,PATH,TMPDIR»
sql.safe_mode = Off

Куда еще копнуть?

muu
() автор топика

>и в php.ini

safe_mode = Off


в каком из двух?

nu11 ★★★★★
()
Ответ на: комментарий от Liosha_Syrnikov

За strace спасибо :)
Вот что я заметил в выхлопе strace

access(«/usr/bin/php-5.2.5», X_OK) = 0
open(«/usr/bin/php-cli.ini», O_RDONLY) = -1 ENOENT (No such file or directory)
open(«/etc/php-cli.ini», O_RDONLY) = -1 ENOENT (No such file or directory)
open(«/usr/bin/php.ini», O_RDONLY) = -1 ENOENT (No such file or directory)
open(«/etc/php.ini», O_RDONLY) = -1 ENOENT (No such file or directory)

muu
() автор топика
Ответ на: комментарий от muu

$ grep -n -r /etc/php.ini /etc/php/* $

И хде это править? В бинаре чтоль? Выходит, это криво пых собран? Похоже мне придется оставить свою затею ):

muu
() автор топика
Ответ на: комментарий от anonymous

Не, не похоже, да и по идее такие вещи кладут в /var/lib/<...>

//подумываю уже забить на эту идею и сделать на баше, пусть не так красиво, но...

muu
() автор топика

php -i |grep safe_mode
php -i |grep php.ini

cobold ★★★★★
()
Ответ на: комментарий от muu

ln -s /etc/php/5.2.5/cli/php.ini /etc/php-cli.ini

Кинул симлинк и все заработало.
//Спасибо всем.

muu
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.