在httpd.conf中设置PHP变量?
时间:2020-03-06 14:50:56 来源:igfitidea点击:
我想在每个虚拟主机的基础上自动更改数据库连接设置,这样一来,我就无需编辑任何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/zh/configuration.changes.php
- https://php.net/manual/zh/ini.php
我不会设置环境变量,因为在默认脚本输出(例如PhpInfo())中也可以看到此变量。
只需在htdocs文件夹上方的.htaccess中使用一个php_value,就可以完成并安全了:)