php - 在 Azure 和 MySql-In App 下运行的 Joomla configuration.php 数据库设置
问题描述
我正在使用数据库的 MySQL In-App 选项在 Azure 下运行 Joomla。一切顺利,但我无法让 JConfig 中的数据库配置变量从 MYSQLCONNSTR_localdb 环境变量中动态提取。
我已经尝试过这里发布的 MS 建议的解决方案https://blogs.msdn.microsoft.com/azureossds/2016/12/09/mysql-in-app-configuration-for-php-content-management-systems/和尝试了各种从环境变量中提取信息并将变量设置为结果的方法,但均未成功。唯一似乎有效的是对主机地址进行硬编码,这是有问题的。
一个例子可能是这样的:
class JConfig {
...
$hostVar = getenv("MYSQLCONNSTR_localdb");
$hostArray = array();
foreach( explode( ';', $hostVar ) as $substr )
{
$asplode = explode('=', $substr);
$hostArray[ $asplode[0] ] = $asplode[1];
}
public $host = $hostArray['Data Source'];
...
到目前为止,硬编码地址的所有变体都是“错误”。在前端。
解决方案
我将分配移至 JConfig 类的构造函数。有了这个,我可以很好地 dockerize 它。
class JConfig {
public $smtpuser;
public $smtppass;
public $smtphost;
public $host;
public $user;
public $password;
public $db;
function __construct() {
$this->smtpuser = getenv('SMTP_USER');
$this->smtppass = getenv('SMTP_PASSWORD');
$this->smtphost = getenv('SMTP_HOST');
$this->host = getenv('JOOMLA_DB_HOST');
$this->user = getenv('JOOMLA_DB_USER');
$this->password = getenv('JOOMLA_DB_PASSWORD');
$this->db = getenv('JOOMLA_DB_NAME');
}
推荐阅读
- ruby-on-rails - Rails 6 has_many 建立关系问题
- sql - 获取从当前日期开始最近 12 个月的 SQL 中的结果集
- r - 为什么我的数据是用平线而不是常规折线图绘制的?R
- mongodb - 启动 mongodb 企业版 4.2 的问题
- discord - 有没有办法在不实际 ping 用户的情况下提及用户(蓝色突出显示)?
- vba - 访问未导出到 EXCEL 的 vba 代码“参数太少。应为 1。”
- svg - 如何知道这个 SVG 的半径?
- nginx - NGINX location {} 不同的根目录
- r - R,如何使用变量的内容作为列表字段的名称?
- python - 如何在没有括号的烧瓶中显示列表?(通过使用 jinja2 批处理)