php - apache 环境变量中的配置变量

标签 php apache sysadmin

我在工作中运行了几个不同的 PHP 购物车,我们正试图在版本控制下获取各种配置文件。到目前为止,我们只是在 git 中忽略了它们,因为当然,我们不希望任何人都可以使用生产级别的密码。此外,我们大多数开发人员都使用独特的信息运行本地安装。

在与我们的系统管理员讨论这个问题时,我突然想起我们可以在 apache vhost block 中设置环境变量并从 PHP 访问它们,如下所示:

Apache :SetEnv db_user "username"

PHP: <?php $config['db']['user'] = $_ENV['db_user'];

它似乎可以毫无问题地工作,但我以前从未见过这样的操作。以这种方式处理身份验证信息是否有任何影响(技术、安全等)或限制?

最佳答案

这与 the PHP Security Guide: Databases and SQL 中提出的内容非常接近.

他们指出,一个潜在的问题是通过调用“类似于 phpinfo() 或 print_r($_SERVER)”的方式暴露变量的风险。所以问题是您是否可以控制该风险 - 以及您是否信任可以访问该虚拟主机的每个人(在您的上下文中,答案可能是"is")。

他们还建议通过将这些凭据放在一个只有 root 可读的文件中来添加额外的重定向级别——这在部署中似乎是合理的,如果在开发环境中有点偏执。

关于php - apache 环境变量中的配置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10988185/

相关文章:

php - 加入 ids 与总和

PHP 数组更新多个 Mysql 行

php - Doctrine 1.0.7 和 Doctrine 2.0 之间的区别?

database - 机器数据库的架构

php - Elasticsearch与其他类型的现有映射冲突

php - 使用 .htaccess 永久重定向到子文件夹

php - 为什么 Apache 不能在 XAMPP 安装中启动?

java - 使用 Apache Httpclient 时,有没有办法获取下载状态?

web-services - 如何在 Lighttpd 中设置无 cookie 域?

bash - 如何通过 SSH 自动向多台服务器并行运行命令?