Laravel部署:PHP错误无法加载动态库'pdo_pgsql'

Laravel Deployment : PHP Error Unable to load dynamic library 'pdo_pgsql'

我想在 ubuntu 服务器 18 LTS 中部署我的 laravel 应用程序。所以我安装了 nginx postgres php。但是当我尝试做 php artisan migrate 我有这个返回错误:

This is the errror (a picture beacose of comande line) .

所以我验证了不同的事情: 首先,我可以使用 postgres 用户访问本地主机中的数据库。 laravel 应用程序在不需要数据库的情况下工作。

在 php.ini 我取消了 extention=pdo-pgsql;extention=pgsql

的注释

我已经用这个命令安装了 php postgres sql 扩展 sudo apt-get install php7.2-pgsql

这是我在 laravel 中对数据库的 .env 设置:

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5433
DB_DATABASE=THERY //I have already create the database
DB_USERNAME=postgres
DB_PASSWORD=postgres

您的问题可能有不同的问题。可能会出现以下任何情况:

  1. php 未安装 PGsql。通过
  2. 安装
apt-get install php-pgsql
  1. 作曲家缺少 PGsql 库。通过
  2. 安装
composer require asmiarowski/laravel-postgres // There are multiple librariies available in packagist
  1. 您在 .env 中的配置未被缓存。你可以通过 运行 命令
  2. 缓存它们
php artisan config:cache
  1. 无法访问您的 PGSql 服务器。您可以采取进一步的措施来解决它们。

所以对于我的问题,他们有两个解决方案和一个奖励

  1. 如果问题来自 php 并且您不想重新安装所有内容,可以关注此主题 here in ask ubuntu 并使用这两个命令:
sudo apt-get --purge remove php-common

sudo apt-get install php-common php-pgsql php-cli
  1. 如果您想使用 postgresql 为 laravel 正确安装 php,您可以使用此命令:
#php install comande
sudo apt-get install php-fpm openssl php-common php-curl php-json php-mbstring php-xml php-zip php-pgsql

#make sure to uncomment extension=pdo_pgsql
sudo nano /etc/php/7.2/fpm/php.ini 

#restart fpm service to apply settings
sudo systemctl restar php7.2-fpm

最后,如果你遇到 [SQLSTATE 08006 错误],请检查你的 laravel 应用程序中的 .env 文件中的端口是否对应于你服务器中的侦听端口(对我来说,使用的端口是 5432 而不是 5433 )