周末闲来无事,研究研究wordpress的静态化
众所周知,静态化好处多多,就突发奇想,弄个静态化的镜像站
需要使用的插件2个插件:WP-super-cache 和Baidu-sitemap,前者用来生成缓存,后者用来生成网站sitemap
张戈那有代码版的WP-super-cache 和sitemap,可以去看看
到这里,基本思路就有了
- 生成sitemap
- 用脚本基于sitemap生成预缓存
- 提取并整理缓存
1.插件的安装
WP-super-cache直接在线安装即可
Baidu-sitemap网上一搜一堆(已使用php脚本动态生成)
2.预缓存脚本
虽然WP-super-cache有预缓存功能,但只能生成文章页面的,主页和目录无法生成,所以需要写个简单的脚本
脚本没什么说得,简单易懂
#/bin/bash
URL=blog.luckinserver.cn:88
wget -O /script/cache_update/sitemap.xml https://blog.luckinserver.cn:88/sitemap.xml
sed -i "s|http://$URL|https://$URL|g" /script/cache_update/sitemap.xml
sed -i 's/<loc>/\n<loc>/g' /script/cache_update/sitemap.xml
for url in $(awk -F"<loc>|</loc>" '{print $2}' /script/cache_update/sitemap.xml)
do
wget -O /dev/null --no-check-certificate $url
sleep 1
done
3.缓存处理脚本
到这里缓存已经生成了,提取出来后观察整理,发现需要改的地方还挺多,主要以下几点:
- 修改主页
- 主页中文章的链接
- 主页中目录的链接
- 修改目录页
- 目录中文章的链接
- 目录中目录的链接
- 目录中主页的链接
- 修改文章页
- 文章中目录的链接
- 文章中主页的链接
- 整理目录结构
乍看之下还挺多的,直接上脚本吧,写的不好,以后有能力再优化
#wordpress全静态化脚本
#作者liu177,luckinserver.cn
#--------------------------------------------------------------------------------
#!/bin/bash
ORIGIN_URL=https://blog.luckinserver.cn:88
NEW_URL=https://mirror.luckinserver.cn
WORK_DIR=/volume1/web/temp/static/wordpress
TEMP_DIR=/volume1/web/temp/static_temp/wordpress
mkdir -p $WORK_DIR
mkdir -p $TEMP_DIR
mv $TEMP_DIR/index-https.html $TEMP_DIR/index
sed -i "s|https://luckinserver.cn|$NEW_URL|g" $TEMP_DIR/index
sed -i "s|$ORIGIN_URL/wp-content/uploads|$NEW_URL/wp-content/uploads|g" $TEMP_DIR/index
ls $TEMP_DIR > $TEMP_DIR/list.txt
sed -i "/index/d" $TEMP_DIR/list.txt
sed -i "/list.txt/d" $TEMP_DIR/list.txt
cat $TEMP_DIR/list.txt | grep -v '.html' | while read DIC_NAME1;do
{
sed -i "s|https://luckinserver.cn|$NEW_URL|g" $TEMP_DIR/$DIC_NAME1/index-https.html
sed -i "s|$ORIGIN_URL/$DIC_NAME1|$NEW_URL/$DIC_NAME1.html|g" $TEMP_DIR/index
sed -i "s|$ORIGIN_URL/wp-content/uploads|$NEW_URL/wp-content/uploads|g" $TEMP_DIR/$DIC_NAME1/index-https.html
cat $TEMP_DIR/list.txt | grep -v '.html' | while read DIC_NAME2;do
{
sed -i "s|$ORIGIN_URL/$DIC_NAME2|$NEW_URL/$DIC_NAME2.html|g" $TEMP_DIR/$DIC_NAME1/index-https.html
}
done
cat $TEMP_DIR/list.txt | grep '.html' | while read ACT_NAME;do
{
sed -i "s|https://luckinserver.cn|$NEW_URL|g" $TEMP_DIR/$ACT_NAME/index-https.html
sed -i "s|$ORIGIN_URL/$DIC_NAME1|$NEW_URL/$DIC_NAME1.html|g" $TEMP_DIR/$ACT_NAME/index-https.html
sed -i "s|$ORIGIN_URL/$ACT_NAME|$NEW_URL/$ACT_NAME|g" $TEMP_DIR/$DIC_NAME1/index-https.html
sed -i "s|$ORIGIN_URL/$ACT_NAME|$NEW_URL/$ACT_NAME|g" $TEMP_DIR/index
sed -i "s|$ORIGIN_URL/wp-content/uploads|$NEW_URL/wp-content/uploads|g" $TEMP_DIR/$ACT_NAME/index-https.html
}
done
}
done
cat $TEMP_DIR/list.txt | grep '.html' | while read ACT;do
{
mv $TEMP_DIR/$ACT/index-https.html /$WORK_DIR/$ACT
}
done
cat $TEMP_DIR/list.txt | grep -v '.html' | while read DIC;do
{
mv $TEMP_DIR/$DIC/index-https.html /$WORK_DIR/$DIC.html
}
done
把这2个脚本配合定时任务使用即可
源站为https://”blog.luckinserver.cn:88″ #去掉引号,防替换
镜像站为https://mirror.luckinserver.cn
反向代理站为https://”luckinserver.cn” #去掉引号,防替换