【问题标题】:Deploy a Laravel App on Cloudfoundry在 Cloudfoundry 上部署 Laravel 应用程序
【发布时间】:2016-06-29 10:57:30
【问题描述】:

我正在尝试将基于 Laravel 的 Web 应用程序部署到 Swisscom 应用程序云。因此我使用提供的 PHP Buildpack。文档显示了一个使用 Lumen 的示例,所以我假设它也应该与 Laravel 一起使用。

使用的命令:cf push app-name -m 512M -n app-name

部署时出现以下两个错误:

一)

The extension 'fpm' is not provided by this buildpack.
The extension 'tokenizer' is not provided by this buildpack.
The extension 'dom' is not provided by this buildpack.
The extension 'json' is not provided by this buildpack.
The extension 'pcre' is not provided by this buildpack.
The extension 'reflection' is not provided by this buildpack.
The extension 'spl' is not provided by this buildpack.

b)

Generating autoload files
> Illuminate\Foundation\ComposerScripts::postInstall
> php artisan optimize
PHP Warning:  require(/tmp/app/bootstrap/../vendor/autoload.php):failed to open stream: No such file or directory in /tmp/app/bootstrap/autoload.php on line 17
PHP Fatal error:  require(): Failed opening required '/tmp/app/bootstrap/../vendor/autoload.php'(include_path='../lib/php:/tmp/app/lib') in /tmp/app/bootstrap/autoload.php on line 17
Script php artisan optimize handling the post-install-cmd event returned with an error

我的options.json 文件:

{
   "WEBDIR": "public",
   "PHP_VERSION": "{PHP_70_LATEST}",
   "PHP_EXTENSIONS": [ "bz2", "zlib", "openssl", "fpm", "tokenizer", "curl", "mcrypt", "mbstring", "pdo", "pdo_mysql"]
}

感谢您的帮助!

【问题讨论】:

标签: laravel cloud-foundry swisscomdev


【解决方案1】:

我找到了解决方案。只需添加

"COMPOSER_VENDOR_DIR": "vendor",

到您的options.json 文件。

{
"PHP_VERSION": "{PHP_70_LATEST}",
"WEBDIR": "public",
"LIBDIR": "vendor",
"COMPOSER_VENDOR_DIR": "vendor",
"PHP_EXTENSIONS": [ "bz2", "zlib", "openssl", "fpm", "tokenizer", "curl", "mcrypt", "mbstring", "pdo", "pdo_mysql"]
}

More information in the Docs

【讨论】:

    【解决方案2】:

    a => 与 buildpack 相关,不会破坏任何内容。这只是这些扩展程序尚不可用的信息。

    b => artisan 在暂存时不可用,因此您在作曲家脚本 (composer.json) 中触发的“优化”命令将不起作用。我还没有找到合适的解决方案,所以目前我不这样做。

    您的 options.json 还需要一件事 => "LIBDIR": "" 这会将您的作曲家供应商目录安装在应用根目录中。

    最好的问候 戴夫

    【讨论】:

    • 嗨,大卫。当我尝试部署示例 Lumen 应用程序 [link] (github.com/swisscom/cf-sample-app-php.git) 时,它运行良好。还有一个 php artisan optimize 命令。
    • 这是主要问题:[RuntimeException] Error Output: PHP Warning: require(/tmp/app/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /tmp/app/bootstrap/autoload.php on line 17 PHP Fatal error: require(): Failed opening required '/tmp/app/bootstrap/../vendor/autoload.php' (include_path='../lib/php:/tmp/app/vendor') in /tmp/app/bootstrap/autoload.php on line 17
    猜你喜欢
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多