sirve request_uri que php_self para http_host etiquetas ejecutar desde consola comandos _server php command-line command-line-interface

request_uri - ejecutar php desde consola linux



Nombre del servidor PHP desde la lĂ­nea de comandos (9)

¿Hay alguna forma de detectar el nombre del servidor que ejecuta un script PHP desde la línea de comando?

Existen numerosas formas de hacer esto para PHP al que se accede a través de HTTP. Pero no parece haber una manera de hacer esto para CLI.

Por ejemplo:

$_SERVER[''SERVER_NAME'']

no está disponible desde la línea de comando.


Puede agregar su script php a la línea de comando que establecerá $ _SERVER [''SERVER_NAME''] por usted. Así es como lo estoy usando:

C: / SDK / php-5.5.25-Win32-VC11-x86 / php.exe -S localhost: 8080 -t D: / Projects / Sites / mysite router.php

router.php

<?php $_SERVER[''SERVER_NAME''] = ''localhost:8080''; return false; // serve the requested resource as-is. ?>


Posiblemente porque si ejecuta un script desde la línea de comando, ¿no está involucrado ningún servidor?


SERVER_NAME no está disponible cuando ejecuta PHP desde la CLI por el mismo motivo.

Cuando ejecuta PHP desde la CLI, inicia su propio intérprete de PHP que ejecuta el código que le pasó, sin ningún tipo de servidor. Entonces, desde la CLI, PHP no sabe nada sobre su servidor web que usted no lo diga explícitamente.



Tratar:

$servername = trim(`hostname`);


Llame a la CLI y use el comando gethostname:

php -r "echo gethostname();"

Huellas dactilares:

your_hostname


Para obtener el nombre de host desde la línea de comandos, también necesitaría ejecutar usando php -r. En Linux utilicé:

~#php -r ''echo php_uname("n");'' hostname

En Windows usé:

D:/xampp/php>php -r "echo php_uname(''n'');" MB-PC

Además, cuando se accede a través de la consola, PHP no proporciona muchos de los valores $ _SERVER clásicos, pero en el servidor al que accedí solo tiene las siguientes claves:

root@hermes:~# php -r ''foreach($_SERVER as $key =>$value){echo $key.",";}'' TERM,SHELL,SSH_CLIENT,SSH_TTY,USER,LS_COLORS,MAIL,PATH,PWD,LANG,SHLVL,HOME,LOGNAME,SSH_CONNECTION,LESSOPEN,LESSCLOSE,_,PHP_SELF,SCRIPT_NAME,SCRIPT_FIL ENAME,PATH_TRANSLATED,DOCUMENT_ROOT,REQUEST_TIME,argv,argc


Uno de estos puede tener el nombre del servidor:

print_r($_SERVER) var_dump($_SERVER) echo $_SERVER[''HOSTNAME'']

Me da el nombre del servidor