今天在布署一个PHP的CMS时,提示没有写入权和没有安装mysqli
这两个问题可以说还是比较简单的,但还是记录下来,以便提供给新人一些参考。
这里先说一个坑,由于用的是阿里云服务器,也不知道是谁把rm命令给改名了,并且将rm作了别名,这里我说一下,在编译软件时会出现错误,因为在你编译时可能是会用到rm命令的,如果没有,这时候你可能会看到很多的报错。好吧,先unalias rm然后再把rm命令临时改过来,你可以用完后再改回去也可以。
首先不能写入,添加权限和运行用户及用户组。
chown -R nginx.nginx Folder
chmod -R 755 Folder这里我把所有文件都给了最大权限,针对nginx来说。
现在我们来安装一下mysqli扩展。
执行:
yum install autoconf yum install m4 cd /tools/php-5.6.36/ext/mysqli /application/php-5.6.29/bin/phpize
./configure --prefix=/application/mysqli --with-php-config=/application/php/bin/php-config --with-mysqli=/application/mysql/bin/mysql_config
不好报错了:
/tools/php-5.6.36/ext/mysqli/mysqli_api.c:36:47: fatal error: ext/mysqlnd/mysql_float_to_double.h: No such file or directory
这里注意看,错误提示就可以了,写得很明确了,我就不说了,不会英语的朋友自行查词典,这对你来说很有帮助。
在这个文件中:/tools/php-5.6.36/ext/mysqli/mysqli_api.c
将#include “ext/mysqlnd/mysql_float_to_double.h”
改为#include “../../ext/mysqlnd/mysql_float_to_double.h”
再次配置一下,然后执行
make && make install
然后编辑php.ini
添加:
extension=path/mysqli.so
重启php-fpm
如果有修改nginx也需要重启
nginx -s reload