我正在GAE上尝试PHP应用程序。您可以在 app.yaml 文件中定义云 SQL 连接的连接变量。但是,我还需要在本地开发环境中为 MySQL 服务器定义这些。
文档建议使用"导出"执行此操作,但我目前使用的是 Windows。PhpStorm 为我提供了在 GAE 运行配置中定义环境变量的选项,但这些变量似乎没有注册(至少我无法使用 getenv 访问它们)。
为 MySQL 指定局部连接变量的好方法是什么?最好是这样一种方式,即我在上传到 Google 时不需要进行更改,如果可能的话,不要将这些详细信息放在代码中。
我正在运行GAE SDK提供的PHP(实际上是从PhpStorm启动的)。
我放弃了在Windows/PhpStorm中设置环境变量。我现在在app.yaml中添加了两组变量,另外一组用于DEV:
env_variables:
MYSQL_DEV_DSN: 'mysql:host=127.0.0.1;port=3306;dbname=name_of_db'
MYSQL_DEV_USERNAME: 'db_username'
MYSQL_DEV_PASSWORD: 'db_password'
MYSQL_DSN: mysql:unix_socket=/cloudsql/INSTANCE_CONNECTION_NAME;dbname=DATABASE
MYSQL_USER: root
MYSQL_PASSWORD: 'root_pwd'
我用一个简单的行在两组之间切换,检查我们所处的环境:
if (strpos($_SERVER['SERVER_SOFTWARE'], 'Development', 0) === 0) {
// Development
} else {
// Google App Engine
}
没有我想要的那么整洁,但效果很好。