"环境准备 安装 JDK,版本至少需要 JDK 8 安装 MySQL,版本至少需要 5.7,建议用 8 安装 Tomcat,版本至少需要 9 安装 Maven,下载解压后设置 bin 目录到 PATH 环境变量中 编译项目 拉源码 git clone https://github.com/b3log/symphony.g .."

Sym 安装指南

环境准备

  1. 安装 JDK,版本至少需要 JDK 8
  2. 安装 MySQL,版本至少需要 5.7,建议用 8
  3. 安装 Tomcat,版本至少需要 9
  4. 安装 Maven,下载解压后设置 bin 目录到 PATH 环境变量中

编译项目

  1. 拉源码 git clone https://github.com/b3log/symphony.git
  2. 按需修改 src/main/resources/local.properties 中的数据库口令配置
jdbc.username=root
jdbc.password=
  1. 执行 mvn install 编译打包,完成后在 target 目录下将生成 symphony.war

部署

  1. 手动新建数据库 b3log_symphony,字符集用 utf8mb4,排序规则 utf8mb4_general_ci
  2. 将 war 包部署到 Tomcat/Jetty 的 webapps 目录下,然后启动服务器,注意查看 logs 目录下的日志情况
  3. 浏览器访问 http://localhost:8080/symphony
  4. 默认的管理员账号为 admin/admin

细节说明

  1. 数据库表会在第一次启动时自动创建
  2. 端口、访问路径等配置请参考 Latke 配置剖析
  3. 生产环境建议使用 NGINX 进行反向代理,并需要配置好 WebSocket 代理
  4. 千万不要手动修改数据库,否则可能会引发各种莫名其妙的问题

环境变量

配置文件 latke.props、local.props 以及 sym.props 支持通过环境变量指定文件路径:

常用配置

完整的配置项说明请参考 Sym 配置项说明(请注意该文档中提到的生产环境配置必须修改,否则可能存在安全隐患)

NGINX 示例

Sym 的回帖实时推送用了 WebSocket 技术,所以也需要对其配置反代。下面的示例仅供参考:

upstream backend_symphony {
    server localhost:8081;
}

map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}

server {
    listen       80;
    server_name  hacpai.com;

    location / {
        proxy_pass http://backend_symphony$request_uri;
        proxy_http_version 1.1;
        proxy_set_header  Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}

技术资料

FAQ

部署后界面样式乱了

F12 看下网络请求,然后参考这里修改配置。

修改模版不生效

Tomcat 中需要在 server.xml 中加入 reloadable="true",比如:

<Context docBase="symphony" path="/symphony" reloadable="true"/> 

Logo 修改

方法一:src/main/webapp/js/symbol-defs.js 中修改 <symbol id="logo"...</symbol> 为对应的 svg 方法二:src/main/webapp/skins/classic/header.ftlsrc/main/webapp/skins/mobile/header.ftl 中修改 <svg><use xlink:href="#logo"></use></svg> 为对应的图片

更好的 Markdown 渲染

Sym 默认是使用内建的 flexmark 进行 md 渲染,可能对有的场景下的渲染效果不是很好。如果你想要获得更好的 md 渲染效果请参考这里

关于版本升级

  1. 参考 CHANGE_LOGS 进行代码合并
  2. 留意 sym.props 配置项的增减
  3. 留意 repository.json 数据库表结构变更

使用授权

Sym 有两个版本:

关于商业版和社区版的对比请看这里,企业网站、经营性网站、以营利为目的或实现盈利的网站请购买商业版。

  • Sym

    Sym 是一个用 Java 实现的现代化社区(论坛 / 社交网络 / 博客)平台,“下一代的社区系统,为未来而构建”。黑客派就是使用该系统搭建的 ❤️

    350 引用 • 3791 回帖 • 640 关注
  • 安装

    你若安好,便是晴天。

    47 引用 • 705 回帖 • 1 关注
  • 部署
    18 引用 • 285 回帖
  • 文档
    48 引用 • 861 回帖
感谢    关注    收藏    赞同    反对    举报    分享
优质回帖
  • 88250  

    请仔细看文档,需要使用 Tomcat9

  • 88250  

    看下 repository.json,里面有定义。

  • 88250  

    应该是 mvn 打包不对引起的。

165 回帖    
请输入回帖内容...
  • 88250            

    没测试过,可能不支持吧,你换个驱动可能就行了。

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • ifnot            

    重装了个 5 就行了😄

    感谢    赞同    反对    举报    分享       回复
  • Andy123      

    抱歉,没仔细看说明

    感谢    赞同 1    反对    举报    分享       回复
  • IceBlue      

    imagepng

    imagepng

    第一次运行,在建表时,报这个错,什么情况…

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    代码有问题,不好意思。更新一下代码,然后你手动删一下已经建的表,重新启动。

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • IceBlue            

    好了,谢谢!

    感谢    赞同    反对    举报    分享       回复
  • dev1      

    数据库表的注释乱码, 是怎么回事呢?

    PNG

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    建库用 utf8mb4

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • dev1            

    用的是 utf8mb4. 表里面的内容不会有乱码,就是注释是乱码。 影响理解阅读。。😂

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    你看下 repository.json 吧

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • dev1            

    还是有点奇怪。 我 mvn 编译后的 repository.json 文件里都没有中文乱码了。 但数据库的注释还是乱码

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    库删了重新初始化试试。

    感谢    赞同    反对    举报    分享       回复
  • panlian345      

    🙏

    感谢    赞同    反对    举报    分享       回复
  • linker      

    我部署在服务器上, 但是资源加载不到:

    imagepng @88250 是不是要在哪里配置下域名??

    1 回复 
    感谢    赞同    反对    举报    分享       回复
  • 88250            

    参考这里 Latke 配置剖析

    感谢    赞同    反对    举报    分享       回复
请输入回帖内容...