我似乎无法让 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 define:
Host2 getenv:
Host3 _env:
Host4 _server:
Openshift App Name: web
我在 Openshift 应用程序名称变量中添加了一些 Openshift 变量,以表明某些 Openshift 变量确实可以正常工作,但 MySQL 变量由于某种原因无法正常工作。
PHP 墨盒版本:5.4 MySQL版本:5.5
关于如何进一步调试有什么想法吗?我是从全新安装开始的,所以这 很奇怪。
注意:
在 Openshift SSH 控制台中运行 echo $OPENSHIFT_MYSQL_DB_HOST
确实会为我提供主机的 IP 地址。
我还尝试从 Openshift 管理页面重新启动卡带,但没有成功。
我非常乐意提供更多信息,我非常热衷于写出清晰的问题。
最佳答案
终于找到了!执行 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 变量就起作用了。
关于php - Openshift MySQL 环境变量在 PHP 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34185718/