2017-02-18 12 views
1

저는 Heroku에 초보자입니다. 많은 비슷한 질문이 stackoverflow에서 요청되었지만 저에게 적합한 솔루션을 찾을 수 없었습니다.Heroku Laravel 4.2 Mcrypt PHP 확장이 필요합니다

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. 

내가 heroku run bash 명령을 Heroku가 환경에 연결을 시도하지만 루트 권한이 없기 때문에 Mcrypt 라이브러리 확장의 상태를 가져올 수 없습니다 : 내 laravel 4.2 응용 프로그램을 배포 할 때

나는 다음과 같은 문제를 얻고있다 나에게 부여.

또한 heroku buildpacks:set https://github.com/heroku/heroku-buildpack-php을 빌드 팩으로 설정하려고 시도했습니다. 그러나 성공하지 못했습니다.

은 여기 내 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" 
} 

어떤 도움이 많이 감사합니다.

+0

질문을 편집하고 'composer.json'을 추가하십시오. – Chris

+0

@ Chris, composer.json의 업데이트 된 질문 – meen

답변

3

composer.json에서 mcrypt 확장 프로그램에 대한 PHP 버전 또는 종속성을 지정하지 않았습니다. PHP의 특정 버전에 따라하여

시작 : 당신이 원하는 경우

composer require php ~7.1.0 

당신은 ~7.0.0 또는 ~5.6.0~7.1.0을 대체 할 수 있습니다.

Heroku includes mcrypt by default PHP 5.6을 사용하는 경우. 당신은 당신이 need to add it거야 7.0 또는 7.1을 사용하는 경우 그러나 :

composer require ext-mcrypt 

는 그런 다음 composer.lock composer update을 실행하여 업데이트합니다. 모든 것이 로컬에서 예상대로 작동하는지 확인한 다음 업데이트 된 composer.jsoncomposer.lock 파일을 커밋하고 Heroku로 다시 푸시하십시오.

참고 : the mcrypt extension has been deprecated as of PHP 7.1. Laravel 5.1 이상으로의 업그레이드를 고려해 볼 가치가 있습니다. 특히 PHP 7.1로 작업하는 경우에는 replaces mcrypt with openssl이 좋습니다.

+0

이 답변은 저의 책에서 +20 평판을 얻습니다. 이 솔루션을 찾는 데 몇 시간이 걸렸습니다. 고마워 크리스! :-) –