【问题标题】:Deploying Symfony Hello World on App Engine在 App Engine 上部署 Symfony Hello World
【发布时间】:2015-11-27 22:29:37
【问题描述】:

我正在关注谷歌官方教程“How to Run Symfony Hello World on App Engine”,了解如何部署https://github.com/GoogleCloudPlatform/symfony-standard.git

我已经设置了默认的云存储桶,但我还没有设置 SQL 数据库,因为我现在没有使用学说。

使用 GoogleAppEngineLauncher 在本地运行应用时,会显示以下错误:

Fatal error: Uncaught exception 'InvalidArgumentException' with message '[WARNING 1549] failed to load external entity "file:////Users/gl/Repos/symfony-standard/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd" (in n/a - line 0, column 0) [WARNING 3084] Element '{http://www.w3.org/2001/XMLSchema}import': Failed to locate a schema at location 'file:////Users/gl/Repos/symfony-standard/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/schema/dic/services/services-1.0.xsd'. Skipping the import. (in in_memory_buffer - line 8, column 0) [ERROR 1845] Element '{http://symfony.com/schema/dic/services}container': No matching global declaration available for the validation root. (in /Users/gl/Repos/symfony-standard/web/ - line 5, column 0)' in /Users/gl/Repos/symfony-standard/vendor/symfony/symfony/src/Symfony/Component/Config/Util/XmlUtils.php:96 Stack trace: #0 /Users/gl/Repos/symfony-standard/vendor/symfony/symfony/src/Symfony/Compone in /Users/gl/Repos/symfony-standard/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Loader/XmlFileLoader.php on line 234

部署到 AppEngine 时,在显示正确的输出(即“主页”一词)之前会显示以下错误:

Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/symfony/src/Symfony/Bundle/SecurityBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/symfony/src/Symfony/Bundle/TwigBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/monolog-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/monolog-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/monolog-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/swiftmailer-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/swiftmailer-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/swiftmailer-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/assetic-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/assetic-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/symfony/assetic-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/doctrine/doctrine-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/doctrine/doctrine-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/doctrine/doctrine-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/sensio/framework-extra-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/sensio/framework-extra-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/vendor/sensio/framework-extra-bundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/src/AppBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/src/AppBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Warning: opendir(/base/data/home/apps/e~sy-be/1.306537434952097690/src/AppBundle/Resources/config/doctrine): failed to open dir: No such file or directory in /base/data/home/runtimes/php/sdk/google/appengine/runtime/Glob.php on line 124 Homepage.

我不明白我做错了什么..

【问题讨论】:

    标签: php symfony google-app-engine


    【解决方案1】:

    尝试运行 app/console server:run .. 你应该没有任何问题..

    这是因为 Google Apps Engine 具有“默认”只读文件系统。

    您的文件“stream”/“handler”是前缀“gs://myfiles”而不是传统的“file:///tmp/”。

    Symfony2 “标准”在与 Google App Engine 一起部署时被破坏(Symfony 需要能够创建缓存文件、类映射等)。

    我建议从 https://cloud.google.com/appengine/docs/php/googlestorage/ 的速成课程开始

    这个包看起来像是一个抽象文件系统的不错的镜头:https://github.com/KnpLabs/Gaufrette .. 我很快就会对此进行测试,并将随时发布。

    【讨论】:

    • 另一方面.. 抽象肯定是要走的路(我们将不得不在这里支付一些技术债务重构file_put&get_contents)..但如果它是一个危机 那么好吧,至少你可以得到一半的文件写入并进入可管理的设计模式......php.net/manual/en/function.stream-wrapper-register.php应该
    • 抛出本地 XML 错误的函数是只读的,并且由于 AppEngine 文件系统允许读取,这不是原因。另外,感谢 Gaufrette 的 inability to manage directories,这不适用于缓存。
    【解决方案2】:

    你没有做错任何事。 Google App Engine Launcher 的 PHP 运行时存在问题。在修复之前,解决此问题的最佳方法是编辑 Symfony\Component\DependencyInjection\Loader\XmlFileLoader 类并使函数“validateSchema”返回 true。

    编辑

    以上是指你在本地遇到的问题("Failed to load external entity")。为了解决您的第二个问题,我相信清除缓存(使用/clear_cache URL 指定here)将解决问题。

    【讨论】:

    • 嗨!能否提供该问题的链接?
    猜你喜欢
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2023-03-30
    • 1970-01-01
    • 2013-05-01
    • 2023-03-02
    相关资源
    最近更新 更多