在PHP中,有几种方法可以判断当前运行在Apache还是Nginx服务器环境下:
$_SERVER['SERVER_SOFTWARE']
变量if (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false) {
echo '运行在Apache服务器上';
} elseif (strpos($_SERVER['SERVER_SOFTWARE'], 'nginx') !== false) {
echo '运行在Nginx服务器上';
} else {
echo '运行在其他服务器上: ' . $_SERVER['SERVER_SOFTWARE'];
}
apache_get_version()
函数是否存在if (function_exists('apache_get_version')) {
echo '运行在Apache服务器上';
} else {
echo '可能运行在Nginx或其他服务器上';
}
if (isset($_SERVER['SERVER_SIGNATURE']) && strpos($_SERVER['SERVER_SIGNATURE'], 'Apache') !== false) {
echo 'Apache服务器';
} elseif (isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'nginx') !== false) {
echo 'Nginx服务器';
}
php_sapi_name()
函数$sapi = php_sapi_name();
if ($sapi == 'apache2handler') {
echo 'Apache服务器';
} elseif ($sapi == 'fpm-fcgi') {
// 可能是Nginx + PHP-FPM
if (isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'], 'nginx') !== false) {
echo 'Nginx服务器';
}
} else {
echo '其他服务器类型: ' . $sapi;
}
php_sapi_name()
会返回'fpm-fcgi',这时需要结合其他方法判断您可以根据实际需求选择最适合的方法来判断服务器类型。