簡體   English   中英

使用新的heroku php buildpack本地編寫器更新失敗

[英]Local composer update fails with new heroku php buildpack

從我們自己的PHP自定義buildpack轉移到支持的Heroku時,我們遇到了一個問題。 Heroku要求我們在composer.json“require”部分添加某些擴展,但是當您嘗試在本地更新時,它會失敗,因為這些包在repo中不存在。

配置文件:

    {
            "config":{
                    "github-oauth":{
                            "github.com":""
                    }
            },
            "require": {
                    "php": "*",
                    "ext-newrelic": "*",
                    "ext-memcached": "*",

                    "aws/aws-sdk-php": "2.*",
                    "rollbar/rollbar": "*",
                    "yiisoft/yii": "1.1.15",
                    "cloudinary/cloudinary_php": "1.0.11",
                    "geoip/geoip": "v1.14",
                    "sendgrid/sendgrid": "2.1.1",
                    "swiftmailer/swiftmailer": "v5.2.1",
                    "crisu83/yiistrap": "dev-bs3"
            },
            "require-dev": {
                    "phpunit/phpunit": "3.7.*",
                    "phpunit/dbunit": ">=1.2",
                    "phpunit/php-invoker": "*",
                    "phpunit/phpunit-selenium": ">=1.2",
                    "phpunit/phpunit-story": "*",
                    "squizlabs/php_codesniffer": "1.*",
                    "phpmd/phpmd" : "1.4.*",
                    "phploc/phploc": "*",
                    "pdepend/pdepend" : "1.1.0",
                    "sebastian/phpcpd": "*",
                    "mayflower/php-codebrowser": "~1.1"
            }
    }

錯誤信息:

    11:08:55 {development} /Volumes/Development/web$ composer update

    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Your requirements could not be resolved to an installable set of packages.

      Problem 1
        - The requested PHP extension ext-newrelic * is missing from your system.
      Problem 2
        - The requested PHP extension ext-memcached * is missing from your system.

有任何想法嗎 ?

安裝擴展程序為我修復了這個(newrelic擴展程序給了我麻煩,但這是另一個問題。)

(答案在這里發布,但是該人再次將其刪除。)

您需要安裝這些擴展。 假設您在開發期間使用與生產中大致相同的組件和環境在本地開發,運行和測試代碼,因此如果您在生產中使用memcache,則還可以在本地使用它。 這可以確保您不會遇到令人討厭的意外,因為不同的數據存儲行為不同等。另請參閱http://12factor.net/dev-prod-parity

規則的例外情況:您不需要安裝New Relic擴展; 如果您配置New Relic附加組件(通過檢測NEW_RELIC_LICENSE_KEY env var),它會在推送時自動啟用,請參閱https://devcenter.heroku.com/articles/php-support#extensions (它在開發人員的本地很少使用)盒子,安裝可能有點麻煩)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM