apache — Как отличить серверы в скрипте PHP, выполняемом через оболочку?

У меня есть скрипт PHP, который выполняется с помощью shell_exec(), В сценарии мне нужно проверить, выполняется ли сценарий на моем компьютере разработчика (с использованием WampServer в Windows) или на моем производственном сервере (с использованием Linux), потому что учетные данные базы данных отличаются, и сценарий должен знать, какой набор учетных данных использовать.

Поскольку скрипт выполняется в оболочке, $_SERVER переменные не установлены, и я не могу определить, на какой машине работает скрипт с помощью этого метода (как я это делаю в других скриптах).

Как я могу определить, на каком сервере работает скрипт, когда он выполняется через оболочку?

0

Решение

Вы можете просто посмотреть на имя хоста сервера:

<?php

$hostname = php_uname('n');
1

Другие решения

Запуск PHP 5.3 на компьютере с Linux, $_SERVER определяется в CLI.

Попробуйте запустить:

php -r "print_r(\$_SERVER);"

Если это не определено в окне Windows, то это простой способ их дифференцировать.

1

Я сделал это несколькими способами, но предполагая, что у вас есть контроль над машиной разработки, вы можете проверить переменную среды, которая не существует на вашем LIVE-сервере, или создать ее. Например :-

Добавьте переменную окружения в окна с именем IAMDEV = 1, затем

<?php
if ( get_env('IAMDEV') === FALSE ) {
// we are LIVE
} else {
// we are DEV
}
?>
0
По вопросам рекламы [email protected]