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

Sym 安装指南

环境准备

  1. 安装 JDK,版本至少需要 JDK 8
  2. 安装 MySQL,版本至少需要 5.7,建议用 8
  3. 安装 Jetty,版本至少需要 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 包部署到 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 中

war 包中删除 WEB-INF/classes/org/b3log/symphony/Starter.class 以及 WEB-INF/lib/jetty-*.jarwebsocket-*.jarjavax-websocket-*.jar 后再部署即可。

修改模版不生效

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 数据库表结构变更

使用授权

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

欢迎联系 QQ 845765 或邮箱 d@b3log.org 进行细节咨询。

  • Sym

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

    381 引用 • 3945 回帖 • 645 关注
  • 安装

    你若安好,便是晴天。

    49 引用 • 746 回帖
  • 部署
    18 引用 • 285 回帖
  • 文档
    50 引用 • 905 回帖 • 1 关注
感谢    关注    收藏    赞同    反对    举报    分享
优质回帖
  • 88250  

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

  • 88250  

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

  • 88250  

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

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

    占个沙发

    感谢    赞同    反对    举报    分享       评论    回复
  • alanfans      

    tomcat9?

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

    嗯,Jetty 9 也行

    感谢    赞同    反对    举报    分享       评论    回复
  • 545676500      

    大神,厉害

    感谢    赞同    反对    举报    分享       评论    回复
  • meikaiyipian      

    不知道内存方面耗用如何

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

    200 人在线下大致消耗 450M 内存

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • royburns            

    然后呢,每增加 100 人,大概增加多少内存,200 人 450M 的内存有点大,但是如果增幅小,也还好

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

    估计压力不大,等在线人数多一点的时候我观察一下

    感谢    赞同    反对    举报    分享       评论    回复
  • DM      

    这个对 WEB 容器有要求吗?用 WAS 可以不?

    感谢    赞同    反对    举报    分享       评论    回复
  • DM      

    对 IE 支持不是很好啊。我用的是 IE11,点击回帖按钮,无法弹出回帖框,而且点击隐藏按钮无法隐藏回帖框。

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

    支持 WebSocket 的 Servlet 容器应该都行,最好就用 Tomcat 或者 Jetty 吧,其他没有测试过;
    浏览器的话不支持 IE 系列,目前支持 Chrome 和 Firefox

    感谢    赞同    反对    举报    分享       评论    回复
  • royburns      

    D 大
    1. ssd 比机械硬盘,对服务器的性能提高多少?
    2. solo 有缓存机制吗,如果我用机械硬盘服务器,能否用 redis 或者 mongedb 来提升机械硬盘带来的性能损耗

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

    1. 不好估计..
    2. 肯定可以的嘛,只是好像没这个必要

    感谢    赞同    反对    举报    分享       评论    回复
  • xzy      

    http://35.165.100.173:8080/symphony/admin 只是小白,想做个社区,可最后。。为什么会这个样子,是哪没弄对么 和 https 有关么 77a5925917ad4fef87201cf54c195875.png

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

    社区搜索 latke 配置

    感谢    赞同    反对    举报    分享       评论    回复
  • conanca      

    如何玩转 icon.properties?
    比如我想改个 logo

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

    找个在线转 svg 的

    感谢    赞同    反对    举报    分享       评论    回复
  • kz      

    这 nginx 的配置能给个,范例吗,现在 ws 的不能使用

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

    搜一下吧,NGINX 代理 WS 的很多嘛

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • kz            

    试了一些,都不好用

    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy      

    改配置后 mvn install 无法打包 … org.b3log latke-repository-mysql ${latke.version} … 报错 我把 ${latke.version} 改成 2.3.8 后可以打包 但打包完运行又出错 启动不起来 tomcat?

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

    拉一下 latke 的代码构建一下吧

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy            

    不太明白? latke 的配置没动 用的本地服务器

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

    我的意思是你本地构建一下 latke 就行

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy            

    已经搞定
    :smile:
    谢谢 D 大

    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy      

    为什么在 linux 服务器商部署无法上传头像 无法发送邮件 是不是 ./upload/ 目录不能这么写?

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

    看下是不是权限问题

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy            

    生产环境的 WebSocket 代理怎么设置?websocket.scheme=ws 这个不行吗?

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

    搜索一下 NGINX 文档

    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy      

    本地安装的 sym 活动里的 ‘字’这个功能怎么提交了是 undefin ?不知道怎么实现的 需要配置吗

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

    需要安装 tesseract

    感谢    赞同    反对    举报    分享       评论    回复
  • zjhch123      

    tomcat 都 9 了,Java9 还远吗!

    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy      

    D 大,将中文转 Unicode 工具你是用的什么啊?我直接用网上的它把符号也给替换了

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

    IDE 自带的

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy            

    收到!ok 了 👌

    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy      

    D 大 主题颜色怎么设置的?上个版本蓝色挺好看的,是去 bass.css 调吗? 😐

    2 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • 88250            

    我帮你 @Vanessa

    感谢    赞同    反对    举报    分享       评论    回复
  • Vanessa   1 感谢            

    symphony/src/main/webapp/scss/_variables.scss 中 修改 theme 即可

    2 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy            

    好的 ~ 看到了 🌹 🌹

    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy            

    337df01b09b44a03994ea4368e42a75e-asd.png

    试了 ,好像还是不行 ~

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Vanessa            

    要 npm install && gulp

    2 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy            

    了解!

    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy      

    0e43421ab368491f83caffbc2593b450-image.png

    怎么实现这个搜索功能的?

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

    搜索一下吧

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy            

    D 大真的是秒回啊 👍。ok 了 可是里面的 search hacpai 文字在哪里设置的??没有找到

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

    全局搜索吧

    感谢    赞同    反对    举报    分享       评论    回复
  • daxiahy            

    安装 gulp 后还是没有 作用 可以详细请教以下吗?这个前端框架不太懂

    1 回复 
    感谢    赞同    反对    举报    分享       评论    回复
  • Vanessa            

    你在根目录下面运行 npm install && gulp 就可以了

    感谢    赞同    反对    举报    分享       评论    回复
  • pwijkbije      

    为什么要上传头像才能发帖。而且上传了头像,还是提示要上传头像
    64510af0aee7495bbd0dc0f317ed698f-image.png

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

    现在应该没问题了吧?

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