在Openshift中未定义PassEnv变量OPENSHIFT_POSTGRESQL_DB_HOST

时间:2016-01-15 21:37:23

标签: python postgresql openshift

对于Openshift上的Python 3.3盒和PostgreSQL 9.2。

当我进入Openshift应用程序时,我可以看到OPENSHIFT_POSTGRESQL_DB_HOST的内容:

echo $OPENSHIFT_POSTGRESQL_DB_PORT
5432

但是对于wsgi脚本,不会传递env变量 - 请参阅python.log中的部分:

[Fri Jan 15 16:27:33 2016] [notice] SIGHUP received.  Attempting to restart
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_CRON_DIR was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_DB_PASSWORD was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_DB_SOCKET was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_DB_HOST was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable PGUSER was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_IDENT was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable PGDATABASE was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_DB_PID was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_DB_USERNAME was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_DIR was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_LD_LIBRARY_PATH_ELEMENT was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_PATH_ELEMENT was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable PGHOST was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_DB_URL was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_CRON_IDENT was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_VERSION was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable PGDATA was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_DB_PORT was undefined
[Fri Jan 15 16:27:33 2016] [warn] PassEnv variable OPENSHIFT_POSTGRESQL_DB_LOG_DIR was undefined
[Fri Jan 15 16:27:33 2016] [notice] Digest: generating secret for digest authentication ...
[Fri Jan 15 16:27:33 2016] [notice] Digest: done
[Fri Jan 15 16:27:33 2016] [notice] Apache/2.2.15 (Unix) mod_wsgi/3.4 Python/3.3.2 configured -- resuming normal operations

在应用程序控制台中重新启动应用程序没有帮助。 都没有重启python盒。

请建议如何将env变量传播到wsgi脚本。

2 个答案:

答案 0 :(得分:3)

尝试停止&启动(不重启)你的python应用程序,特别是如果你在创建应用程序后添加了postgresql。由于它作为wsgi应用程序在apache中运行,因此可能需要停止/启动才能正确查看env变量。

答案 1 :(得分:0)

支持@developercorey

的答案
  

尝试停止&启动(不重启)你的python应用程序......

根据文档执行此操作的命令 from here是:

$ rhc app-stop {instance}

$ rhc app-force-stop {instance}

rhc app-start {instance}

注意: 将{instance}更改为您的Openshift应用程序名称。