个人博客搭建

前言:搭建这个博客的时候本人已经大三,相对其他同行的师兄师弟或者大佬,都已经比较晚了。搭建博客一方面可以分享自己的心得,另一方面也可以在面试的时候方便面试官了解我们,所以搭建博客是一件有必要也很有趣的事,下面是我搭建博客的具体流程,内容可能不全,其他不懂的地方可以进行百度。

环境:Ubuntu 20.04 + docker + apache + 阿里云
SSL的配置没有采用宝塔面板的方式进行配置

1.wordpress搭建

reference:https://www.cnblogs.com/sijidou/p/11099787.html

采用docker安装的原因是方便后期的网址移植,安全性也相对较高’

1.1.安装docker

sudo apt-get update
apt-get install docker docker-compose

1.2.拉取镜像

docker pull wordpress
docker pull mysql:5.6

1.3.启动mysql镜像

启动mysql镜像:

docker run --name blog-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

然后进入mysql容器创建个wordpress的数据库

docker exec -it blog-mysql mysql -uroot -p

输入设置好的密码后创建数据库:

create databases wordpress;

1.4.启动wordpress镜像

启动wordpress前,先准备一个uploads.ini的文件,代码如下:

file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600

接下来再启动wordpress,并把我们的uploads.ini加载到容器,这样就使wordpress容器本身配置上传大小限制从2M变成64M了,同时这里映射了80和443端口,443端口是为了后面方便配置SSL,如果没有加上,可参考后面增加443端口的方法。记得vps防火墙要打开相应的端口.

docker run --name blog-wordpress --link blog-mysql:db -v /root/blog/wordpress/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini -p 80:80 -p 443:443 -d wordpress:latest

/root/blog/wordpress/uploads.ini路径的位置是你存放uploads.ini文件的路径

这样wordpress就搭建好了,访问vpsip:80端口即可。

2.wordpress主题选择

主题推荐:https://wzfou.com/wp-mf-zhuti/

在里面最终选择了argon主题,比较符合我的口味。

项目地址:https://github.com/solstice23/argon-theme

Release 页面下载 .zip 文件,在 WordPress 后台 “主题” 页面上传并安装。

个人信息栏设置:

由于第一次搭建个人博客,一开始以为下面的设置也是在”外观”里面设置的,最后发现并不是

这个是在外层的Argon主题选项里面设置的

 

 

3.域名配置

博客主买的阿里云的域名,所以演示的是阿里云的域名配置

①先进入域名的界面

域名列表可以看到购买的域名

②点击解析

③配置一条A记录,指向www.域名

点击添加记录

然后配置A记录

这样你就可以通过访问域名来访问你的网址,不过前提是你已经对你的域名进行备案了,可以点击首页的ICP备案进行备案,具体备案方法可以去百度查找

4.SSL配置

环境:docker+apache+阿里

网上的SSL配置大多数是通过宝塔面板进行搭建,不过博客主想试一下不用宝塔面板进行搭建,下面是具体搭建的流程,如果有哪里不对可以私信我

4.1.找到SSL配置的地方

4.2.购买SSL证书

阿里云允许每年免费购买20个证书资源包,每个的期限一年,只支持单个完整的域名

之后它会自动创建一条dns域名解析,并点击确认即可。过几分钟就会申请成功

4.3.部署SSL

reference:https://cloud.tencent.com/developer/article/1354275

https://www.cnblogs.com/it-tsz/p/13222773.html

阿里云支持直接将SSL部署到阿里云的应用上,但配置web服务是不支持的,须手动进行配置(这里是apache配置)

①下载SSL证书

②进入docker容器,开启ssl服务

apt-get install openssl #安装,若已经安装可以执行下面指令开启
a1enmod ssl  或者  a2enmod ssl #开启ssl服务

如果开启成功后会在/etc/apache2/sites-available目录下生成一个default-ssl.conf文件,sites-enabled下同理也会生成一个

default-ssl.conf文件,不过它是软连接sites-available/default-ssl.conf文件的,修改哪一个都一样。

③上传SSL证书

从阿里云上下载的SSL证书有三个文件,如下:

把文件上传到容器里面,哪一个路径都行,我这里是上传到/etc/apache2/ssl目录,自己创建一个ssl目录

④修改/etc/apache2/sites-available/default-ssl.conf配置文件

查看apache2/sites-enabled目录下是否存在default-ssl.conf,
查看apache2/mods-enabled目录下是否存在ssl.conf、ssl.load
如果存在,那就说明没问题了,如果不存在的话,从相应的sites-available目录下软链接复制进去。

link  -s /etc/apache2/sites-available/default-ssl.conf  /etc/apache2/sites-enabled/default-ssl.conf 

需要修改的地方一共有五个:

ServerName www.fireee.top #改成你自己设置SSL服务的域名
SSLEngine on 
#配置证书的路径,第三个可能被注释掉了,去掉注释
SSLCertificateFile /etc/apache2/ssl/7120225_www.fireee.top_public.crt
SSLCertificateKeyFile /etc/apache2/ssl/7120225_www.fireee.top.key
SSLCertificateChainFile  /etc/apache2/ssl/7120225_www.fireee.top_chain.crt

⑤修改/etc/apache2/mods-available/ssl.conf配置文件

需要修改的地方有三处:

SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
SSLProtocol all -SSLv2 -SSLv3

具体修改的内容可参考阿里云的帮助文档

到这里SSL证书就算配置完成了,不过如果你的网站可能会出现这个图标

原因是你原先上传的一些图片还没有使用https协议,依旧是http,修改的方法有几种

  • 第一种:修改数据库,把所有图片的地址从http换成https

最好先备份一下数据库,防止出错。

UPDATE wp_posts SET post_content = replace(post_content, 'http://www.fireee.top/wp-content/uploads','https://www.fireee.top/wp-content/uploads');
  • 第二种:到wordpress后台直接修改用到图片的地址(建立在使用图片较少的情况)

打开浏览器的开发者工具(F12),进入console界面,刷新网页,如果有图片依旧使用http,这里是可以看到的,若没有则表明全部换成https。一般是你的背景图片啥的。

⑥重启服务器,重新加载配置文件

sudo a2ensite default-ssl.confsudo service apache2 reload

 

4.4.增加443端口

如果你的docker镜像使用的时候还未增加443端口映射,就需要增加,方法如下:

①查看wordpress的dockers容器ID

②找到改容器的配置文件,一般在/var/lib/docker/containers目录下

我这里是

/var/lib/docker/containers/4c115f8960210787d374e434bf0e83425f814e25c8e1f108b77e432b44e9fc63

③停止docker服务

service docker stop

④修改hostconfig.json文件

先备份一下

cp hostconfig.json hostconfig.json_bak

修改内容如红色方框所示:

"PortBindings":{"443/tcp":[{"HostIp":"","HostPort":"443"}],"80/tcp":[{"HostIp":"","HostPort":"80"}]}

⑤修改config.v2.json文件

cp config.v2.json config.v2.json_bak

修改内容如下:

"ExposedPorts":{"443/tcp":{},"80/tcp":{}}“Ports":{"443/tcp":[{"HostIp":"0.0.0.0","HostPort":"443"},{"HostIp":"::","HostPort":"443"}],"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"80"},{"HostIp":"::","HostPort":"80"}]}

⑥开启docker

systemctl start docker

⑦防火墙开启443端口,TCP协议

 

4.5.把http强制转换成https

这里可以直接在wordpress上下载插件Easy HTTPS (SSL) Redirection

也可以改下apache的配置文件

修改/etc/apache2/sites-available/000-default.conf 配置文件

RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R=301]

然后重启apache服务即可

然后访问自己的页面看看效果

5.优化wordpress

这里推荐两个插件WPJAM BASICreSmush.it Image

前者可以关掉一些不必要的功能,后者使用来压缩图片(可能由于图片太大,导致加载页面的时候图片完全显示出来需要花费一定的时间)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!