502 после установки Herd и возврата к Valet

Я был рад попробовать только что выпущенный Laravel Herd (https://herd.laravel.com), поэтому я не читал, что внутри нет расширения pdo_pgsql (и мы не можем добавить его вручную).

Итак, я запускаю его, ничего не работает в приложениях с базами данных postgresql.

Я возвращаюсь к камердинеру. Удаление Herd должным образом (https://herd.laravel.com/docs/1/troubleshooting/uninstalling) и, чтобы убедиться, снова запустите установку камердинера.

Ну, с тех пор я получил 502 Bad Gateway для каждого приложения, использующего postgresql. Если я перейду к Dbgnin и отключу базу данных, я получу реальную ошибку laravel, которая говорит, что не может подключиться.


Журнал Valet nginx:

[error] 11752#0: *91 upstream prematurely closed connection while reading response header from upstream, client: 127.0.0.1, server: , request: "POST /login HTTP/1.1"

Лог php-fpm:

[21-Jul-2023 08:02:46] WARNING: [pool valet] child 14476 exited on signal 6 (SIGABRT) after 216.252544 seconds from start
[21-Jul-2023 08:02:46] NOTICE: [pool valet] child 14518 started

С моими ограниченными знаниями в области управления сервером я считаю, что PHP и Valet должны работать нормально, поскольку все другие сайты (локальные), использующие базу данных Mysql или Sqlite, работают правильно. Меня беспокоят Postgresql и расширения PHP. В этом конкретном случае мне нужно использовать версию 12 Postgresql. Однако, когда я проверяю phpinfo, я замечаю, что расширения pdo_pgsql и pgsql относятся к версии 15.3. Может ли быть конфликт, и если да, то я не могу найти способ понизить версию расширения.

Что я пробовал до сих пор:

  • переустановить php и pdo_pgsql и pgsql
  • установить posgresql отдельно
  • использовать базу данных mysql, чтобы попробовать, работает ли она над этим проектом (да)
  • полностью переустановить php, nginx, обновить brew, composer и т. д.
  • Расширения pdo_pgsql и pgsql включены (версия 15.3)

Хорошей новостью является то, что я могу работать над своими проектами Laravel, используя php artisan serve. Но со старым добрым Valet я не могу.

Спасибо за любую идею

Ошибка в 5xx — это всегда приглашение посетить журнал ошибок. Найдите соответствующее сообщение об ошибке и отредактируйте свой вопрос, чтобы добавить его.

hakre 21.07.2023 07:50

Это оставляет небольшую территорию программирования и не особенно подходит для SO, поскольку вам нужно устранить неполадки. Помогает, если вы также поделитесь своим пониманием этих сообщений об ошибках, чтобы было легче определить контекст и предоставить лучший комментарий, если даже не ответ. Проверьте конфигурацию пула камердинеров в php-fpm, кажется, вы получаете тайм-ауты (см. Большое количество секунд и SIGABRT), поэтому похоже, что конфигурация пула камердинеров была брошена под шину. И кстати. пробовал перенастроить?

hakre 21.07.2023 08:11

С моими ограниченными знаниями в области управления сервером я считаю, что PHP и Valet должны работать нормально, поскольку все другие сайты (локальные), использующие другую базу данных, работают правильно. Меня беспокоят Postgresql и расширения PHP. В этом конкретном случае мне нужно использовать версию 12 Postgresql. Однако, когда я проверяю phpinfo, я замечаю, что расширения pdo_pgsql и pgsql относятся к версии 15.3. Может ли быть конфликт, и если да, то я не могу найти способ понизить версию расширения.

mchev 21.07.2023 08:56

Да, представьте, что протокол изменился между 12 и 15.3. Подключение с помощью 15.3 к серверу 12 может привести к тому, что соединение не будет установлено, и либо клиент, либо сервер ожидают дополнительных данных, но другой конец не знает об этом. Затем это «зависает», а затем PHP-FPM видит долго выполняющийся дочерний процесс («php-скрипт») и отправляет сигнал прерывания. Если вам нужна другая конфигурация PHP (включая используемые расширения), в PHP-FPM у вас либо есть собственный экземпляр PHP-FPM (например, другая версия PHP), но, по крайней мере, собственный пул с этой конфигурацией. Я не владею Valet (1/2)

hakre 21.07.2023 09:21

(2/2), но мне кажется, что есть только один пул, тот, что называется "valet". Это объясняет, почему все приложения, обслуживаемые из пула камердинеров, имеют одинаковые версии postgres, это просто такая конфигурация. Поэтому, хотя вы используете это для подтверждения того, что камердинер работает, мне кажется, что (вероятный) подход камердинера как «один размер подходит всем», хотя и удобен с самого начала, больше не подходит там, где вы нужно расходиться в конфигурации этого конкретного приложения. Но, как написано, я недостаточно хорошо знаю камердинера, поэтому дважды проверьте их документы, какие у вас параметры конфигурации.

hakre 21.07.2023 09:25

И забыл упомянуть: пожалуйста отредактируйте вопрос и добавьте свое понимание после журналов. Я нашел ваш последний комментарий очень проницательным, и его не следует прятать в комментариях. Пользователь-камердинер может уже понять вашу проблему и дать гораздо более конкретные указания, чем я.

hakre 21.07.2023 12:02

я думал, что я единственный, кто сталкивается с этой проблемой. точно такая же ошибка. есть ли решение?

Faytraneozter 23.07.2023 16:02

@Faytraneozter на самом деле я не нашел решения. Я работаю над проектом, используя php artisan serve, но это не идеально. Я написал Марселю Посио в личку, надеясь, что он посмотрит.

mchev 24.07.2023 08:59
Стоит ли изучать 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
8
190
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Поскольку они только что выпустили новую версию с поддержкой Postgresql, теперь она работает очень хорошо.

https://twitter.com/marcelpociot/status/1683462872007954435

Новое расширение: @laravelphp Теперь Herd поддерживает PostgreSQL 🎉 Просто обновите версию PHP через экран «Настройки».

Но, к сведению, мне никогда не удавалось заставить мои сайты камердинеров снова нормально работать с postgresql.

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