Komut satırından PHP Sunucu Adı

8 Cevap php

Komut satırından bir PHP komut dosyası çalıştıran sunucunun adını algılamak için bir yolu var mı?

HTTP üzerinden erişilen PHP için bunu yapmak için birçok yolu vardır. Ama CLI için bunu yapmak için bir yol olarak görünmüyor.

Örneğin:

$_SERVER['SERVER_NAME'] 

Komut satırından kullanılamaz.

8 Cevap

<?php
echo gethostname(); // may output e.g,: sandie

Bkz http://php.net/manual/en/function.gethostname.php

gethostname () php_uname ('n') olarak aynı işi yapar ve PHP 5.3 gibi ilave bir kolaylık işlevidir

Eğer çok aynı nedenle CLI'den PHP çalıştırdığınızda SERVER_NAME kullanılamaz.

Eğer CLI PHP çalıştırdığınızda, sunucu her türlü olmadan, kendisine iletilen her türlü kod çalışır kendi PHP intepreter başlar. Yani CLI, PHP, açıkça söylemiyorsun web sunucusu hakkında hiçbir şey bilmiyor.

Deneyin:

$servername = trim(`hostname`);

In order to get the hostname from the commandline you would need to also run using php -r. On linux I used:

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

Windows üzerinde kullandım:

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

Ayrıca, konsol PHP üzerinden erişildiğinde klasik $ _SERVER değerlerinin birçok sağlamak ama sunucu üzerinde sadece aşağıdaki tuşları vardır erişilen değildir:

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

Muhtemelen komut satırından bir komut dosyası çalıştırırsanız, hiçbir sunucu söz konusu olduğundan?

Bunlardan biri sunucu adı olabilir:

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

Bana sunucunun adını verir.

CLI Çağrı ve gethostname komutunu kullanın:

php -r "echo gethostname();"

Baskılar:

your_hostname