我想基于每个虚拟主机自动更改我的数据库连接设置,这样我就不必编辑任何PHP代码,因为它从暂存转移到实时但访问不同的数据库.这是在一个专用服务器上.
所以我想知道,我可以在httpd.conf中设置一个PHP变量或常量作为vhost定义的一部分,然后该站点可以自动将其自身指向测试数据库吗?
$database = 'live'; if (some staging environment variable is true) { $database = 'testing'; // and not live }
如果这是不可能的,我想在这种情况下我可以安全地检查我正在运行的主机名,但我想要一些不那么脆弱的东西
希望这是有道理的
非常感谢
伊恩
是的......你可以这样做:
SetEnv DATABASE_NAME testing
然后在PHP中:
$database = $_SERVER["DATABASE_NAME"];
要么
$database = getenv("DATABASE_NAME");
您可以设置环境变量并使用PHP检索它.
在httpd.conf中:
SetEnv database testing
在你的PHP中:
if (getenv('database') == 'testing') {
要么
if ($_SERVER['database'] == 'testing') {
您是否尝试过使用.htaccess文件?您可以使用它覆盖php.ini值.
只需将.htaccess文件放入htdocs目录:
php_value name value
更多信息:
https://php.net/manual/en/configuration.changes.php
https://php.net/manual/en/ini.php