Openshift MySQL环境变量无法在PHP

时间:2015-12-09 17:55:20

标签: php mysql openshift

我似乎无法让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定义:
  Host2 getenv:
  Host3 _env:
  Host4 _server:
  Openshift应用程序名称:web

我在Openshift应用程序名称Var中添加了一些Openshift Vars确实可以正常工作,但MySQL不是出于某种原因。

PHP Cartridge版本:5.4 MySQL版本:5.5

有关如何进一步调试的任何想法?我从一个干净的安装开始,所以这个 很奇怪。

注意:

在Openshift SSH控制台中运行echo $OPENSHIFT_MYSQL_DB_HOST DOES为我提供主机的IP地址。 我也试过从Openshift管理页面重启墨盒,没有运气。

非常乐意提供更多信息,我非常热衷于撰写明确的SO问题。

1 个答案:

答案 0 :(得分:1)

终于找到了!做一个git push来触发mysql vars工作。

在你的git目录中创建一个虚拟文件(下面的例子为linux),commit,然后按:

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数据库配置文件从静态值更改为$ _ENV值。所以我认为再做一次也无济于事。

然而,只要我创建了一个测试文件并推送到git,mysql变量就会起作用。