我正在尝试在谷歌应用引擎上设置我的脚本,我有mysqli支持php的问题。当我运行它时,我收到消息
致命错误:
中找不到“mysqli”类
我试过phpinfo()
,但那里没有mysqli扩展
然后我尝试像这里https://cloud.google.com/appengine/docs/php/config/php_ini
一样配置php.ini我加了
extension=php_mysqli.dll
extension=mysqli.so
extension=mysql.so
并将其上传到基本目录中,但是仍然没有成功,我该如何修复它。我可以看到PDO,但我需要更改脚本中的所有内容,这需要花费太多时间。
app.yaml列在下面
runtime: php55
api_version: 1
env_variables:
# Replace project, instance, database, user and password with the values obtained
# when configuring your Cloud SQL instance.
MYSQL_DSN: mysql:unix_socket=/cloudsql/datahouse;dbname=db
MYSQL_USER: root
MYSQL_PASSWORD: 'pass'
handlers:
- url: /.*
script: test.php
我正在使用此
运行应用程序dev_appserver.py --php_executable_path=/usr/bin/php-cgi $PWD
答案 0 :(得分:0)
将php.ini
添加到项目根目录(与app.yaml
相同的级别):
extension = "mysqli.so"
答案 1 :(得分:0)
默认情况下,谷歌应用引擎似乎支持mysqli。问题是,在使用常规主机时,需要以不同的方式配置与数据库的连接。它需要通过套接字
我在app.yaml文件中使用此设置作为env变量
env_variables:
MYSQL_DSN: mysql:unix_socket=/cloudsql/datahouse;dbname=mydatabase
MYSQL_USER: root
MYSQL_PASSWORD: 'mypassword'
我在我的数据库中找到了这个在云端SQL上的值。这解决了我的问题
答案 2 :(得分:0)
我通过以下方法使其起作用:
$ instance_name =“ / cloudsql / YOUR_PROJECT_ID_WITHOUT_DB_NAME”;
$ mysqli = mysqli_connect(null,YOUR_DB_USER,YOUR_DB_PASS,'DB_NAME',null,$ instance_name);
在上面的示例中:
MYSQL_DSN:mysql:unix_socket = / cloudsql / datahouse; dbname = mydatabase
MYSQL_USER:根
MYSQL_PASSWORD:“ mypassword”
仅用于:
$ instance_name =“ / cloudsql / datahouse”;
$ mysqli = mysqli_connect(null,'root','mypassword','DB_NAME',null,$ instance_name);
希望有帮助