Мне нужна помощь в создании расширенного приложения Yii2 на Heroku. Я уже установил Yii локально с помощью Composer, следуя их руководство точно: http://www.yiiframework.com/doc-2.0/guide-tutorial-advanced-app.htmlНастройка Yii2 Advanced на Heroku
Мой сайт работает как надо локально, с внешним и внутренним:
http://localhost/yii2app/frontend/web/
http://localhost/yii2app/backend/web/
Когда я нажимаю и запустить его на Heroku, я получить ошибки, жалуясь, что некоторые файлы не найдены. Что странно, с терминалом bash для моего приложения Heroku, я могу проверить, что файл на самом деле есть! Неужели Героку не нравится «../../», чтобы сменить каталог?
PHP Fatal error: require(): Failed opening required '/app/frontend/web/../../common/config/main-local.php'
include_path='.:/app/.heroku/php/lib/php') in /app/frontend/web/index.php on line 12
В 'фронтэнда/веб/index.php' шток код Yii (в строке 12 является главной local.php):
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../common/config/main.php'),
require(__DIR__ . '/../../common/config/main-local.php'),
require(__DIR__ . '/../config/main.php'),
require(__DIR__ . '/../config/main-local.php')
);
Если он должен был сделать с»../ ../ ', чтобы изменить каталог, тогда я бы подумал, что первое требование будет иметь ошибку (для записи main.php).
Что мне не хватает, чтобы получить Yii2 продвинутый ход на Heroku?
ОБНОВЛЕНИЕ - Я создал новое базовое приложение Yii2. Должно работать и быть простым, поэтому я подумал. По-видимому, даже основное приложение не работает на Heroku. Там ДОЛЖНО быть чем-то, что осталось от документов, где-то ... Использовал композитор для установки Yii2 basic, поставил его под git, подтолкнул его к новому стекю герою. Пошел, чтобы проверить мое приложение на heroku, добавив /web/index.php в конец URL-адреса.
ReflectionException
Class yii\debug\Module does not exist
Затем я помещаю index.php в корневую директорию, содержащую phpinfo(). Я могу подтвердить, что получаю отчет по phpinfo. Итак, php работает, он сообщает PHP 5.6.5.
Кажется, что Yii2 и Heroku не играют хорошо без каких-либо магических (и не документированных) трюков. Я искал, искал и искал, и я ничего не могу с этим поделать. Я не могу быть единственным, кто пытается получить приложение Yii на Heroku.
Так что я попробовал CloudControl. Я развернул мое основное приложение Yii2 для облачного управления, снова получаю отчет phpinfo на корневой index.php. Перейдите к /web/index.php и получите ошибки:
Invalid Parameter – yii\base\InvalidParamException
The file or directory to be published does not exist: /srv/www/code/vendor/bower/jquery/dist
Что дает! Я могу запустить это локально просто отлично. Когда я нажимаю его на облачный хост (Heroku или CloudControl), он терпит неудачу! Я решил, что приложение yiibasic будет лучше, по крайней мере, запустить его для PoC, но Yii из коробки не будет работать ни на одной из этих служб. Существует что-то не указано, что я отсутствует.
Человек, ты только что спас свой день. – Prostakov
Большое спасибо. Спас мой день тоже! – Nedim
Вот как вы можете использовать модуль отладки Yii2 на рабочем сервере (хотя это не рекомендуется): В вашем 'composer.json' переместите пакет' yiisoft/yii2-debug', который требуется. Кроме того, возможно, вам нужно будет переместить 'yiisoft/yii2-gii'. – Nedim