Когда скрипт работает под Apache, я вставляю значение $_SERVER['SERVER_NAME']
в сообщение с сообщением об ошибке.
Тем не менее, если веб-скрипт создает рабочую работу с nohup php ...
, $_SERVER['SERVER_NAME']
оказывается там пустым. Таким образом, при возникновении ошибки сообщается без имени хоста.
Могу ли я надежно получить имя хоста с помощью PHP, не вызывая команду Unix hostname
?
php_uname ( "п")
(PHP 4> = 4.0.2, PHP 5)
php_uname – возвращает информацию об операционной системе, на которой работает PHPphp_uname () возвращает описание операционной системы, на которой работает PHP. Это та самая строка, которую вы видите на самой вершине вывода phpinfo (). Для названия только операционной системы, подумайте об использовании константы PHP_OS, но имейте в виду, что эта константа будет содержать операционную систему, на которой был встроен PHP.
На некоторых старых платформах UNIX он может оказаться не в состоянии определить текущую информацию о ОС, и в этом случае она вернется к отображению OS PHP. Это произойдет только в том случае, если вызов библиотеки uname () не существует или не работает.
Для PHP> = 5.3.0 используйте это :
$hostname = gethostname();
Для PHP <5.3.0, но> = 4.2.0 используйте это :
$hostname = php_uname('n');
Для PHP <4.2.0 вы можете попробовать один из них:
$hostname = getenv('HOSTNAME'); $hostname = trim(`hostname`); $hostname = preg_replace('#^\w+\s+(\w+).*$#', '$1', exec('uname -a'));
Вы можете использовать _GLOBALS['MACHINENAME']
чтобы получить информацию прямо из array
globals
.