nginx Laravel:PHP Artisan Migrate throws PDO Exception:找不到驱动程序(Postgres)

4uqofj5v  于 2023-08-03  发布在  Nginx
关注(0)|答案(5)|浏览(140)

**操作系统:**Ubuntu 16.10
**服务器:**Nginx
**数据库:**PostgreSQL 9.5.4
Laravel 5.4

尝试执行数据库迁移,但php artisan migrate抛出以下错误:
[Illuminate\Database\QueryException]找不到驱动程序:(SQL select * from information_schema.tables,其中tables_schema =用户名,table_name =迁移)
接着是第二条消息
[PDOException]
找不到驱动程序
我做了以下工作:
1.已验证是否安装了php-pgsql的最新版本
1.取消注解/etc/php/7.0/fpm/php. ini中与php_pdo_pgsql. dll有关的行
1.多次重新启动posgtresql和nginx
目前,当我运行php -i时,PDO部分的输出是
PDO支持=>启用
PDO drivers => pgsql
pdo_pgsql节将产生
PostgreSQL(libpq)版本=>9.5.4
模块版本=>7.0.15-0ubuntu0.16.10.4
并且pgsql部分返回
PostgreSQL(libpq)版本= 9.5.4
PostgreSQL(libpq)=> PostgreSQL 9.5.4 on x86_64-pc-linux-gnu,compiled by gcc(Ubuntu 6.1.1-11ubuntu12)6.1.1 20160805,64-bit Multibyte character support => enabled
SSL支持=>已启用
活动持久链接=> 0
活动链接=> 0
但尽管如此,还是得到了同样的错误。我认为这可能是权限问题,但是以root或www-data身份运行该命令都有相同的结果。

vfhzx4xs

vfhzx4xs1#

安装PHP pdo

sudo apt upgrade 
sudo apt install php-pgsql

字符串

j2qf4p5b

j2qf4p5b2#

我也经历过同样的情况,按以下顺序做:
1.安装php的postgre扩展,它们是:php-(YOUR_VERSION)-pgsqlphp-pgsql
1.在php.ini文件中启用pgsql扩展,基本上,取消注解扩展。
1.重启Apache服务器(或nginx)。
1.使用phpinfo()或任何类似工具检查扩展是否已启用。
1.为PostgreSQL服务器中的postgres用户(例如)设置密码,这是非常重要的一步。
登录到psql shell:

sudo su - postgres
\password postgres

字符串
输入密码并确认。
现在,设置.env文件并重试。

6mw9ycah

6mw9ycah3#

你需要定义你的.env文件
在.env文件中,您需要指定正在使用哪个数据库(MySQL、SQLite、Postgres),并指定您的DB用户名和密码

APP_ENV=local
APP_KEY=base64:gqaCpjbEfukDr5As7EnrqRzi5PSho1rOS/q2H0E+HOs=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=YOUR_DB_NAME
DB_USERNAME=YOUR_USERNAME
DB_PASSWORD=YOUR_PASSWORD

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=

字符串
在进行迁移时,运行这些命令总是很好的

composer dump-autoload
php artisan cache:clear
php artisan view:clear

bnl4lu3b

bnl4lu3b4#

我的问题通过简单安装php-pgsql解决
我用的是PHP v8.1所以我跑了。
sudo apt-get install php8.1-pgsql
希望这对你有帮助。

pxiryf3j

pxiryf3j5#

已解决:

在此方案中,请确保已运行
第一个月
我以为我在每个关键步骤都做到了这一点,但是再次运行这两个命令允许我进行迁移并使站点正常运行。谢谢lewis4u的帮助。

相关问题