Laravel 5 Heroku Local не работает

Я успешно применил приложение Laravel к Heroku.

Он работает в Интернете.

Но когда я пытаюсь запустить «heroku local», я получаю:

vendor / bin / heroku-phpapache2: Нет такого файла или каталога

Что имеет смысл, так как поиск в «vendor / bin», единственное, что перечислено:

psysh -> ../psy/psysh/bin/psysh

Итак, где мой геройку-php-apache или как я это исправить?

Вы должны иметь эти строки в своем composer.json

 "require-dev": { "heroku/heroku-buildpack-php": "*" } 

обязательно запустите composer update после их добавления.

После обширных исследований, проб и ошибок и беседы с командой поддержки Heroku я узнал, что, хотя ответ Медленного Лориса был частью процесса, мне был дан ответ от Heroku's Support:

Чтобы сократить длинную историю, местный геройку официально не поддерживается для PHP> приложений. Причина в том, что в отличие от всех других языков, которые мы поддерживаем на платформе>, PHP не имеет веб-серверов, написанных в userland. Вместо этого мы используем PHP-FPM> вместе с Apache или Nginx, а сценарии загрузки (vendor / bin / heroku- (php | hhvm) – (apache2 | nginx)) динамически вставляют правильную конфигурацию для привязки порта> и сообщения FastCGI Розетки.

Это работает с ванильными PHP и сборками Apache при условии, что:

1) у текущего пользователя есть все правильные разрешения (в вашем случае> / var / log / apache2 / не доступен для записи); 2) правильные прокси-модули загружаются в главный httpd.conf; 3) главный httpd.conf не привязывается к порту вообще или, по крайней мере, не к одному> менее 1024 (которые зарезервированы для суперпользователей).

Основная конфигурация также должна обрабатываться каждым пользователем самостоятельно, потому что> иногда модули, которые должны быть загружены, находятся в libexec /, иногда в> lib / apache2 / modules / и т. Д. Просто слишком много вариаций; в противном случае мы могли бы> отправить полную конфигурацию Apache пользователям, и опыт был бы намного лучше.

Но проблемы на этом не заканчиваются. FPM вообще не работает в Windows и на> большинстве Linux-систем, httpd не является командой, которая работает; вместо этого apache2ctl> обрабатывает запуск и остановку, и, таким образом, запуск сервера на переднем плане невозможен. В конце концов, существует слишком много возможных перестановок в> системных конфигурациях, что делает невозможным гарантировать, что у каждого пользователя есть большой опыт.

Это просто текущая реальность на земле PHP. Ruby, Python, Node, Java имеют все> веб-серверы, которые написаны на каждом соответствующем языке, и вам не нужны внешние серверы. Это также позволяет передавать потоки файлов, обрабатывать web> обновления сокетов и т. Д. Возможно, с PHP 7 мы увидим что-то вроде этого> emerge soon (в PHP 5 это просто невозможно, потому что фатальная ошибка> убивает двигатель, поэтому ваш веб-сервер тоже исчезнет).