¿Hay una función o variable PHP que proporcione el nombre de host local?

StackOverflow https://stackoverflow.com/questions/211885

  •  03-07-2019
  •  | 
  •  

Pregunta

Cuando se ejecuta un script en Apache, inserto el valor $_SERVER['SERVER_NAME'] en un mensaje de correo electrónico de informe de error.

Sin embargo, si un script web bifurca un " trabajador " El trabajo con nohup php ..., hostname parece estar vacío allí. Por lo tanto, si se produce un error, se informa sin un nombre de host.

¿Puedo obtener de manera confiable el nombre de host mediante PHP, sin llamar al comando Unix <=>?

¿Fue útil?

Solución

php_uname (" n " )

  

(PHP 4 > = 4.0.2, PHP 5)
  php_uname & # 8212; Devuelve información sobre el   sistema operativo PHP se ejecuta en

     

php_uname () devuelve una descripción del sistema operativo PHP es   que se ejecuta en. Esta es la misma cadena que ves en la parte superior de la   Salida phpinfo (). Para el nombre solo del sistema operativo, considere   usando la constante PHP_OS, pero tenga en cuenta que esta constante contendrá   el sistema operativo PHP fue construido.

     

En algunas plataformas UNIX anteriores, es posible que no pueda determinar el   información actual del sistema operativo, en cuyo caso volverá a mostrar el   OS PHP fue construido sobre. Esto solo sucederá si su biblioteca uname ()   la llamada no existe o no funciona.

Otros consejos

Para PHP > = 5.3.0 use esto :

$hostname = gethostname();

Para PHP < 5.3.0 pero & Gt; = 4.2.0 use esto :

$hostname = php_uname('n');

Para PHP < 4.2.0 puede probar uno de estos:

$hostname = getenv('HOSTNAME'); 
$hostname = trim(`hostname`); 
$hostname = preg_replace('#^\w+\s+(\w+).*$#', '$1', exec('uname -a')); 

Puede usar _GLOBALS['MACHINENAME'] para obtener la información directamente de globals array.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top