Sym 安装指南

本贴最后更新于 345 天前,其中的信息可能已经渤澥桑田

本文档主要面向 Sym 社区版开发者,商业版采购后有单独的开发指南提供。

数据库

数据库准备好后可选择如下方式部署。

源码编译

后端

  1. 拉源码 git clone https://github.com/88250/symphony.git
  2. 按需修改 src/main/resources/local.properties 中的数据库口令配置
    jdbc.username=root  
    jdbc.password=  
    
  3. 执行 mvn package 编译打包,完成后会生成 target/symphony 目录
  4. 在 symphony 目录下执行:
    • Windows: java -cp "lib/*;." org.b3log.symphony.Server
    • Unix-like:java -cp "lib/*:." org.b3log.symphony.Server

也可以下载我们打好的包解压后在根目录通过以上命令启动;在 IDE 中的话可以直接运行 Server.java

前端

  1. 下载 node
  2. 根目录命令行运行
    npm i
    
  3. 开发时运行,以便调试
    npm run dev
    
  4. 部署前运行,以便进行代码合并和压缩
    npm run build
    

Docker

  1. 拉镜像 docker pull b3log/symphony
  2. 启动容器
    docker run --detach --name sym --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/symphony?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
        b3log/symphony --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=
    

启动参数说明:

完整启动参数的说明可以使用 -h 来查看。另外,sym.props 配置文件请用挂卷方式覆盖容器内的配置文件。

细节说明

  1. 数据库表会在第一次启动时自动创建,管理员账号 admin/admin
  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 看下网络请求,然后参考这里修改配置。

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 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台,“下一代的社区系统,为未来而构建”。

    489 引用 • 4455 回帖 • 651 关注
  • 安装

    你若安好,便是晴天。

    105 引用 • 1153 回帖 • 1 关注
  • 部署
    20 引用 • 274 回帖
  • 文档
    54 引用 • 1241 回帖 • 1 关注
5 操作
88250 在 2019-11-12 10:07:23 更新了该帖
88250 在 2019-11-07 23:27:35 更新了该帖
88250 在 2019-11-06 20:05:21 更新了该帖
88250 在 2019-11-06 20:03:15 更新了该帖 88250 在 2019-11-06 19:56:16 更新了该帖

赞助商 我要投放

优质回帖
  • 88250 1 赞同
    作者

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

  • 88250 1 赞同
    作者

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

  • Andy123 1 赞同

    抱歉,没仔细看说明

166 回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 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
    作者
  • LIU-LIU-LIU

    如何通过 Tomcat 部署,我把 pom.xml 里面改成 war 成功打包部署到 Tomcat 后报错

    
    09-Sep-2020 16:24:17.551 严重 [main] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
    09-Sep-2020 16:24:17.556 严重 [main] org.apache.catalina.core.StandardContext.startInternal Context [/symphony] startup failed due to previous errors
    09-Sep-2020 16:24:17.568 信息 [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/tomcat/webapps/symphony.war] has finished in [2,252] ms
    

    如果不能部署到 Tomcat 的话使用 java -cp "lib/*:." org.b3log.symphony.Server 启动如何设置监听端口和地址呢。

    萌新一个 大佬赐教

    1 回复
  • 88250
    作者

    你好,现在的版本已经不支持部署到 Tomcat 了。端口监听方面请看启动参数说明 -h

请输入回帖内容 ...