参照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文件,其内容为
<?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 ,把头尾的'
去掉,并把中间的' '
替换为,即可在终端粘贴,即运行编译配置程序。接着
make
,make 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版本一致,此时便再无此错误了。