2017-02-03 5 views
2

Когда я пытаюсь запустить apache_get_version() функции на моем сайте, я получаю сообщение об ошибке:Как получить версию Apache?

Fatal error: Uncaught Error: Call to undefined function apache_get_version() in /srv/www/mywebsite.com/index.php:44 Stack trace: #0 {main} thrown in /srv/www/mywebsite.com/index.php on line 44

Однако это работает в моем локальном хосте. Я попытался

function apache_version() 
{ 
    $ver = explode(" ",$_SERVER["SERVER_SOFTWARE"],3); 
    return ($ver[0] . " " . $ver[1]); 
} 
echo apache_version(); 

Это должно повторить версию сервера на Apache, хотя это не эхо версии

+1

Эта функция доступна только в том случае, если PHP скомпилирован и установлен как обычный модуль Apache. Если это не так, это произойдет. – Andrew

+0

Andrew Я читал это на веб-сайте, но как получить версию? –

+0

Вам придется скомпилировать его самостоятельно. См. [Здесь] (http://dcx.sap.com/1200/en/dbprogramming/pg-php-compiling-apache.html) – Andrew

ответ

0

Вы можете использовать $_SERVER['SERVER_SOFTWARE'] Чтобы получить веб-сервер, на котором вы работаете. Как сказал Эндрю, вы можете скомпилировать его самостоятельно с here. Нет никакого способа обойти это

+0

Это происходит из заголовков ответов. Если сервер не сообщает о своей версии, вы просто получите «Apache» или даже ничего. –

-2
echo apache_get_version(); 

Он будет печатать полную версию детализируют Апача.

0

Может быть, вы могли бы попробовать

<?php 
echo shell_exec('httpd -version'); 
+0

Нет, он вообще ничего не отгоняет –

+0

Какая ОС вы используете? – Michael

+0

Michael Я использую окна, но хост использует Linux, я считаю, –

1

От the introduction to Apache functions:

These functions are only available when running PHP as an Apache module.

Если вы запускаете PHP как CGI/FastCGI или любой другой SAPI, там просто нет надежного способа определения Apache версии, потому что взаимодействие PHP с Apache является минимальным. Если сервер не сообщает об этом (таким образом, вы можете прочитать его где-нибудь в $_SERVER), вам не повезло.

Вы также можете determine how PHP runs с phpinfo().

+0

Я вижу, что API-интерфейс сервера - это CGI/FastCGI. –

Смежные вопросы