php - 使用 Drush 时,命令行上的 Apache 服务器变量 ENV 不同

标签 php apache drupal ubuntu command-line-interface

Drupal 会出现这个问题,但可以归因于一般的 Apache - PHP 配置。在我的配置文件中,我正在确定服务器变量要使用哪个数据库。

if($_SERVER['ENV'] == 'development') {
//Use connection A
} else {
//Use connection B
}

在 apache 中,我像这样设置环境:
<VirtualHost *:80>
//Other normal Apache variables set
SetEnv ENV development
</VirtualHost>

在我的正常网站设置中,通过网络服务器访问 PHP,这可以很好地工作。但我正在尝试使用命令行上的 drush 运行命令,它总是连接到错误的数据库。问题真的是命令行 php 总是连接到连接 B,我认为它不一定是 drush。

如何将 ENV 设置为同时在 apache 和命令行上工作?操作系统是 ubuntu。

最佳答案

Drush 不使用 Apache 来运行命令,而是直接加载和运行 PHP 文件。要在服务器上全局设置变量,您可以编辑 /etc/environment并添加

ENV=development

您可以阅读有关在 Ubuntu 中设置环境变量的更多信息,请查看 this help article .

关于php - 使用 Drush 时,命令行上的 Apache 服务器变量 ENV 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15059381/

相关文章:

php - Drupal 是如何工作的?

php - Laravel 5.4 在数据透视表中插入时调用 null 上的成员函数 Attach()

PHP - 例如,当需要条件 html block 时如何避免 "echo"HTML

php - 源码编译php致命PDO异常;找不到驱动程序

php - Drupal View - 如何使用 "Rewrite the output of this field"删除字符串模式?

drupal - 什么时候不使用 Drupal 节点?

php - 在javascript函数中传递的两个php动态变量语法

PHP - 试图只在引号内获取文本

linux - 在 Linux 上创建 HTTP 站点

php - 如何将动态子域别名与 apache 服务器上的子文件夹匹配