shell_exec требует полного пути в php скрипте на mac

1

(Выполнение этого на OSX, извиниться, если не по теме)

Когда я запускаю строку кода

shell_exec("/usr/local/bin/gnuplot gnuplot_script7"); 

в php-скрипте создается файл с именем gnuplot_output7.png, как и ожидалось. Но когда я запускаю аналогичную строку кода

shell_exec("gnuplot gnuplot_script7"); 

изображение не создается! Это несмотря на то, что если я напечатаю

gnuplot gnuplot_script7

в командной строке OSX изображение успешно сгенерировано.

Я набрал - echo $ PATH в командной строке и вернулся

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Library/PostgreSQL/8.4/bin/:/usr/local/git/bin:/usr/X11/bin

и когда я набрал

which gnuplot

в командной строке я вернулся

/usr/local/bin/gnuplot
Теги:
macos
terminal
shell-exec

1 ответ

1

Ваш пользователь $PATH не совпадает с запущенным пользователем php.


Решение

1- Запустите php под своим пользователем (возможно, небезопасно), и вы можете использовать:

shell_exec("gnuplot gnuplot_script7");

2 - Просто используйте full path:

 shell_exec("/usr/local/bin/gnuplot gnuplot_script7"); 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню