Запуск моего приложения Symfony на Heroku: «В пространстве имен« сервер »не определены команды». - PullRequest
0 голосов
/ 04 июня 2019

Хорошо, это мой первый вопрос на любом форуме, но я постараюсь быть максимально ясным ... Я работаю над Symfony некоторое время, и на работе, и для личного проекта дома. Тем не менее, я никогда не развертывал никаких приложений до сих пор. Я выбрал Heroku для развертывания моего личного проекта Symfony, и я делал все, как сказано в документации: 1. Я создаю приложение Heroku 2. Я связал это с моим локальным хранилищем Тогда я сделал:

heroku config:set SYMFONY_ENV=prod

Этого было недостаточно для успешной сборки, поэтому мне пришлось сделать

heroku config:set APP_ENV=prod

тоже, но в любом случае это привело к развертыванию

Затем я настроил базу данных с помощью JAWSDB и запустил:

heroku run "php bin/console doctrine:migrations:migrate"

Теперь у меня есть доступ к базе данных prod с правильной структурой, поэтому я знаю, что мой код работает

В чем проблема тогда? URL моего приложения показывает 404, независимо от того, какую конечную точку я использую, и когда я пытаюсь получить к ней доступ из своего фронтального локального приложения ( это, в конце концов, API ), у меня возникает проблема с CORS Таким образом, запрос параметров возвращает 200, а затем ничего. Я знаю, что дело не в CORS, потому что я настроил их на *.

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

Я не использовал докер , поэтому единственная информация, которую я сказал героку, была с этой командой:

echo 'web: $(composer config bin-dir)/heroku-php-apache2 public/' > Procfile

Я не совсем уверен, что он делает, но я не думаю, что это как-то связано с моей проблемой

Итак, я подумал, что я запустил сервер с помощью heroku bash, и я запустил:

heroku run "php bin/console server:start"

учитывая, что 'php bin / console server: start' - это способ, которым я запускаю его локально, это выглядело как хорошая вещь

Но у меня была эта ошибка: В пространстве имен "server" не определены команды.

Я посмотрел его в Интернете и обнаружил, что эта команда недоступна в среде prod ...

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

Я не вижу, чего мне не хватает, и именно поэтому я решил написать этот первый и очень длинный (извините) пост в StackOverflow

Спасибо, что дочитали до конца,

Coline

1 Ответ

0 голосов
/ 04 июня 2019

Итак, эта строка:

web: $(composer config bin-dir)/heroku-php-apache2 public/

в вашем Procfile говорит Heroku запустить Apache и указать его в каталоге public.Этот (или другой веб-сервер, такой как nginx, который также поддерживает Heroku) является производственной заменой php bin/console server:start (который, как вы обнаружили, предназначен только для локального использования).

Вам не нужноserver:start вообще на Героку.Если ваше приложение не работает после того, как вы добавили и развернули Procfile как часть репозитория, происходит что-то еще.

Heroku предоставляет документацию для запуска приложения Symfony .Убедитесь, что вы выполнили их шаги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...