在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就行了。
这几段英文的意思分别是
- 设置数据库root的密码;
- 删除匿名用户(默认情况下,MariaDB有一个匿名用户,允许任何人登录 MariaDB,建议删除);
- 禁止root用户远程登录
- 删除测试数据库及其访问
- 立即重载权限表(笔记:权限表就是 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点,与世界说声晚安。