Я был рад попробовать только что выпущенный 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. Может ли быть конфликт, и если да, то я не могу найти способ понизить версию расширения.
Что я пробовал до сих пор:
Хорошей новостью является то, что я могу работать над своими проектами Laravel, используя
php artisan serve. Но со старым добрым Valet я не могу.
Спасибо за любую идею
Это оставляет небольшую территорию программирования и не особенно подходит для SO, поскольку вам нужно устранить неполадки. Помогает, если вы также поделитесь своим пониманием этих сообщений об ошибках, чтобы было легче определить контекст и предоставить лучший комментарий, если даже не ответ. Проверьте конфигурацию пула камердинеров в php-fpm, кажется, вы получаете тайм-ауты (см. Большое количество секунд и SIGABRT), поэтому похоже, что конфигурация пула камердинеров была брошена под шину. И кстати. пробовал перенастроить?
С моими ограниченными знаниями в области управления сервером я считаю, что PHP и Valet должны работать нормально, поскольку все другие сайты (локальные), использующие другую базу данных, работают правильно. Меня беспокоят Postgresql и расширения PHP. В этом конкретном случае мне нужно использовать версию 12 Postgresql. Однако, когда я проверяю phpinfo, я замечаю, что расширения pdo_pgsql и pgsql относятся к версии 15.3. Может ли быть конфликт, и если да, то я не могу найти способ понизить версию расширения.
Да, представьте, что протокол изменился между 12 и 15.3. Подключение с помощью 15.3 к серверу 12 может привести к тому, что соединение не будет установлено, и либо клиент, либо сервер ожидают дополнительных данных, но другой конец не знает об этом. Затем это «зависает», а затем PHP-FPM видит долго выполняющийся дочерний процесс («php-скрипт») и отправляет сигнал прерывания. Если вам нужна другая конфигурация PHP (включая используемые расширения), в PHP-FPM у вас либо есть собственный экземпляр PHP-FPM (например, другая версия PHP), но, по крайней мере, собственный пул с этой конфигурацией. Я не владею Valet (1/2)
(2/2), но мне кажется, что есть только один пул, тот, что называется "valet". Это объясняет, почему все приложения, обслуживаемые из пула камердинеров, имеют одинаковые версии postgres, это просто такая конфигурация. Поэтому, хотя вы используете это для подтверждения того, что камердинер работает, мне кажется, что (вероятный) подход камердинера как «один размер подходит всем», хотя и удобен с самого начала, больше не подходит там, где вы нужно расходиться в конфигурации этого конкретного приложения. Но, как написано, я недостаточно хорошо знаю камердинера, поэтому дважды проверьте их документы, какие у вас параметры конфигурации.
И забыл упомянуть: пожалуйста отредактируйте вопрос и добавьте свое понимание после журналов. Я нашел ваш последний комментарий очень проницательным, и его не следует прятать в комментариях. Пользователь-камердинер может уже понять вашу проблему и дать гораздо более конкретные указания, чем я.
я думал, что я единственный, кто сталкивается с этой проблемой. точно такая же ошибка. есть ли решение?
@Faytraneozter на самом деле я не нашел решения. Я работаю над проектом, используя php artisan serve, но это не идеально. Я написал Марселю Посио в личку, надеясь, что он посмотрит.






Поскольку они только что выпустили новую версию с поддержкой Postgresql, теперь она работает очень хорошо.
https://twitter.com/marcelpociot/status/1683462872007954435
Новое расширение: @laravelphp Теперь Herd поддерживает PostgreSQL 🎉 Просто обновите версию PHP через экран «Настройки».
Но, к сведению, мне никогда не удавалось заставить мои сайты камердинеров снова нормально работать с postgresql.
Ошибка в 5xx — это всегда приглашение посетить журнал ошибок. Найдите соответствующее сообщение об ошибке и отредактируйте свой вопрос, чтобы добавить его.