目錄
- 1. Docker 部署
- 2. 日志配置
- 3. Nginx 反向代理
Solo 是一款小而美的開源博客系統,專為程式員設計,Solo 有著非常活躍的社區,可將文章作為帖子推送到社區,來自社區的回帖將作為博客評論進行聯動
總的來說,這款博客框架還不錯,社區也在不斷的完善,最重要的是使用Java寫的,像流行的Hexo、Hugo等博客框架都是靜態博客,沒有后臺啥的,主要發表的文章是Markdown轉HTML格式的形式發表的,但solo是有后臺管理的,與Jpress有些相似,
- 官網:https://b3log.org/solo,一般安裝一套博客框架最重要的是看懂官方給的檔案,雖然有些時候看完了,但安裝遇到的問題卻是“奇行八怪”,我這里就準備寫個教程,當做“踩坑”日記來看看也還是不錯的,
- 本地運行主要用于試用或者生成靜態站點
1. Docker 部署
- Docker 方式部署是動態博客用法,主要用于在服務器上部署動態博客,
- 有關學習Docker的常用命令及了解:https://blog.csdn.net/qq_41684621/category_9701814.html
- 獲取最新鏡像
docker pull b3log/solo
- 啟動容器
- 注意:對于如下命令,如果你不確定如何使用 \ 來進行換行,就不要換行了,一行內寫完整條命令,
- 使用 MySQL
- 手動建庫(庫名 solo ,字符集使用 utf8mb4 ,排序規則 utf8mb4_general_ci ):
create database solo default character set utf8mb4 collate utf8mb4_general_ci;
create user 'root'@'127.0.0.1' identified by '123456';
grant all privileges on *.* to 'root'@'127.0.0.1';
flush privileges;
- 打開服務器上的mysql,一條一條執行即可
- 注意:上面的密碼指mysql的
root用戶密碼 - 啟動容器:

docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="123456" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" \
b3log/solo --listen_port=6000 --server_scheme=http --server_host=localhost --server_port=
- 啟動引數說明:
--listen_port:行程監聽埠,可以自定義修改
--server_scheme:最終訪問協議,如果反代服務啟用了 HTTPS 這里也需要改為 https
--server_host:最終訪問域名或公網 IP,不要帶埠
--server_port:最終訪問埠,使用瀏覽器默認的 80 或者 443 的話值留空即可
完整啟動引數的說明可以使用 -h 來查看, - 注意:
JDBC_PASSWORD也是指云服務器上mysql的root用戶密碼 - 注意
--listen_port,我這邊設定監聽的埠號是6000,官方給的是8080埠,因為我這邊服務器上的8080埠已經被Tomcat占用了,所以放行6000埠的防火墻,也可以自定義其他埠號(在不沖突的情況下,也就是確定沒有其他行程在使用),開啟防火墻埠號的命令如下:
firewall-cmd --zone=public --add-port=6000/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
- 也要在服務器上的安全組上放行
6000埠 - 執行啟動容器后,可以使用如下命令觀察容器行程的變化
docker ps -a
- 也可以使用列印solo的日志來觀察時候安裝成功
docker logs solo
- 當看到這條日志時,表示solo正在創建表和初始化

2. 日志配置
- 默認通過
log4j2將日志列印到標準輸出流,可以通過docker logs solo進行查看,如果需要覆寫log4j配置,可通過掛載檔案實作:
--volume ~/log4j2.xml:/opt/solo/log4j2.xml
- 掛載第三方皮膚
如果需要使用第三方皮膚,可以掛載目錄skins,目錄結構請參考原版skins:
--volume ~/skins/:/opt/solo/skins/
3. Nginx 反向代理
- 在nginx的安裝目錄conf檔案夾下的
nginx.conf檔案添加如下:
upstream backend {
server localhost:6000; # Solo 監聽埠
}
server {
listen 80;
server_name solo.xdr630.com; # 博客域名
access_log off;
location / {
proxy_pass http://backend$request_uri;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 10m;
}
}
- 這邊監聽的
6000埠號就是上面solo行程所需要的的埠號 - 添加完成后多載配置使其生效
nginx -s reload
-
接著訪問登錄后臺就可以使用了:http://solo.xdr630.com/

-
可以看到,主題還是比較多的,也可以在設定移動端的皮膚,或添加看板娘之類的,

-
有關更細致的對solo博客的了解請訪問官網,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/252450.html
標籤:Java
上一篇:ArrayList詳解
