Ubuntu 17.10下执行php artisan migrate报错求助
解决Ubuntu 17.10下
php artisan migrate报错的问题 先拆解你的报错信息,核心有两个问题:PHP加载php_curl.dll失败,以及数据库驱动缺失。咱们一步步来解决:
1. 修复PHP curl扩展的警告
你在Linux系统里用了.dll后缀的扩展文件——这是Windows系统的格式!Ubuntu下的PHP扩展都是.so后缀,这个警告完全是配置错误导致的。
解决方法:
- 如果你用的是系统自带的PHP 7.1,直接安装系统的curl扩展包即可,它会自动帮你配置好php.ini:
sudo apt-get update sudo apt-get install php7.1-curl - 要是你想手动修改php.ini(不推荐),找到
/etc/php/7.1/cli/php.ini里的extension=php_curl.dll行,改成extension=curl.so,保存后退出。
2. 解决数据库驱动缺失的问题
报错could not find driver是因为你的CLI版本PHP没有安装MySQL驱动(Laravel默认用PDO连接MySQL,必须要有对应的扩展支持)。
解决方法:
安装PHP7.1的MySQL扩展包:
sudo apt-get install php7.1-mysql
安装完成后,执行php -m命令,查看输出里有没有pdo_mysql和mysqli——如果有,说明驱动已经安装成功。
3. 注意:区分系统PHP和XAMPP的PHP
你同时安装了系统PHP和XAMPP的PHP,这是两个独立的环境:
- 如果你用系统PHP执行
php artisan migrate,上面的步骤已经覆盖了; - 要是想改用XAMPP的PHP运行artisan,需要用绝对路径执行:
这时候要确保XAMPP的php.ini(路径/opt/lampp/bin/php artisan migrate/opt/lampp/etc/php.ini)里已经开启了pdo_mysql和curl扩展:找到extension=pdo_mysql.so和extension=curl.so两行,确保前面没有注释符号;。
4. 验证数据库配置
最后检查Laravel项目根目录下的.env文件,确认数据库配置和实际情况一致:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=haabit # 要和报错里的table_schema一致 DB_USERNAME=root # 你的MySQL用户名 DB_PASSWORD=xxx # 你修改后的phpmyadmin密码(即MySQL root密码)
做完这些步骤后,再执行php artisan migrate应该就能正常运行了。
内容的提问来源于stack exchange,提问作者Adrian Rosario
相关产品推荐
相关产品推荐

