Laravel 5 развернуть в heroku: / bin / sh: vendor / bin / heroku-php-apache2: Нет такого файла или каталога [duplicate]

Убедитесь, что вы не закрываете базу данных. Используя db_close () перед запуском вашего запроса:

Если вы используете несколько запросов в скрипте, даже если вы включая другие страницы, содержащие запросы или соединение с базой данных, возможно, что в любом месте вы будете использовать db_close (), который закроет ваше соединение с базой данных, поэтому убедитесь, что вы не делаете эту ошибку в своих сценариях.

1
задан jaysoifer 8 October 2015 в 11:58
поделиться

2 ответа

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

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

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

8
ответ дан SLow Loris 27 August 2018 в 14:02
поделиться

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

< blockquote>

Чтобы сократить длинную историю, местный геройку официально не поддерживается для приложений 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 это просто невозможно, потому что фатальная ошибка> убивает движок, поэтому ваш веб-сервер тоже исчезнет).

4
ответ дан jaysoifer 27 August 2018 в 14:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: