php - Openshift MySQL 环境变量在 PHP 中不起作用

标签 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 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/

相关文章:

php - 添加到 Controller 的内容和添加到模型的内容

php - 如何判断一个字符串是否是有效的 JSON?

javascript - 检测我网站上的广告拦截然后显示横幅?

php - 如何使用分页在 jquery 数据表中选择多个复选框?

mysql - 用于检查网络的 Perl 脚本

node.js - 如何在 Openshift NodeJS 应用程序上提供静态资源

mysql - 设置Mysql日期格式

php - Mysql 选择多个查询

postgresql - OpenShift 上的 phpPgAdmin 无法从应用程序 URL 访问

ruby-on-rails - Ruby On Rails 应用程序和 Openshift 中的 Elasticsearch