Путь до исполняемого файла PHP

akxxiv

Новичок
Доброе время суток.

Есть ли возможность узнать путь до исполняемого файла PHP, из скрипта, который обрабатывается этим файлом? Поясню. У меня есть скрипт (site.php), который работает на PHP 5.6. Эта версия работает через CGI ибо нативный РНР на сервере 7.0. И есть скрипт (script.php) который должен быть запущен из site.php через exec() но если я запущу его так
PHP:
exec('php script.php'); // его будет отрабатывать PHP 7.0
Поэтому надо указать исполняемый файл 5-й версии, например что-то типа /opt/php56/bin/php
PHP:
exec('/opt/php56/bin/php script.php');
Вот только можно ли его как-то узнать не спрашивая у хостера?

PHP:
$path_to_php=system("which php");
Не катит, ибо выдает путь до нативного /usr/bin/php (а на винде вообще ни чего не дает)
 

fixxxer

К.О.
Партнер клуба
Нет, в общем случае нельзя.
Сделай что-то вроде define('PHP_56_BIN', '/opt/php56/bin/php') и не морочь голову.

Но вообще сама необходимость из веб-скрипта делать exec php - это признак того, что ты что-то делаешь не так.
 

WMix

герр M:)ller
Партнер клуба
Код:
$ php -r 'echo  `whereis php`;'
php: /usr/bin/php /usr/bin/php7.0 /usr/bin/php7.2 /usr/bin/php5.6 ...
 

akxxiv

Новичок
Нет, в общем случае нельзя.
Сделай что-то вроде define('PHP_56_BIN', '/opt/php56/bin/php') и не морочь голову.

Но вообще сама необходимость из веб-скрипта делать exec php - это признак того, что ты что-то делаешь не так.
Ну так и сделал. Просто думал, что это как-то автоматизировать можно.
 

akxxiv

Новичок
Код:
$ php -r 'echo  `whereis php`;'
php: /usr/bin/php /usr/bin/php7.0 /usr/bin/php7.2 /usr/bin/php5.6 ...
Осталось только из списка выбрать нужный файл. Учитывая что от сервера к серверу формат путей может отличаться. Разумней все же константу определить ))
 

fixxxer

К.О.
Партнер клуба
Если это коробочный продукт для установки на произвольный хостинг, то в первую очередь стоит задуматься о том, что exec() на половине хостингов отключен.
Если нет, то не вижу никаких проблем с определением константы 1 раз в три года.
 
Сверху