【问题标题】:Openshift MySQL Environment vars not working in PHPOpenshift MySQL 环境变量在 PHP 中不起作用
【发布时间】:2015-12-09 17:55:19
【问题描述】:

我似乎无法让 Openshift 的 MySQL Vars 在我的 PHP 应用程序中工作。 我创建了一个 test.php 文件来尝试深入了解它。

test.php

<?php
define( "DB_SERVER", getenv('OPENSHIFT_MYSQL_DB_HOST'));
echo "Host1 define: ".DB_SERVER;
echo "<br>Host2 getenv: ". getenv('OPENSHIFT_MYSQL_DB_HOST');
echo "<br>Host3 _env: ". $_ENV['OPENSHIFT_MYSQL_DB_HOST'];
echo "<br>Host4 _server: ". $_SERVER['OPENSHIFT_MYSQL_DB_HOST'];
echo "<br>Openshift App Name: ". $_ENV['OPENSHIFT_APP_NAME'];
?>

在浏览器中输出:

Host1 定义:
主机 2 获取环境:
主机 3 _env:
主机 4 _server:
Openshift 应用名称:web

我在 Openshift App Name Var 中添加了一些 Openshift Vars 确实可以工作,但 MySQL 的那些因为某些原因不能工作。

PHP 墨盒版本:5.4 MySQL 版本:5.5

关于如何进一步调试的任何想法?我已经从全新安装开始,所以这个 很奇怪。

注意:

在 Openshift SSH 控制台中运行 echo $OPENSHIFT_MYSQL_DB_HOST 会为我提供主机的 IP 地址。 我还尝试从 Openshift 管理页面重新启动墨盒,但没有成功。

非常乐意提供更多信息,我非常热衷于编写清晰的 SO 问题。

【问题讨论】:

    标签: php mysql openshift


    【解决方案1】:

    终于找到了!执行 git push 以触发 mysql 变量工作。

    在你的 git 目录中创建一个虚拟文件(下面的 linux 示例),提交,然后推送:

    touch test
    git add test
    git commit -m "Test file for triggering git push deploy process"
    git push
    

    记得在下次提交时删除测试文件。

    即使我曾尝试从 Openshift Web 控制面板重新启动墨盒,但解决它的方法是将“某些东西”推送到 git,而该部署过程中的某些东西允许 mysql 工作的这些变量。

    我在这里找到了一个答案 (https://stackoverflow.com/a/26898911/339803),它建议至少推送到 git 一次,但我没有尝试这样做,因为我已经推送到 git 以将 PHP DB 配置文件从静态值更改为 $_ENV 值。所以我认为再做一次也无济于事。

    不过,一旦我创建了一个测试文件并将其推送到 git,mysql 变量就起作用了。

    【讨论】:

    • 更新:我意识到在将 MYSQL 变量更改为 ENV 后我从未执行过推送,因为我使用 SSH 将变量从静态更改为动态以访问 Openshift 数据目录。因此,“第二次”推动使一切正常,而实际上这是第一次推动。 (数据库设置在 CMS(concrete5)中,并且必须在 git 之外的持久目录中)因为具体 5 喜欢通过其 CMS 管理这些设置。我不能使用 CMS,因为 $_ENV 变量会用引号括起来。所以我不得不将配置留在持久目录中,并使用命令行进行编辑。
    • 这对我有用!即使我手动重新启动了我的设备,在我再次进行 Git 推送之前,PHP 也没有接收到这些变量。
    猜你喜欢
    • 2014-01-22
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 2022-11-23
    • 2019-03-10
    相关资源
    最近更新 更多