Разное содержимое переменной System PATH для PHP-CLI и PHP через Apache Webserver? Как исправить? - PullRequest
0 голосов
/ 13 февраля 2011

Я немного запутался в переменной Windows System% PATH%. Когда я запустил следующий скрипт с обоими, php-cli и как веб-страница, предоставляемая apache, я получил другой вывод для переменной пути.

// different output for php-cli and php executed by apache webserver
<?php
system('echo %PATH%');
?>

Где я могу изменить переменную PATH, которая используется веб-сервером apache?

Моя система:

  • Win7 64bit
  • Zend Server Community Edition 5.0.4 (с Apache, а не IIS)

Edit: Извините, мне пришлось дать вам пример, чтобы понять проблему:

Я хотел выполнить команду system('mysqldump .....') или что-то в этом роде. Дело в том, что запуск сценария из командной строки работает, потому что путь бина MySQL находится в системном пути, но запуск сценария через веб-браузер не включает путь бина MySQL в системный путь.

Путь веб-системы:

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Programme\Sysinternals;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Zend\ZendServer\bin 

Бит исходного пути системы намного длиннее. Теперь у меня вопрос: где ограничен путь к системе или где я могу найти настройки пути к файлу для PHP-скрипта, выполняемого в Интернете?

Ответы [ 3 ]

1 голос
/ 15 февраля 2011

См. На C:\Path\To\Zend\ZendServer\ZendEnablerConf.xml.

Определена переменная пути.

1 голос
/ 13 февраля 2011

Попробуйте использовать следующее вместо

echo getenv('PATH')
0 голосов
/ 13 февраля 2011

Переменные среды для каждого процесса в Windows;они (как правило) наследуются от родительского процесса, причем для верхнего процесса PATH указывается общесистемный путь плюс путь для каждого пользователя.Поэтому, если вы используете CLI-версию PHP под своей учетной записью, путь будет содержать ваш определенный пользователем путь, а процесс Apache, запущенный под учетной записью службы, получит только системный путь.можно установить общесистемный путь в Свойствах системы (Панель управления \ Система и ее обслуживание \ Система), Дополнительно, Переменные среды.Или, я полагаю, вы можете установить переменную окружения в Apache, например, используя mod_env и директиву SetEnv.

...