在CentOS 7+ 上安装部署ZKEACMS
ZKEASOFT June 02, 2017
ZKEACMS Core 是基于 .net core 开发的,可以在 windows, linux, mac 上跨平台运行,接下来我们来看看如何在 CentOS 上运行 ZKEACMS。
安装 Nginx
yum install nginx -y
如果提示找不到nginx,先参考下面这篇文章安装Nginx:
设置nginx开机自启动
systemctl enable nginx
启动 Nginx
如果Nginx没有启动,可以手动启动它:
systemctl start nginx
安装完成Nginx之后可以尝试用IP访问一下,看是否可以正常访问
修改Nginx的配置
修改Nginx的配置,让它反向代理到http://localhost:5000
,修改配置文件/etc/nginx/nginx.conf
:
vi /etc/nginx/nginx.conf
找到server
节点下的location
节点,替换为以下内容(按键盘I
或者Insert
开启编辑模式):
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;
}
修改完成后,按ESC
键退出编辑模式,然后按组合键shift+:
再输入wq
,按回车进行保存,反向代理的配置就设置好了。
注意:如果/etc/nginx/nginx.conf
配置文件中没有定义默认的server节点,可使用以下方式修改默认server
节点:
vi /etc/nginx/conf.d/default.conf
然后输入以下内容:
server {
listen 80;
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;
}
}
重启nginx让配置生效:
systemctl restart nginx
到这里,Nginx的环境就搭配好了,接下来,我们来部署ZKEACMS
安装ZKEACMS
在开始安装之前,需要先安装一些依赖项:
yum install epel-release -y
yum update -y
yum install libicu unzip -y
下载纸壳CMS所需的运行时,并将运行时提取到$HOME/dotnet
目录::
wget -O dotnet.tar.gz http://www.zkea.net/dotnet-runtime-linux
mkdir -p "$HOME/dotnet" && tar zxf dotnet.tar.gz -C "$HOME/dotnet"
接下来使用wget命令下载CMS程序:
wget https://cloud.zkeasoft.com/file/zkeasoft/cms.zip
然后使用unzip
命令将CMS解压到/root/cms
目录下,使用以下命令解压
unzip cms.zip -d cms
新建运行服务
创建一个服务,让纸壳CMS在后台运行。
创建服务
sudo vi /etc/systemd/system/zkeacms.service
输入以下内容保存
[Unit]
Description=ZKEACMS
[Service]
WorkingDirectory=/root/cms
ExecStart=/root/dotnet/dotnet ZKEACMS.WebHost.dll
Restart=always
RestartSec=10
SyslogIdentifier=zkeacms
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
注意:ExecStart=/root/dotnet/dotnet ZKEACMS.WebHost.dll
中/root/dotnet/dotnet
为dotnet程序的路径,即$HOME/dotnet/dotnet
。具体路径与当前登录用户有关,可以使用以下命令查询安装路径:
printf "$HOME/dotnet/dotnet\n"
启动网站
systemctl start zkeacms
网站启动以后,就可以尝试使用域名或者IP进行访问了。
如果网站不能访问,可以先查询一下纸壳CMS的运行状态是否正常:
systemctl status zkeacms
开机自启动
可以将服务设置为开机启动,这样每一次重启服务器后程序都会自动运行:
systemctl enable zkeacms
常见问题
1. 无法访问,连接不上,先开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
2. nginx 502 Bad Gateway
如果你的配置正确,确始终不能访问,使用 curl http://localhost:5000 可以正常访问的话,需要手动关闭 selinux 。
centos 7.1环境默认selinux是开启的,三种方案:
第一种暂时关闭selinux 做法:
setenforce 0
第二种是修改 /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled 重启机器即可。
可以使用 nano 或者 vi 进行编辑
vi /etc/selinux/config
第三种比较推荐,将NGINX加到SELinux的允许名单:
yum install policycoreutils-python
cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
semodule -i mynginx.pp
3.验证码无法显示
宝塔面板
如果您正在使用宝塔面板,可以参考以下文章来部署纸壳CMS:
http://www.zkea.net/codesnippet/detail/bt-panel-zkeacms.html