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

PHP CLI path, exec, safe_mode is off

Добавлено: 26 май 2014, 11:24
CheF85
Установил Joomla с расширением hwdMediaShare на Open Server v5.0.0 Windows 7 x64 в конфигурации:
Apache 2.2.27
PHP 5.4.26

Для полной работоспособности компонента необходимо указать путь к PHP CLI, разрешить exec и отключить safe_mode. Подскажите пожалуйста как это сделать?

Добавлено: 26 май 2014, 14:16
Redee
e:\OpenServer\modules\php\PHP-5.4.22\

e:\OpenServer\userdata\config\PHP-5.4.22_php.ini >>>>
; --------------------------------------------
; Установка защиты от внешнего доступа
; См. Руководство Пользователя: Защита сервера
; --------------------------------------------
%disallow%open_basedir =

http://www.php.net/manual/ru/features.safe-mode.php
http://www.php.net/manual/ru/ini.sect.s ... .safe-mode

з.ы. Использование ф-ии exec() НЕ безопасно, собственно это и пишут на сайте пхп.

Добавлено: 26 май 2014, 16:30
CheF85
Ок, я открыл свой PHP-5.4.26_php.ini и увидел там следующее
%disallow%open_basedir = "%sitedir%;
%progdir%\userdata\temp;
%progdir%\modules\system\html\openserver;
%progdir%\modules\php\%phpdriver%\pear"

%disallow%disable_functions = exec
,system,shell_exec,proc_terminate,proc_open,proc_nice,proc_close,
passthru,escapeshellcmd,escapeshellarg,popen,pclose,dl,
max_execution_time,ini_restore,apache_note,apache_setenv,
debugger_off,debugger_on,define_syslog_variables,pcntl_exec,
proc_get_status,syslog,php_uname,posix_kill,posix_mkfifo,
posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_uname,
leak,apache_child_terminate,symlink,posix_getpwuid

Я так понимаю что если exec в списке %disallow%disable_functions, то он должен быть отключен, но тогда почему выполняется следующее условие?

if(function_exists('exec')) echo "exec is enabled";

Не понимаю при чём здесь %disallow%open_basedir = и что мне указывать в качестве пути?
На линуксе чтобы понять путь к бинарному файлу php cli достаточно выполнить команду "which php", а как тут быть я не знаю :(

P.S. Обращение к верстальщикам сайта, слова написанные в одну строчку без пробелов - ломают вёрстку.

Добавлено: 26 май 2014, 16:50
Максим
Путь к PHP CLI изначально формируется в окружении. Разрешать exec не нужно если вы не включали защиту от внешнего доступа в настройках Open Server exec и так разрешен, если включали, то просто удалите фукнцию из списка disable_functions. Safe_mode вообще никак не используется, его не нужно отключать.

Так что в итоге не понятно что и зачем вы хотите сделать, всё и так изначально сделано как вам нужно.

Добавлено: 26 май 2014, 17:55
CheF85
Путь к PHP CLI изначально формируется в окружении
Мне нужно знать путь Путь к PHP CLI, "/usr/bin/php" или "/usr/local/bin/php". Я не знаю способов для его получения на windows.

Добавлено: 26 май 2014, 18:09
Максим
Пустой путь! Если надо указывать его в скрипте, оставляйте строку пустой.

Добавлено: 26 май 2014, 18:12
Dragon_Knight
function_exists - проверяет наличие функции а не её состояние. Это между прочем в доках даже выделено в рамочку.
Мне нужно знать путь Путь к PHP CLI, "/usr/bin/php" или "/usr/local/bin/php".
Причём тут линуксовые пути вообще? у Вас Windows, вот и указывайте пути виндовые.

Добавлено: 26 май 2014, 18:21
CheF85
у Вас Windows, вот и указывайте пути виндовые
С удовольствием укажу какие угодно. Я спрашиваю что указывать или как узнать что указывать.
Если интересно, то описание по настройке модуля вот тут:
http://hwdmediashare.co.uk/blog/231-php ... conversion, но там все команды выполняют из консоли (на линуксе), поэтому и встал вопрос как сделать тоже самое используя windows.

Добавлено: 26 май 2014, 18:23
Dragon_Knight
А посмотреть по папкам религия не позволяет что ли?
Например: "C:\\OpenServer\\modules\\php\\PHP-5.4.16\\"

Добавлено: 26 май 2014, 18:28
Максим
Dragon_Knight писал(а):А посмотреть по папкам религия не позволяет что ли?
Например: "C:\\OpenServer\\modules\\php\\PHP-5.4.16\\"
Зачем же вы такие дурные советы даёте, при таком раскладе никакой портативности нет. Стоит переместить опенсервер в другую папку и всё, тютю. Я уже ему ответил, что путь нужно оставлять пустым. "Путь" находится в окружении и движок сам подхватит PHP при попытке доступа через функцию EXEC. Ну если он не читает мои ответы, то пусть указывает там что хочет, его дело :mrgreen: