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:homedatamysqlMYSQLCONNSTR_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');