Развертывание PHP на heroku - ошибка push

Я пытался развернуть приложение php на heroku, но продолжаю получать эту ошибку:

-----> PHP app detected
-----> Bootstrapping...
-----> Installing platform packages...
       ERROR: neither your composer.json 'require' section nor any
       dependency therein requires a runtime version, but 'require-dev'
       or a dependency therein does. Heroku cannot automatically select
       a default runtime version in this case.
       Please add a version requirement for 'php' to section 'require'
       in composer.json, 'composer update', commit, and deploy again.
 !     ERROR: Couldn't load 'composer.lock'; it must be a valid lock
       file generated by Composer and be in a consistent state.
       Check above for any parse errors and address them if necessary.
       Run 'composer update', add/commit the change, then push again.
 !     Push rejected, failed to compile PHP app.
 !     Push failed

кто-нибудь знает, как я могу это решить?

Вы используете какой-либо фреймворк на php? Или это простой php? Heroku использует composer, который является менеджером зависимостей php, для идентификации php и других связанных пакетов. Без файла композитора я не думаю, что можно развернуть на heroku

Vipin Mohan 25.03.2018 04:47

Я настоятельно рекомендую использовать композитор, он может значительно облегчить вашу работу

Vipin Mohan 25.03.2018 04:48

Это проект с открытым исходным кодом, у него есть файл композитора: "require-dev": {"phpunit / phpunit": "4.3. *", "Maximebf / debugbar": "> = 1.0.0", "doctrine / cache ":" 1.4. * "," Elasticsearch / elasticsearch ":" ~ 2.0 "," monolog / monolog ":" ~ 1.0 "," knplabs / github-api ":" ~ 1.2 "," ezyang / htmlpurifier ":" ~ 4.6 "," easyrdf / easyrdf ":" 0.9. * "," Hoa / compiler ":" ~ 2.15 "," hoa / visitor ":" ~ 1.15 "," коллективный доступ / служебная оболочка ":" v1.1 "," phpoffice / phppresentation ":" dev-master "," phpoffice / phpword ":" v0.13. * "}}

besevero 25.03.2018 05:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
3
1 636
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот на что я бы посмотрел, и извините, если какое-либо из этих предположений неверно, или я просматриваю то, что вы уже сделали.

  1. Ваш composer.json должен быть разделен на require и require-dev. Require будет установлен в производственной среде с добавлением require-dev локально.

{ "name": "something/something", "description": "A description of my project", "type": "project", "require": { "php": ">=5.5.9", "doctrine/cache": "1.4.*", "elasticsearch/elasticsearch": "~2.0", "monolog/monolog": "~1.0", "knplabs/github-api": "~1.2", "ezyang/htmlpurifier": "~4.6", "easyrdf/easyrdf": "0.9.*", "hoa/compiler": "~2.15", "hoa/visitor": "~1.15", "collectiveaccess/service-wrapper": "v1.1", "phpoffice/phppresentation": "dev-master", "phpoffice/phpword": "v0.13.*" }, "require-dev": { "phpunit/phpunit": "4.3.*", "maximebf/debugbar": ">=1.0.0" } }

  1. Если у вас не установлен композитор, вам нужно это сделать. https://www.hostinger.com/tutorials/how-to-install-composer

  2. Запустите php composer install в первом экземпляре php composer update позже, чтобы установить ваши зависимости.

  3. Пожалуйста, зафиксируйте все, кроме файлов поставщика и любого кеша или журналов. Это будет включать composer.lock, который представляет собой список установленных зависимостей и версий, которые вы используете.

  4. Heroku установит эти зависимости в производственной среде, убедившись, что она использует ту же версию, что указана в файле блокировки.

Другие вопросы по теме