在Debian10服务器上搭建博客网站(3):关于折腾Typecho的记录

0.初探

由于先前使用hexo的效果并不是很好,在好友Nios34的推荐下,我打算用Typecho重新搞一下自己的blog网页,然后把自己的blog由博客园搬到自己的服务器上,在刚开始,我选择了使用宝塔面板的方案,因为觉得安装软件包什么的很方便,向来都是折腾惯了的我挺想享受一下用面板偷懒一键上线的快乐,只是我没想到这是噩梦的开始......

wget -O install.sh download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

在输完命令后宝塔开始安装,经过简单的配置,面板就能使用了,结果由于不明原因的网页上线失败以及Nios34在聊天室里一直劝我不要使用面板,最后我还是把宝塔卸了,选择在shell里解决问题()

wget http://download.bt.cn/install/bt-uninstall.sh && sh bt-uninstall.sh #折腾无果后选择了卸载宝塔

在这之后,首先是在Nios34和搜索引擎的帮助下找到了原因————Nginx和PHP的配置问题,在这之后又开始了一晚上的折腾。

1.在Debian10上安装Nginx web服务器

原教程在这里

如果是没有安装Nginx的话得先输入,虽然在这之前Nios34在我的服务器上搞im的时候已经装过了(),所以他叫我直接跳过这一步(同理,已经装过Nginx的读者也可以跳过这一步 废话

apt update && apt install nginx

然后查看Nginx服务状态

systemctl status nginx

开启Nginx

systemctl start nginx

这里再贴几个命令方便以后使用

systemctl restart nginx #重启服务
systemctl stop nginx #停止服务
systemctl reload nginx #重新加载服务

接着我们要开启防火墙对应端口,这样才能让外网访问我们的服务,这里我们开启80(HTTP)和443(HTTPS)。

ufw allow 80 && ufw allow 443 && ufw status

接着应该就能访问我们的域名,看到"Welcome to nginx!"的字样了。

2.安装数据库##

我们在这里输入命令安装MariaDB数据库管理系统。

apt install mariadb-server

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。摘录自百度百科

安装完成后我们查看一下数据库的服务状态

systemctl status mariadb

同样的,我们可以像上文启动Nginx服务那样用systemctl命令启动服务

systemctl start mariadb

重启,停止,重新加载都可以用systemctl命令,如果要启用或禁用服务,只需要改为systemctl enable #启用服务或者systemctl disable #禁用服务

Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。摘录自systemctl命令完全指南**

接下来输入

mysql_secure_installation

输入后会弹出一堆英文,然后让你选择(Y/N),基本上都选Y就行了。
这几段英文的意思分别是

  1. 设置数据库root的密码;
  2. 删除匿名用户(默认情况下,MariaDB有一个匿名用户,允许任何人登录 MariaDB,建议删除);
  3. 禁止root用户远程登录
  4. 删除测试数据库及其访问
  5. 立即重载权限表(笔记:权限表就是 MySQL 确定各个用户权限的表

然后我们要准备配置我们的数据库,在这里参考了wordpress的文档
我们一步一步的进行输入

mysql -u root -p
Enter password:
#输入上一步设置的root密码后会弹出下面文字,然后进入MariaDB的命令行,和MySQL基本一样
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 158
Server version: 10.3.31-MariaDB-0+deb10u1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

出现这个命令行后我们在MariaDB [(none)]> 后面输入如下命令,注意,小写的databasename是你的数据库名字,最好自己取一个记得住的名字,后面Typecho的安装需要绑定数据库。

MariaDB [(none)]> REATE DATABASE databasename;

这条命令意思是:"创建 数据库 数据库的名字",语句以分号结尾代表结束

下面这条命令里 databasename要和上一条的数据库名一致,"wordpressusername"指的是一个除root以外的用户,可以改成你自己记得住的名字,在@后面的"hostname"是主机名,一般改为localhost就行,下一行的"password"是这个用户的密码。

MariaDB [(none)]> GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername"@"hostname"
-> IDENTIFIED BY "password";

整个语句的意思大概是新建一个用户,然后把数据库权限授权给这个用户。
下面输入刷新权限表的命令后,就可以EXIT退出了。
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT

3.安装php-fpm

apt install php-fpm php-mysqli

让我们先安装这两个包,然后我们要启动php-fpm服务

systemctl status php-fpm

如果这条命令启动不了可以先用apt show php看看PHP的版本号,然后在php后加上版本号再执行,如下

systemctl status php7.3-fpm

然后我们就要修改一下/etc/php/7.3/fpm/php.ini这个文件,我们可以用vim或vi进行修改

vim /etc/php/7.3/fpm/php.ini

我们用在vim中进行搜索,我们要找到;cgi.fix_pathinfo=1,把1改为0,然后删除掉;

接着我们要修改/etc/nginx/sites-available/default文件,在这里有一个和教程里不同的地方,在后面Nios34帮我找到了另一篇文章才解决了访问主页面依然显示Nginx和控制台一些页面无法进入的问题。我们先用vim打开并修改这个文件:

vim /etc/nginx/sites-available/default

我们需要找到# location ~ \.php$ {这一行,我们先把这一行和下面的# include snippets/fastcgi-php.conf;还有# fastcgi_pass unix:/run/php/php7.3-fpm.sock;以及最后的花括号# }#注释符给它删掉;

然后我们修改location ~ \.php$ { 让它变成 location ~ [^/]\.php(/|$) {
最后再找到index index.html index.htm ...这一行,然后在index.html前面加入index.php,然后保存default文件。

在default文件里有网站在服务器里root文件夹的路径,默认应该是:/var/www/html,用在vim中搜索root应该就能找到了。

在确认了root的路径后就可以退出vim了

记得在修改后要重启Nginx。

4.安装Typecho

访问Typecho官网能够找到下载的链接与如何安装的说明文档,在这里也一并讲了吧。

首先用wget下载Typecho的tar.gz压缩包,这里以1.1-17.10.30-release稳定版为例,其他版本在官方网站的下载页面就能看到;

wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
tar -zcvf 1.1-17.10.30-release.tar.gz #解压压缩包

然后我们用cp -r bulid/* /var/www/html/把包里的东西丢到网站的root文件夹(/var/www/html)里,接着在浏览器输入"你的域名/install.php"开始安装,该绑定数据库就按照之前创建的时候写的填就好了,用户使用我们创建的非root用户。
如果出现了无法创建config文件的问题,多半是因为权限问题

php 执行时是以 www-data 的身份完成的,那个目录应该是归 root 所有,所以 PHP 写不了配置文件

我们使用htop并将进程改成树状的话可以看到在php-fpm的master process是最先被运行的,以root用户运行,之后生成的子进程以www-data用户运行,所以就出现了权限问题,即www-data无法访问root权限的文件夹,所以我们只要用chown -R修改文件夹的权限给www-data即可。

结语

到这里也基本解决了所有问题(应该吧),写完这篇博文已是深夜,感谢今晚Nios34的教导与陪伴。

现在是凌晨2点,与世界说声晚安。

posted @ 2022-05-28 20:34  S3nR0  阅读(265)  评论(0)    收藏  举报