我正在尝试将 Wordpress 托管到 Azure lunix 应用服务。
我为 MySQL 创建了一个 Azure 数据库,然后从连接字符串屏幕中获取了 Web 应用程序连接字符串。
连接字符串格式为
Database={your_database}; Data Source={data_source}; User Id= {user_id}; Password={your_password}
然后我创建了一个基于 Linux 的应用服务并将 MySQL 连接字符串添加到其配置中。
然后我使用此代码wp-config.php从 PHP 环境变量中获取数据库连接字符串MYSQLCONNSTR_bridgesConnection
<?php
$connectstr_dbhost = '';
$connectstr_dbname = '';
$connectstr_dbusername = '';
$connectstr_dbpassword = '';
foreach ($_SERVER as $key => $value) {
echo $key ;
if (strpos($key, "MYSQLCONNSTR_bridgesConnection") !== 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);
}
如果您使用的是 Windows 应用程序服务,则该代码有效。但是如果您使用的是 Linux App 服务,您将收到此警告并且 wordpress 将无法工作
警告:mysqli_real_connect():(HY000/2002):第 1452 行的 /wordpress/wp-includes/wp-db.php 中没有这样的文件或目录
我使用此代码创建了一个 php 信息页面
<?php
phpinfo();
?>
我确定 PHP 环境变量已加载,但我需要一种方法来访问它。
如何在 PHP 代码中访问该连接字符串?