mee*_*een 1 heroku heroku-toolbelt laravel-4
我是 Heroku 的新手,我知道在 stackoverflow 上为此提出了许多类似的问题,但我找不到任何适合我的解决方案。
尝试部署我的 laravel 4.2 应用程序时出现以下问题:
remote: > php artisan clear-compiled
remote: Mcrypt PHP extension required.
remote: Script php artisan clear-compiled handling the post-install-cmd event returned with error code 1
remote: ! Push rejected, failed to compile PHP app.
Run Code Online (Sandbox Code Playgroud)
我尝试使用heroku run bash命令连接到 heroku 环境,但无法获得 mcrypt 扩展的状态,因为没有授予我 root 权限。
还尝试设置heroku buildpacks:set https://github.com/heroku/heroku-buildpack-php为 buildpack。但没有成功。
这是我的 composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.2.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/library",
"app/controllers",
"app/models",
"app/Lib.php",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
Run Code Online (Sandbox Code Playgroud)
任何帮助深表感谢。
您还没有指定一个PHP版本,或在依赖mcrypt于您的扩展composer.json。
首先取决于特定版本的 PHP:
composer require php ~7.1.0
Run Code Online (Sandbox Code Playgroud)
您可以替换~7.1.0为~7.0.0或~5.6.0如果您愿意。
如果您使用的是 PHP 5.6,Heroku默认包含mcrypt。但是,如果您使用的是 7.0 或 7.1,则需要添加它:
composer require ext-mcrypt
Run Code Online (Sandbox Code Playgroud)
然后composer.lock通过运行更新你的composer update。确保一切都还在工作作为本地预期,然后提交更新composer.json和composer.lock再次文件和推动的Heroku。
请注意,该mcrypt扩展已从 PHP 7.1 开始弃用。可能值得考虑升级到 Laravel 5.1 或更高版本,并替换mcrypt为openssl,尤其是当您使用 PHP 7.1 时。
| 归档时间: |
|
| 查看次数: |
6200 次 |
| 最近记录: |