wordpress

wordpress半静态

admin · 9月6日 · 2020年

周末闲来无事,研究研究wordpress的静态化

众所周知,静态化好处多多,就突发奇想,弄个静态化的镜像站

需要使用的插件2个插件:WP-super-cache 和Baidu-sitemap,前者用来生成缓存,后者用来生成网站sitemap

张戈那有代码版的WP-super-cache 和sitemap,可以去看看

到这里,基本思路就有了

  1. 生成sitemap
  2. 用脚本基于sitemap生成预缓存
  3. 提取并整理缓存

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.缓存处理脚本

到这里缓存已经生成了,提取出来后观察整理,发现需要改的地方还挺多,主要以下几点:

  1. 修改主页
    1. 主页中文章的链接
    2. 主页中目录的链接
  2. 修改目录页
    1. 目录中文章的链接
    2. 目录中目录的链接
    3. 目录中主页的链接
  3. 修改文章页
    1. 文章中目录的链接
    2. 文章中主页的链接
  4. 整理目录结构

乍看之下还挺多的,直接上脚本吧,写的不好,以后有能力再优化

#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” #去掉引号,防替换