0 前言
库存博客之 Roller 博客系统的搭建过程,虽然 Roller 已经老土到快要过时,但是捯饬捯饬还是挺实用的。没办法,就是喜欢这种古老而又精致的东西。也就是因为 Roller 没有那么多花里花哨的功能,才会更稳定更简单,方便部署、使用和运维。
1 准备资源
- 购买一个 centos6 的 ECS 和一个你喜欢的域名(顺带给老东家的阿里云打个广告) 点击这里
- 下载 RedHat6 的 MySQL5.7 的 RPM 包 点击这里
- 下载 Tomcat9 点击这里
- 下载 Roller5 点击这里
2 部署数据库
1 解压下载的文件后,依次安装下列安装包
#把下载的文件传输到 ECS
scp xxx.rpm xxx.zip root@1.1.1.1:/root/
#安装 rpm 包
rpm -i mysql-community-common-5.7.xxx.el6.x86_64.rpm
rpm -i mysql-community-client-5.7.xxx.el6.x86_64.rpm
rpm -i mysql-community-server-5.7.xxx.el6.x86_64.rpm
注:xxx 代表小版本号,需要您根据实际版本号进行替换,后面不在重复提醒。
2 安装后初始化和启动 mysql 的步骤是
#初始化数据库文件
mkdir /mysql
cd /mysql && mkdir data log tmp run
mysqld --initialize-insecure --user=mysql --basedir=/mysql --datadir=/mysql/data --innodb-data-file-path='ibdata1:1G;ibdata2:16M:autoextend' --innodb-log-file-size=512M
chown -R mysql:mysql /mysql
#数据库配置
vim my.cnf #详细内容见文章最后的附注
#启动数据库
/bin/sh /usr/bin/mysqld_safe --defaults-file=/mysql/my.cnf --read_only=0 &
3 初始化数据库
#登陆数据库
mysql --socket=/mysql/run/mysql.sock -uroot
#执行建库和授权 sql
create database rollerdb character set utf8mb4; #设置为 utf8mb4 才能支持表情字符哦 😋
grant all on rollerdb.* to rollerdb@'%' identified by 'xxx';
grant all on rollerdb.* to rollerdb@'LOCALHOST' identified by 'xxx';
flush privileges;
3 部署 tomcat
1 解压文件
#安装 java
yum install java-1.8.0-openjdk.x86_64
#解压下载的 tomcat
unzip apache-tomcat-9.xxx.zip
mv apache-tomcat-9.xxx /
2 修改配置文件
#把默认的 8080 端口改为 80 端口
sed -i "s/8080/80/g" /apache-tomcat-9.xxx/conf/server.xml
3 运行
cd /apache-tomcat-9.xxx/bin
sh startup.sh # shutdown.sh 是关闭脚本
# 检查是否有 tomcat 进程运行
ps aux | grep tomcat
# 启动成功后浏览器打开你自己的域名,就可以看到 tomcat 的欢迎页面。
# 如果出现问题,可以在 /apache-tomcat-9.xxx/logs 中寻找线索,看不懂的当我没说
4 安装 roller
1 准备配置文件
mkdir /rollerdata
vim /apache-tomcat-9.xxx/lib/roller-custom.properties #详细内容见文章最后的附注
2 部署
#解压文件
unzip roller-release-5.1.2-standard.zip
#部署文件,roller 依赖的三个 jar 包可以 google 下载
cp roller-release-5.1.2/webapp/roller.war /apache-tomcat-9.xxx/webapps/
cp mysql-connector-java-5.1.xxx.jar mail.jar activation.jar /apache-tomcat-9.xxx/lib/
#稍等片刻 /apache-tomcat-9.xxx/webapps 中会出现一个 roller 目录
cd /apache-tomcat-9.xxx/webapps
mv ROOT tomcat_home
mv roller ROOT
rm roller.war
sh /apache-tomcat-9.xxx/bin/shutdown.sh
sh /apache-tomcat-9.xxx/bin/startup.sh
3 现在就可以打开你的域名进行启动并使用 Roller 了,按照提示一步步进行初始化,初始化过程中如果遇到报错,可以重启 tomcat 后重试。完成之后,你就拥有了一个自己的博客系统,幻想以后大红大紫的一天,广告商们追在你屁股后面塞钱的场景,是不是开始有点小激动。
5 优化
1 我选择使用了 gaurav 主题后,发现很多地方并没有彻底的汉化,半中半英的显示让人有吃苍蝇的感觉。
#修改主题文案
cd /apache-tomcat-9.xxx/webapps/ROOT/themes/gaurav
grep *.vm "Welcome" #搜索需要修改的文案
sed -i "s/Welcome/欢迎订阅/g" entry.vm #替换为自己想要的文案
#重启 tomcat
2 老的分享按钮都是一些不太认识的国外网站,可以通过修改 themes/entry.vm 文件来,替换 sidebar_content 中的内容来实现分享到微信朋友圈等国内主流社交平台。
vim 打开 entry.vm ,定位到 <div id="sidebar_content" class="col-lg-4">,
修改里面的内容,把外国网站替换为下列代码`。
<div id="ckepop">
<a class="jiathis_button_weixin">微信</a>
<a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
<a class="jiathis_counter_style"></a> </div>
<script type="text/javascript" src="http://v3.jiathis.com/code/jia.js?uid=1" charset="utf-8"></script>
</div>
6 配合使用 MarkDown 和 OSS
- 编辑器选择 Xinha 后,可以配合 MarkDown 来实现方便的文章编辑,只需要把编辑后的 HTML 内容复制到 Roller 的编辑框即可。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lT8nZM3g-1633408146297)(http://114.215.30.221/main/mediaresource/499fc5a7-83dc-47e9-8b7f-0f241dee4e87)]
- 用 Roller 直接管理图片文件,一个一个上传实在麻烦,并且图片太浪费流量,图片如果太多有太浪费空爱你,买更高配的 ECS 又不划算。可以通过购买阿里云的 OSS 来解决这个问题。
- OSS 命令行接口使用简单,可以很方便的把图片批量上传。
- OSS 支持灵活的单独通过流量计费。
- OSS 中的数据是有冗余的,不用怕机器坏掉之后图片丢失。MySQL 中的数据也可以在 OSS 上面定时备份。
- 如果有需要,可以配套使用 CDN 来提高图片的访问性能。
- 缺点就是,费钱!费钱!费钱!
7 附注
- my.cnf
[mysqld_safe]
pid-file=/mysql/run/mysqld.pid
[mysql]
port=3306
prompt=\\u@\\d \\r:\\m:\\s>
default-character-set=utf8mb4
[mysqld]
basedir=/mysql
datadir=/mysql/data
tmpdir=/mysql/tmp
lc_messages_dir=/usr/share/mysql
log-error=/mysql/log/alert.log
slow_query_log_file=/mysql/log/slow.log
general_log_file=/mysql/log/general.log
socket=/mysql/run/mysql.sock
#innodb
innodb_data_home_dir=/mysql/data
innodb_log_group_home_dir=/mysql/data
innodb_data_file_path = ibdata1:1G;ibdata2:16M:autoextend
innodb_log_file_size=512M
innodb_log_buffer_size=200M
innodb_buffer_pool_size=256M
#myisam
concurrent_insert=2
delayed_insert_timeout=300
#binlog
log-bin=/mysql/log/mysql-bin
#server
default-storage-engine=INNODB
character-set-server=utf8mb4
server_id=2573750487
- roller-custom.properties
installation.type=auto
mediafiles.storage.dir=/rollerdata/mediafiles
search.index.dir=/rollerdata/searchindex
log4j.appender.roller.File=/rollerdata/roller.log
database.configurationType=jdbc
database.jdbc.driverClass=com.mysql.jdbc.Driver
database.jdbc.connectionURL=jdbc:mysql://localhost:3306/rollerdb?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8
database.jdbc.username=rollerdb
database.jdbc.password=xxx
mail.configurationType=properties
mail.hostname=smtp.126.com
mail.username=wzdboy@126.com
mail.password=xxx