ASP .Net Core系统部署到SUSE 16 Linux Enterprise Server 12 SP2 64 具体方案

ASP .Net Core系统部署到SUSE 16 Linux Enterprise Server 12 SP2 64 具体方案

.Net Core 部署到 SUSE 16 Linux Enterprise Server 12 SP2 64 位中的步骤

1安装工具

1apache

2.Net Core(dotnet-sdk-2.0)

3Supervisor(进程管理工具,目的是服务器一开机就启动服务器 上发布的ASP.NET Core Web网站)

2、安装apache

安装apache,在命令行终端中输入一下命令:

 sudo zypper in apache

(注意这个与ubuntun中的添加不一样,

buntunsudo apt-get install apache2 

(注:查看apache 版本 sudo apachectl -v

安装完成,开始启动

重启apache服务(设置两项,1是可用,2是启动)

可用sudo systemctl enable apache2.service

(注意这个与ubuntun中的添加不一样,

buntunsudo /etc/init.d/apache2 restart 

启动sudo systemctl start apache2.service

在浏览器里输入http://localhost或者是http://127.0.0.1,如果看 到了It works!,那就说明Apache就成功的安装了,Apache的默认文档根目录是在SUSE上的/srv/www/htdocs/目录 ,如果出现403页面拒绝访问错误,原因是没有index.html导致,添加一个index.html文件即可,添加index.html文件之后,重新刷新浏览器,显示添加内容ok

注意:添加文件需要权限,所以通过

命令 sudo chmod a+w /srv/www/htdocs/ 授权,这样就可以添加index.html初始页了,

备注:配置文件是/etc/apache2/httpd.conf

配置存储在的/etc/apache2/conf.d /目录。

3、安装.NET Core 2.0

1、注册Linux系统(Ubuntu and Debian based systems,不同的系统 操作不一样)

  sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

 

sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/zypp/repos.d/dotnetdev.repo'

2、更新安装包,安装.NET Core

sudo zypper update

sudo zypper install libunwind libicu

sudo zypper install dotnet-sdk-2.1.4

注意安装过程中出现解决方案选择,选择 2 

注:上面的注册和安装可以参考

https://www.microsoft.com/net/learn/get-started/linux/opensuse

4、查看一下 dotnet --version  结果是  2.1.4 则说明安装成功。

   (注:简单的应用程序项目文件夹,使用以下命令启动网站,只要打开发布网站的文件,右键终端中打开dotnet run或者dotnet xx.dll,即可运,xx为网站的名称)

sudo dotnet xxx.dll

然后就可以在浏览器打开localhost:50005000为默认端口,如果有修改,请使用实际IP端口访问mmps的端口设置的是8080 

注意:如果外网无法访问8080端口的话,设置如下

1sudo chmod a+w /etc/sysconfig/SuSEfirewall2 #授编辑权限

(注意:这里授权,编辑保存之后,步骤3的下面一定要取消编辑权限,sudo chmod a-w /etc/sysconfig/SuSEfirewall2,

否则重启无效会提示:Unsafe permissions for file /etc/sysconfig/SuSEfirewall2 to be sourced  )

2vi SuSEfirewall2 或者直接打开SuSEfirewall2文件进行编辑

3、编辑内容:在文件SuSEfirewall2中找到FW_SERVICES_EXT_TCP

在其后面加上服务名或者是服务对应的端口,如SSH,

FW_SERVICES_EXT_TCP=”ssh” 或 FW_SERVICES_EXT_TCP=”22″ 或者FW_SERVICES_EXT_TCP=”8080″,

如果要开放多个端口则为 FW_SERVICES_EXT_TCP=”8080 89″ #多个端口用空格分开保存之后退出。

4、取消授权(如果没有取消编辑权限,重启无效会提示:Unsafe permissions for file /etc/sysconfig/SuSEfirewall2 to be sourced)

取消授权命令: sudo chmod a-w /etc/sysconfig/SuSEfirewall2 

5、重启防火墙,以使配置生效,

  sudo rcSuSEfirewall2 restart

或者执行下面的SuSEfirewall2 stop和SuSEfirewall2 start两句也可以

        执行 a:SuSEfirewall2 stop 

        结果: 

     <38>May 16 14:55:39 SuSEfirewall2[10860]: Firewall rules unloaded.

        执行 b:SuSEfirewall2 start

        结果:  

     <38>May 16 14:55:54 SuSEfirewall2[10914]: Setting up rules from /etc/sysconfig/SuSEfirewall2 ...

                   <38>May 16 14:55:55 SuSEfirewall2[10914]: Firewall rules successfully set

 

到此位置基本就实现了通过IP访问然而每次关机以后,重新开机都需要去手动的启动发布的网站项目才能访问,因此我们下面使用Supervisor托管自动启动网站服务操作,保证每次只要一开机,网站就可以正常。
3、安装Supervisor(设置开机自动设置网站)

1、右键在终端中打开,输入安装命令

安装python

sudo zypper in python-pip

sudo pip install -U setuptools

pip install supervisor

2、安装完成之后,创建相关文件

echo_supervisord_conf > supervisord.conf

sudo  mkdir /etc/supervisor

sudo  mkdir /etc/supervisor/conf.d

sudo cp supervisord.conf  /etc/supervisor/supervisord.conf

注:1supervisord.conf中的 /tmp换成相应的/var/run或者 /var/log

(使用sudo chmod a+w etc/supervisor/supervisord.conf 就可以打开进行编辑了,/tmp换成相应的/var/run或者/var/log替换之后,保存)

2、把supervisord.conf中的

;[include]节点处

;files = relative/directory/*.ini

换成

[include]

files = /etc/supervisor/conf.d/*.conf

 

3、配置文件,取名为 MmPSCore.conf (当前项目的名称)

sudo touch /etc/supervisor/conf.d/MmPScore.conf (自定义项目名称,本项目是MmPScore.conf)

打开MmPSCore.conf写入如下命令(如果没有权限,

如下方法

sudo chmod a+w /etc/supervisor/conf.d/MmPScore.conf(命令启动编辑)

 

命令内容如下:

[program:MmPSCore]

command=dotnet MmPSCore.dll #要执行的命令(发布网站执行文件)

directory=/home/xx/MmPSCore#命令执行的目录(发布网站文件路径)environment=ASPNETCORE__ENVIRONMENT=Production #环境变量

user=www-data #进程执行的用户身份(可能需要去掉)

stopsignal=INT

autostart=true #是否自动启动

autorestart=true #是否自动重启

startsecs=1 #自动重启间隔

user=root ; #进程执行的用户身份(可以不写)

stderr_logfile=/var/log/TestCore.err.log #标准错误日志

stdout_logfile=/var/log/TestCore.out.log #标准输出日志

 //注:#后面的内容为注释,在保存上面的文件代码时,记得删除

 

上述操作完后,保存,

运行supervisord,查看是否生效,执行以下命令:

supervisord -c /etc/supervisor/ supervisord.conf

ps -ef | grep ProjectName

返回

root 27007 27006  1 13:21 ?  00:00:02 dotnet ProjectName.dll

root 27026 26810 0 13:23 pts/0 00:00:00 grep --color=auto ProjectName

表示运行成功!

如果有错误的话,建议执行下面的命令

这个两句命令很重要

sudo supervisord -c /etc/supervisor/supervisord.conf

sudo supervisorctl -c /etc/supervisor/supervisord.conf

 

4、配置supervisord开机启动

  1. 在指定目录下创建文件supervisord.service

         sudo touch /usr/lib/systemd/system/supervisord.service

         sudo chmod a+w usr/lib/systemd/system/supervisord.service

B.输入以下内容:

[Unit]

Description=Supervisor daemon

 

[Service]

Type=forking

ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf

ExecStop=/usr/bin/supervisorctl shutdown

ExecReload=/usr/bin/supervisorctl reload

KillMode=process

Restart=on-failure

RestartSec=42s

 

[Install]

WantedBy=multi-user.target

 

保存并退出

C.执行以下命令:

systemctl enable supervisord

提示:

Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service.

D.验证是否为开机启动:

systemctl is-enabled supervisord

提示:

enabled

表示设置成功!

至此,创建supervisor守护进程完毕。

5、测试

接下来重启机器,在浏览器中输入IP地址,看看网站是否跟随开机自动运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值