【问题标题】:Curl not working in Google App Engine Local on Windows, Works in ProductionCurl 在 Windows 上的 Google App Engine Local 中不工作,在生产中工作
【发布时间】:2015-07-22 05:50:52
【问题描述】:

我无法使用curl_lite,因为我需要证书。 Curl 在生产环境中运行良好,但不能通过 Google App Engine 开发服务器运行。

这是我的php.ini

extension = "curl.so"
google_app_engine.enable_functions = "phpversion, phpinfo, php_sapi_name, php_uname, getmypid"
google_app_engine.allow_include_gs_buckets = "df_sabre_queue"
allow_url_include = 1

抛出的错误信息是:

Fatal error: Call to undefined function App\SomeClass\curl_init() in C:\Users\Egroeg\Code\SampleApp\app\Sabre\Request.php on line 52

App.yaml 是:

application:    sample-app
version:        1
runtime:        php55
    api_version:    1

handlers:
    - url: /favicon\.ico
      static_files: public/favicon.ico
      upload: public/favicon\.ico

    - url: /.*
      script: public/index.php

skip_files:
    - ^(.*/)?#.*#$
    - ^(.*/)?.*~$
    - ^(.*/)?.*\.py[co]$
    - ^(.*/)?.*/RCS/.*$
    - ^(.*/)?\.(?!env).*$
    - ^(.*/)?node_modules.*$
    - ^(.*/)?_ide_helper\.php$
    - ^(.*/)?\.DS_Store$

extension_loaded('curl') 返回 false。

【问题讨论】:

  • 你的开发环境是windows吗?如果是这样,您将需要 php_curl.dll 而不是 curl.so。
  • 嗯,这是一个非常愚蠢的问题的简单解决方案。提交作为答案,我会接受。

标签: php google-app-engine curl


【解决方案1】:

如果您的开发环境是 Windows,则扩展名会略有不同(与您在 php.net 上找到的文档保持一致)

对于 windows,将 php.ini 文件更改为

extension = "php_curl.dll"

并不是说在生产中我们接受 either php_curl.dllcurl.so 来加载 curl 扩展,因此您无需在推送应用之前更改 php.ini 文件。

【讨论】:

  • 谢谢。我通常使用带有 Ubuntu 的 VM 作为我的开发盒,但启动器非常易于使用,我没有打扰。没想到!
  • 知道为什么在 GAE 文档中没有提到这一点吗?我认为应该在任何地方使用curl.so,以免破坏GAE 部署。
  • Windows 用户熟悉该格式,如果您阅读任何 SO 或其他帮助网站,他们会说使用“php_curl.dll”——我认为在 Windows 上使用不同的 GAE 会更令人困惑.
猜你喜欢
  • 2011-11-10
  • 2012-03-21
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-19
相关资源
最近更新 更多