# 在 Linux(CentOS) 中运行 SS CMS

本文我们将以 CentOS 为主示范如何在 Linux 操作系统中部署并安装 SS CMS 系统,其他 Linux 版本系统安装步骤基本一致。

# 1、安装.NET Core 运行时

提示

SSCMS 支持 CentOS 7 和 CentOS 8,由于 CentOS 7 使用 Yum 作为包管理器,CentOS 8 使用 DNF,请根据操作系统版本分别运行以下命令。

# CentOS 7

安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加 Microsoft 包存储库。 打开终端并运行以下命令:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

安装运行时

.NET Core 运行时允许运行使用不随附运行时的 .NET Core 所开发的应用。 以下命令安装 ASP.NET Core 运行时,这是与 .NET Core 最兼容的运行时。 在终端中,运行以下命令。

sudo yum install aspnetcore-runtime-3.1 -y

# 验证dotnet core runtime是否安装成功
dotnet

# CentOS 8

.NET Core 3.1 在 CentOS 8 的默认包存储库中提供。

安装运行时

.NET Core 运行时允许运行使用不随附运行时的 .NET Core 所开发的应用。 以下命令安装 ASP.NET Core 运行时,这是与 .NET Core 最兼容的运行时。 在终端中,运行以下命令。

sudo dnf install aspnetcore-runtime-3.1 -y

# 验证dotnet core runtime是否安装成功
dotnet

# 2、下载并解压 SSCMS 安装包

创建并进入 SS CMS 系统运行的文件夹,例如我们打算在 /var/www 中运行 SS CMS:

创建并进入文件夹:

mkdir -m 777 /var/www/
cd /var/www

下载 SS CMS 安装包,最新的产品下载地址请进入产品官网获取:

wget https://dl.sscms.com/cms/7.0.0/sscms-7.0.0-linux-x64.tar.gz
# 或者
curl -O https://dl.sscms.com/cms/7.0.0/sscms-7.0.0-linux-x64.tar.gz

解压安装包至 /var/www 文件夹中并删除安装包:

tar -xzf sscms-7.0.0-linux-x64.tar.gz
rm sscms-7.0.0-linux-x64.tar.gz -f

# 3、安装 Nginx

备注

如果需要可选 Nginx 模块,则可能需要从源代码生成 Nginx。

# 安装nginx
yum install nginx -y

# 启动nginx(需要先确保80端口未被其他程序占用)
systemctl start nginx

# 设为开机启动
systemctl enable nginx

# 4、将 Nginx 设置为 SS CMS 反向代理

安装完毕 Nginx后,请修改 /etc/nginx/nginx.conf 配置文件,在文本编辑器中打开它,并将 server 内容替换为以下内容:

# SSCMS Nginx Config ...

server {
    listen        80;
    server_name  _;
    location / {
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

使用上述配置文件,Nginx 接受端口 80 上的流量并将请求转接到 http://localhost:5000 中的 SS CMS。

如果希望指定域名,可以将 server_name _; 替换为 server_name example.com;,Nginx 将只匹配 example.com 上的流量并转接到 SS CMS。

注意

未能指定正确的 server_name 指令 (opens new window)会公开应用的安全漏洞。 如果可控制整个父域(区别于易受攻击的 *.com),则子域通配符绑定(例如,*.example.com)不具有此安全风险。 有关详细信息,请参阅 rfc7230 第 5.4 条 (opens new window)

除此之外,由于 Nginx 默认允许上传文件的大小是 1M,通常还需要设置 Nginx 允许上传文件的大小:

client_max_body_size 500m;

500m表示最大上传500M,可以根据实际需要进行设置。

完成配置 Nginx 后,运行 sudo nginx -t 来验证配置文件的语法。

sudo nginx -t

如果配置文件测试成功,可以通过运行 sudo nginx -s reload 强制 Nginx 重新载入。

sudo nginx -s reload

# 测试 Nginx 反向代理

导航到 SSCMS 根目录,通过命令行直接运行 SSCMS 系统:

cd /var/www
dotnet SSCMS.Web.dll

运行命令后,打开浏览器,访问 http://<IP地址或域名>,如果设置无误,浏览器将显示如下界面:

SS CMS 默认页。

Nginx 将对 http://<IP地址或域名> 发起的请求转接到在 http://127.0.0.1:5000 中的 SS CMS 系统。如果 SSCMS 在服务器上运行,但无法通过 http://<IP地址或域名> 地址访问,请检查服务器的防火墙,并确认端口 80 已打开。

测试 Nginx 反向代理完成后,请在命令提示符处按 Ctrl+C 关闭 SSCMS。

# 5、将 Nginx 设置为 SS CMS 进程管理器

接下来,我们需要将 Nginx 设置为 SS CMS 的进程管理器。

# 创建服务文件

创建服务定义文件 sscms.service

sudo touch /etc/systemd/system/sscms.service

将以下内容保存至 /etc/systemd/system/sscms.service

[Unit]
Description=SS CMS

[Service]
WorkingDirectory=/var/www
ExecStart=/usr/bin/dotnet /var/www/SSCMS.Web.dll
Restart=always
# Restart service after 10 seconds if the sscms service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=sscms
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

保存文件并启用服务。

sudo systemctl enable sscms.service

运行服务,并确认它正在运行。

sudo systemctl start sscms.service
sudo systemctl status sscms.service

● sscms.service - SS CMS
   Loaded: loaded (/etc/systemd/system/sscms.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-08-30 04:40:33 CST; 9s ago
 Main PID: 17983 (dotnet)
   CGroup: /system.slice/sscms.service
           └─17983 /usr/bin/dotnet /var/www/SSCMS.Web.dll

在配置了反向代理并通过 systemd 管理 SS CMS 后,Web 应用现已完全配置,并能通过浏览器从地址 http://<IP地址或域名> 进行访问了。

至此,SSCMS 系统已经在 CentOS 操作系统中部署完毕,我们可以开始正式安装 SS CMS 系统了。

# 6、安装 SS CMS 系统

TIP

如果在云服务器环境中安装,请先配置安全组,确保网站地址及端口能够被外网访问。

打开浏览器,访问地址 http://<IP地址或域名>/ss-admin/install,进入 SS CMS 系统安装界面:

勾选我已经阅读并同意此协议,进入环境检测界面:

点击下一步,进入数据库设置界面:

在此,我们选择 SQLite 数据库,如果希望使用其他数据库,请根据需要选择,点击下一步,进入缓存设置界面:

在此,我们选择 默认缓存,如果希望使用Redis 分布式缓存,请根据需要选择,点击下一步,进入管理员设置界面:

在管理员设置界面中设置超级管理员的用户名及密码,设置完成后点击下一步,系统将显示安装成功界面:

点击 进入管理后台 按钮进入后台,至此,SS CMS 系统安装完毕。

上次更新: 2020/10/28 上午11:02:23