安装typecho博客,环境是CentOS8、Nginx1.22、php8、mysql8.0,typecho安装过程中出现如下问题:
对不起,无法连接数据库,请先检查数据库配置再继续进行安装
确认是否是数据库服务存在问题
比如,数据库服务没有运行、你自定义的数据库端口和填写不一致等等。运行下列命令:netstat -unltp | grep mysql
如果命令运行有结果,显示的端口号和你在typecho安装页面填写的端口一致,说明mysql服务运行和监听是正常的。
如果没有结果,就是mysql服务没有启动,或者防火墙禁掉了mysql的运行端口。
关掉防火墙,然后用你安装mysql的那个系统用户启动一下mysql服务。
确认是否是 php-fpm和数据库的连接存在问题
如果数据库确实建好了、数据库用户也分配好了权限、mysql服务也正常启动、端口也没毛病,还是连接不上数据库,可能是php.ini配置的问题。php-fpm默认使用socket连接数据库,而socket文件(mysql.sock)的位置是从php.ini文件中读取的。但mysql.sock文件的实际位置是mysql配置决定的,所以php.ini默认的socket位置可能不对,导致找不到socket连接不上。
修改php.ini文件,指向正确的mysql.sock位置
使用 find / -name mysql.sock
查找 mysql.sock 的位置,修改 php.ini,找到 mysql.default_socket 这一字段,取消它的注释,并改为 mysql.sock 的文件路径。
在typecho安装界面,解释器选择mysql原生,才需要修改 php.ini 的 mysql.default_socket字段,如果解释器选择pdo,那需要修改的字段就变成 php.ini 文件中 pdo_mysql.default_socket 字段。
修改后依然报错无法连接数据库,登录mysql数据库执行ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
在刷新权限 flush privileges;
就可以继续安装了
无法登录后台
Nginx服务器点击前台链接或者后台登录时出现404, not found
官方给的解决方法是一般的出现这种情况时,nginx.conf 里的 location 设置都是类似这样的
location ~ .*.php$
需要修改成下面这样的,以支持pathinfo
location ~ ..php(/.)*$
然后保存重启nginx和php,即可登录后台
评论