Почему is_executable и is_file не работают, а shell_exec работает?

Подскажите, почему, когда пишу такой код:
$res = is_executable("/usr/bin/convert");
var_dump($res);

результат - FALSE

Когда такой:
$res = is_executable("/var/www/html/1.sh");
var_dump($res);

результат - TRUE

Когда такой:
$res = shel_exec("/usr/bin/convert");
echo $res;

результат - "Version: ImageMagick 6.8.9-9 Q........" и так далее

То есть локально лежащий с сайтом файл - функция нормально определяет исполняемый он или нет. А если файл расположен где-то вне сайта то результат всегда false. Хотя если файл вызвать, то он исполнится и вернет результат.

По адресу /usr/bin/convert - расположена ссылка, а не исполняемый файл - пробовал указать полный адрес самого файла, пробовал функции is_file, is_link - всегда false

Проблема стала при установке mediawiki, которая не видит все shell-компоненты которые установлены. Они есть, вызываются, но она считает что их нет, так как is_executable возвращает false
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
@vivaldy Автор вопроса
Решил проблему - указал в настройках конфигов апач
php_admin_value open_basedir none
однако это не безопасно, думаю сделаю установку, после чего уберу.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Softer
@Softer
А если вот так?
$res = is_executable("/bin/bash /var/www/html/1.sh");

Шебанг прописан вообще?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы