У меня есть скрипт PHP, который выполняется с помощью shell_exec()
, В сценарии мне нужно проверить, выполняется ли сценарий на моем компьютере разработчика (с использованием WampServer в Windows) или на моем производственном сервере (с использованием Linux), потому что учетные данные базы данных отличаются, и сценарий должен знать, какой набор учетных данных использовать.
Поскольку скрипт выполняется в оболочке, $_SERVER
переменные не установлены, и я не могу определить, на какой машине работает скрипт с помощью этого метода (как я это делаю в других скриптах).
Как я могу определить, на каком сервере работает скрипт, когда он выполняется через оболочку?
Вы можете просто посмотреть на имя хоста сервера:
<?php
$hostname = php_uname('n');
Запуск PHP 5.3 на компьютере с Linux, $_SERVER
определяется в CLI.
Попробуйте запустить:
php -r "print_r(\$_SERVER);"
Если это не определено в окне Windows, то это простой способ их дифференцировать.
Я сделал это несколькими способами, но предполагая, что у вас есть контроль над машиной разработки, вы можете проверить переменную среды, которая не существует на вашем LIVE-сервере, или создать ее. Например :-
Добавьте переменную окружения в окна с именем IAMDEV = 1, затем
<?php
if ( get_env('IAMDEV') === FALSE ) {
// we are LIVE
} else {
// we are DEV
}
?>