【发布时间】:2017-02-28 16:16:04
【问题描述】:
我们正在尝试在 bluemix 上部署一个 symfony2 应用程序,但没有成功……我们已经看到一些关于此类问题的帖子,但它们要么没有答案,要么已过时,要么存在略微不同的问题。
我们有一个基于 symfony 标准版发行版的 symfony 应用程序,因为我们也有一个前端,所以将其移动到 backend 文件夹中。 但是,composer.json 位于根目录中,并引用后端文件夹。这是唯一完成的修改。
在本地一切正常,但在带有 PHP buildpack 的 Bluemix 上却不行,这是错误:
Generating autoload files
[RuntimeException]
Could not scan for classes inside "backend/app/AppKernel.php" which does not appear to be a file nor a folder
在 Bluemix 上,通过 manifest.yml 将 env 设置为 prod,我们已尝试在本地以相同配置安装 composer:
applications:
- name: myapp
random-route: true
memory: 128M
env:
SYMFONY_ENV: prod
#BP_DEBUG: true
这个错误是我在详细模式下得到的,在没有详细模式的情况下我也有同样的错误。我们在 Bluemix 上以 no-dev 模式运行,这里是完整的 options.json:
{
"COMPOSER_INSTALL_OPTIONS": [ "--no-dev", "-vvv"]
}
我已尝试添加脚本以进行调试。它在本地运行良好,但在 Bluemix 上却不行,因此根本没有帮助。从composer.json中提取:
"scripts": {
"pre-autoload-dump": [
"echo TEST"
],
...
}
文件存在并且在正确的位置:
$ ll backend/app/
total 128
drwxr-xr-x 6 bob bob 4096 févr. 28 15:45 .
drwxr-xr-x 9 bob bob 4096 févr. 28 15:44 ..
-rwxr-xr-x 1 bob bob 101 févr. 23 11:37 AppCache.php
-rwxr-xr-x 1 bob bob 1394 févr. 24 11:32 AppKernel.php
-rwxr-xr-x 1 bob bob 263 févr. 23 11:37 autoload.php
-rw-r--r-- 1 bob bob 40956 févr. 28 15:45 bootstrap.php.cache
drwxr-xr-x 3 bob bob 4096 févr. 28 15:45 cache
-rwxr-xr-x 1 bob bob 3909 févr. 28 15:45 check.php
drwxr-xr-x 2 bob bob 4096 févr. 28 14:37 config
-rwxr-xr-x 1 bob bob 897 févr. 22 15:28 console
-rwxr-xr-x 1 bob bob 143 févr. 23 11:37 .htaccess
drwxr-xr-x 2 bob bob 4096 févr. 28 14:37 logs
-rwxr-xr-x 1 bob bob 1358 févr. 23 11:37 phpunit.xml.dist
drwxr-xr-x 3 bob bob 4096 févr. 23 11:37 Resources
-rwxr-xr-x 1 bob bob 34272 févr. 28 15:45 SymfonyRequirements.php
似乎在 composer.json 中的配置是正确的(正在寻找正确的位置)。在本地使用相同的文件没有任何问题:
"extra": {
"symfony-app-dir": "backend/app",
"symfony-web-dir": "backend/web",
...
}
我想到的最后一件事是,我在执行新的 cf push 之前执行了 cf delete myapp 以确保在 Bluemix 上考虑到最新文件(因为我不明白为什么预自动加载转储脚本不在 Bluemix 上运行)
感谢您的帮助!
【问题讨论】:
标签: php symfony ibm-cloud buildpack