当前位置:  开发笔记 > 编程语言 > 正文

在httpd.conf中设置PHP变量?

如何解决《在httpd.conf中设置PHP变量?》经验,为你挑选了3个好方法。

我想基于每个虚拟主机自动更改我的数据库连接设置,这样我就不必编辑任何PHP代码,因为它从暂存转移到实时但访问不同的数据库.这是在一个专用服务器上.

所以我想知道,我可以在httpd.conf中设置一个PHP变量或常量作为vhost定义的一部分,然后该站点可以自动将其自身指向测试数据库吗?

$database = 'live';
if (some staging environment variable is true) {
    $database = 'testing'; // and not live
}

如果这是不可能的,我想在这种情况下我可以安全地检查我正在运行的主机名,但我想要一些不那么脆弱的东西

希望这是有道理的

非常感谢

伊恩



1> JW...:

是的......你可以这样做:

SetEnv DATABASE_NAME testing

然后在PHP中:

$database = $_SERVER["DATABASE_NAME"];

要么

$database = getenv("DATABASE_NAME");


这听起来更像OP要求的答案.已接受的答案适用于覆盖设置.

2> Christian Le..:

您可以设置环境变量并使用PHP检索它.

在httpd.conf中:

SetEnv database testing

在你的PHP中:

if (getenv('database') == 'testing') {

要么

if ($_SERVER['database'] == 'testing') {



3> 小智..:

您是否尝试过使用.htaccess文件?您可以使用它覆盖php.ini值.

只需将.htaccess文件放入htdocs目录:

php_value name value

更多信息:

https://php.net/manual/en/configuration.changes.php

https://php.net/manual/en/ini.php


不同意; 在vhost配置部分中执行此操作更好,因为这意味着您可以完全禁用.htaccess,这是apache的性能提升,因为它不必检查每个请求的.htaccess文件.
推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有