Configure WordPress Database Connection on Azure App Services

1 minute read | By Yi Wang

Configure WordPress Database Connection on Azure App Services

For WordPress sites hosted on Azure App Services, there are two ways to configure database connection in wp-config.php. When you modify database connection for WordPress, verify the connection from wp-config.php.

  1. Current WordPress installed on Azure App Services pull database connection information from hosting environment- code in wp-config.php reads data from environment variable.

If using MySQL in-app, connection info is in “D:\home\data\mysql\MYSQLCONNSTR_localdb.txt” , no connection string needed in Application Settings.

If using Azure database for MySQL or other database services, define connection string in Application Settings, e.g.

Database=database-name;Data Source=database-host;User Id=database-username;Password=database-password

 

Code in wp-config.php :

$connectstr_dbhost = '';
$connectstr_dbname = '';
$connectstr_dbusername = '';
$connectstr_dbpassword = '';

foreach ($_SERVER as $key => $value) {
 if (strpos($key, "MYSQLCONNSTR_localdb") !== 0) {
 continue;
 }
 
 $connectstr_dbhost = preg_replace("/^.*Data Source=(.+?);.*$/", "\\1", $value);
 $connectstr_dbname = preg_replace("/^.*Database=(.+?);.*$/", "\\1", $value);
 $connectstr_dbusername = preg_replace("/^.*User Id=(.+?);.*$/", "\\1", $value);
 $connectstr_dbpassword = preg_replace("/^.*Password=(.+?)$/", "\\1", $value);
}

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', $connectstr_dbname);

/** MySQL database username */
define('DB_USER', $connectstr_dbusername);

/** MySQL database password */
define('DB_PASSWORD', $connectstr_dbpassword);

/** MySQL hostname : this contains the port number in this format host:port . Port is not 3306 when using this feature*/
define('DB_HOST', $connectstr_dbhost);

 

2. Some WordPress prefer to store the hard coded database information in wp-config.php - in this case, the connection is not impacted by connection string in Application Settings.

Code in wp-config.php:

/** MySQL database name */
define('DB_NAME', 'database-name');

/** MySQL database username */
define('DB_USER', 'database-username');

/** MySQL database password */
define('DB_PASSWORD', 'database-password');

/** MySQL hostname */
define('DB_HOST', 'database-host');