web系统一般建议安装在srv/wwwoot目录下,下面步骤演示如何安装pageadmin版本。
1、进入srv目录,创建wwwroot/demo目录,生产环境demo替换为网站标识或域名标识,方便后期识别。
mkdir -pv ./wwwroot/demo
2、上传web文件zip压缩包到 /srv/wwwroot/demo目录下解压。
cd /srv/wwwroot/demo unzip web.zip
3、解压成功后,打开根目录下的appsetting.json,修改url为http://localhost:5000,并取消注释,如果不需要调试的生产环境,建议把IsDevelopment改为0。
{ //netCore内置Kestrel监听端口,生产环境不建议直接对外开放,建议使用nginx,iis等作为中间件 //"urls": "http://localhost:5000", "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, //生产环境IsDevelopment建议改为0. "IsDevelopment": 1, "ProjectAssemblies": "PageAdmin.*.dll,HuaTuo.*.dll,JanNew.*.dll", "AllowedHosts": "*", "UseHsts": 0 }
注:
如果服务器部署了多个web应用,可能会出现端口被占用导致启动失败,可以把5000端口改为5001,5002以此类推。
如果调试模式未安装nginx,iis等环境,可以把urls改为:http://*:5000,服务器外部就可以通过http://ip:5000打开网站,正式环境强烈使用nginx,iis等作为中间件对外提供服务。
4、运行dotnet命令,启动web
dotnet PageAdmin.Web.dll
或
dotnet PageAdmin.Web.dll --urls="http://*:5000" --environment=Development
结果出现:Now listening on: http://ip:5000 表示启动成功。
这种启动方式主要用于调试环境下测试,按住ctrl+c组合键或关闭shell窗口后,网站则会同时关闭。
解决方案:添加为守护进程(开机启动),这个也是生产环境建议的启动方式。
1、在/srv/services目下,创建pageadmin_net.service系统服务文件,文件名建议用和域名匹配,文件内容如下:
[Unit] #服务名称 Description=pageadmin网站 #After=network-online.target #Wants=network-online.target [Service] #工作目录 WorkingDirectory=/srv/wwwroot/demo #生产环境建议新建一个web用户,并给目录所有权 User=root #改为netcore的的安装路径和PageAdmin.Web.dll的绝对路径 ExecStart=/usr/share/dotnet/dotnet /srv/wwwroot/demo/PageAdmin.Web.dll #程序崩溃后启动方式,always或on-failure Restart=always RestartSec=10 KillSignal=SIGINT #日志标识,可以自定义修改 SyslogIdentifier=pageadmin.net-identifier #如果存在,会优先加载appsettings.Production.json Environment=ASPNETCORE_ENVIRONMENT=Production #关闭日志,否则var/log下的日志文件会很大 Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy=multi-user.target
注:文件中工作目录和PageAdmin.Web.dll路径请改为实际路径。
2、将系统文件加入开机启动服务,命令如下:
systemctl enable /srv/service/pageadmin_net.service
3、启动服务
systemctl start pageadmin_net.service
如果报错,运行下面命令排查原因
journalctl -u pageadmin_net.service
如果没报错,说明已经服务已设置为开启启动,可以通过下面命令查询进程信息。
ps aux | grep PageAdmin.Web.dll
或服务状态
systemctl status pageadmin_net.service