php yii2提示Database Exception – yii\db\Exception错误

参照YII2 advanced 高级版本项目搭建-添加API应用以及多应用中的方法创建了一个新的api应用,其中便自带gii工具。
但在yii2的gii工具中点Model Generator的Start来创建model时发现错误
提示:
Database Exception – yii\db\Exception

SQLSTATE[HY000] [2002] No such file or directory yii\db\Exception

大部分博客都是说要找到php.ini文件并设置其为

pdo_mysql.default_socket= /path-to-mysqlsock/mysql.sock
mysqli.default_socket =/path-to-mysqlsock/mysql.sock

mysql是老版本的mysql,无须设置。
其中php.ini的路径可由在网页目录下创建php.php文件,其内容为

 phpinfo()?>

从网页访问/php.php,即可看到php.ini的路径;
如果php.ini一栏(Loaded Configuration File)显示none,说明并无php.ini文件加载。
需要你把你要加载的php.ini文件复制到Configuration File (php.ini) Path所示的路径中,重启php-fpm,才算把php.ini加载成功。

mysql.sock(mysqld.sock)的路径可用

sudo find / -name mysql.sock
sudo find / -name mysqld.sock

来搜索,搜到任意一个都可用。

但在此并无法解决我的问题,错误提示依旧。

在bigsoft看到说需更改执行“yii”脚本的应用程序路径(php),在yii应用的根目录,打开“yii”脚本,可看到其执行程序为
#!/usr/bin/env php

于是在终端中输入php -v查看php版本,发现与phpinfo里面提示的版本不一致,一个是7.0,一个所7.1。phpinfo里面显示的版本其实是php-fpm的版本号。于是打算把php从7.0升级为7.1。

在php官网下载php源代码,去到源代码根目录,并复制phpinfo中的Configure Command ,把头尾的'去掉,并把中间的' '替换为,即可在终端粘贴,即运行编译配置程序。接着makemake install即可。
接着去Configure Command中设置的安装路径下,把bin文件下的php软链到/usr/bin下即可。另外重启php-fpm,如有错误,解决相应的问题即可,如库丢失的问题,把相应的.so文件复制到错误提示的库目录下即可。
此外还得把php-fpm.conf.default复制成php-fpm.conf,php-fpm.d里面的www.conf.default复制成www.conf,并把其中的
user和group改成自己运行php-fpm时想用的user和group。

php版本和php-fpm版本一致,此时便再无此错误了。

你可能感兴趣的:(服务器搭建与维护,ubuntu,php)