Manual:$wgServer

Details
The base URL of the server, including protocol and without the trailing slash. (eg, " http://www.mediawiki.org ")

This is used when producing fully-qualified URLs pointing to the wiki, for instance:
 * HTTP redirects on edit and to canonical URL spellings
 * print footer
 * links to articles from RSS/Atom feeds
 * and more!

The default value is calculated automatically (though it can be over-ridden). See below for details.

Some web servers end up returning silly defaults or internal names which aren't what you want; for instance the ServerName directive in Apache's httpd.conf may not be set or detected properly by the system, leaving you with an unexpected 'localhost'. It's recommended to configure the web server properly, but you can also override the setting manually in LocalSettings.php.

An override can also be useful for certain shared hosting or proxying configurations.

Before 1.2.0
Caclulated by calling.

1.2.0
Switched to using PHP $_SERVER[] array instead of getenv. Automatically work out port number.

$wgServer          = "http://". $_SERVER["SERVER_NAME"]; if( $_SERVER["SERVER_PORT"] != 80 ) $wgServer .= ":". $_SERVER["SERVER_PORT"];

1.3.0
Added code to dynamically work out protocol. Used a sensible default when running from the command line. $wgProto = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http';
 * 1) check if server use https:

if ( @$wgCommandLineMode ) { $wgServer = $wgProto.'://localhost'; } else { $wgServer          = $wgProto.'://'. $_SERVER['SERVER_NAME']; if( $_SERVER['SERVER_PORT'] != 80 ) $wgServer .= ":". $_SERVER['SERVER_PORT']; } unset($wgProto);

1.3.8
Fills in more details from the $_SERVER[] array. if( isset( $_SERVER['SERVER_NAME'] ) ) { $wgServerName = $_SERVER['SERVER_NAME']; } elseif( isset( $_SERVER['HOSTNAME'] ) ) { $wgServerName = $_SERVER['HOSTNAME']; } else { # FIXME: Fall back on... something else? $wgServerName = 'localhost'; }

$wgProto = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http';
 * 1) check if server use https:

$wgServer = $wgProto.'://'. $wgServerName; if( isset( $_SERVER['SERVER_PORT'] ) && $_SERVER['SERVER_PORT'] != 80 ) { $wgServer .= ":". $_SERVER['SERVER_PORT']; } unset($wgProto);

1.5.0
Adds some extra alternatives for $wgServerName for if the earlier tests fail, and checks whether the HTTPS protocol is on the default port before modifying it. if( isset( $_SERVER['SERVER_NAME'] ) ) { $wgServerName = $_SERVER['SERVER_NAME']; } elseif( isset( $_SERVER['HOSTNAME'] ) ) { $wgServerName = $_SERVER['HOSTNAME']; } elseif( isset( $_SERVER['HTTP_HOST'] ) ) { $wgServerName = $_SERVER['HTTP_HOST']; } elseif( isset( $_SERVER['SERVER_ADDR'] ) ) { $wgServerName = $_SERVER['SERVER_ADDR']; } else { $wgServerName = 'localhost'; }

$wgProto = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http';
 * 1) check if server use https:

$wgServer = $wgProto.'://'. $wgServerName; if(   isset( $_SERVER['SERVER_PORT'] )    && (    ( $wgProto == 'http' && $_SERVER['SERVER_PORT'] != 80 ) || ( $wgProto == 'https' && $_SERVER['SERVER_PORT'] != 443 ) ) ) {
 * 1) If the port is a non-standard one, add it to the URL

$wgServer .= ":". $_SERVER['SERVER_PORT']; } unset($wgProto);