ASP .Net Core系统部署到SUSE Linux Enterprise Server 12 SP3 64 具体方案
.Net Core 部署到 SUSE Linux Enterprise Server 12 SP3 64 位中的步骤
1、安装工具
1、apache
2、.Net Core(dotnet-sdk-2.0)
3、Supervisor(进程管理工具,目的是服务器一开机就启动服务器 上发布的ASP.NET Core Web网站)
2、安装apache
安装apache,在命令行终端中输入一下命令:
sudo zypper in apache
(注意这个与ubuntun中的添加不一样,
buntun中sudo apt-get install apache2 )
(注:查看apache 版本 sudo apachectl -v)
安装完成,开始启动
重启apache服务(设置两项,1是可用,2是启动)
可用:sudo systemctl enable apache2.service
(注意这个与ubuntun中的添加不一样,
buntun中sudo /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文件即可,内容如下
<html>
<head>
</head>
<body>
It works!
</body>
</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 。
4、查看一下 dotnet --version 结果是 2.1.4 则说明安装成功。
(注:简单的应用程序项目文件夹,使用以下命令启动网站,只要打开发布网站的文件,右键终端中打开 dotnet run或者dotnet xx.dll,即可运,xx为网站的名称)
sudo dotnet xxx.dll
然后就可以在浏览器打开localhost:5000(5000为默认端口,如果有修改,请使用实际IP和端口访问(mmps的端口设置的是8080))
注意:如果外网无法访问8080端口的话,设置如下
1、sudo chmod a+w /etc/sysconfig/SuSEfirewall2 #授编辑权限
(注意:这里授权,编辑保存之后,步骤3的下面一定要取消编辑权限,sudo chmod a-w /etc/sysconfig/SuSEfirewall2,
否则重启无效会提示:Unsafe permissions for file /etc/sysconfig/SuSEfirewall2 to be sourced )
2、vi 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″ #多个端口用空格分开,保存之后退出。
、取消授权(如果没有取消编辑权限,重启无效会提示: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
(注意:如果上述方法不能安装的话,可以使用下面的方法安装(参考链接:http://www.cnblogs.com/1175429393wljblog/p/9044994.html)
1.1 pip下载
wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate
1.2 pip安装
tar -xzvf pip-1.5.4.tar.gz
cd pip-1.5.4
python setup.py install
1.3 pip安装软件
pip install supervisor
2、安装完成之后,创建相关文件
第一种
创建supervisor配置文件目录
sudo mkdir /etc/supervisor
创建主配置文件
echo_supervisord_conf >/etc/supervisor/supervisord.conf
如果提示权限不够,
su root
echo_supervisord_conf >/etc/supervisor/supervisord.conf
创建项目配置文件目录conf.d
cd /etc/supervisor/
sudo mkdir conf.d
在文件目录conf.d下创建创建项目配置文件(开机启动的网站)
sudo vim conf.d/MmPSCore.conf (编辑完成后 ,按Esc,在按:冒号,之后再输入wq!,即可以退出)
第二种
echo_supervisord_conf > supervisord.conf
sudo mkdir /etc/supervisor
sudo mkdir /etc/supervisor/conf.d
sudo cp supervisord.conf /etc/supervisor/supervisord.conf
注:1、supervisord.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 #标准错误日志(TestCore.err.log这个文件没有,需要手动创建)
stdout_logfile=/var/log/TestCore.out.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开机启动
- 在指定目录下创建文件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地址,看看网站是否跟随开机自动运行。
ASP .Net Core系统部署到SUSE Linux Enterprise Server 12 SP3 64 具体方案的更多相关文章
- 使用 Visual Studio 部署 .NET Core 应用 ——.Net Core 部署到SUSE Linux Enterprise Server 12 SP2 64 位(GNOME 版本3.20.2)
SUSE Linux安装 apache 命令:sudo zypper in apache 设置apache 服务可用 命令:sudo systemctl enable apache2.service启 ...
- ASP .Net Core系统部署到SUSE 16 Linux Enterprise Server 12 SP2 64 具体方案
.Net Core 部署到 SUSE 16 Linux Enterprise Server 12 SP2 64 位中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk ...
- 虚拟机 SUSE Linux Enterprise Server 12 SP2 64
下载地址:https://www.suse.com/zh-cn/products/server/download/ 下载以后使用虚拟机安装即可
- windows安装SUSE Linux Enterprise Server 12
一:打开“开发人员模式” 点击开始菜单按钮,选择“设置” 在设置中选择“更新和安全” 在菜单中选择“针对开发人员”,在三个选项中,选中“开发人员模式” 在弹出的警告框中点击“是” 这样开发人员模式就打 ...
- SUSE Enterprise Server 12 SP3 64 设置防火墙开放8080端口
SUSE Enterprise Server 12 SP3 64 设置防火墙开放8080端口 第一种方式: 1.sudo chmod a+w /etc/sysconfig/SuSEfirewall2 ...
- SUSE Enterprise Server 12 SP3 64 设置防火墙开放8080端口,出现Unsafe permissions for file /etc/sysconfig/SuSEfirewall2 to be sourced
SUSE Enterprise Server 12 SP3 64 设置防火墙开放8080端口时出现 Unsafe permissions for file /etc/sysconfig/SuSEf ...
- 安装MySQL -- SuSE Linux Enterprise Server 11 SP3
1.准备工作从MySQL官网上分别下载mysql服务器端于客户端包: MySQL-server-5.5.49-1.sles11.x86.rpm MySQL-client-5.5.49-1.sles11 ...
- SUSE Linux Enterprise Server 12 使用二进制文件安装docker
Docker-CE in SUSE 虽然使用zypper添加源也能安装,不过我在SLES 12sp5 上安装时发现好多命令还需要自己手动软连接,干脆网上找了找文档,再自己小改下,用二进制部署,也是可以 ...
- kafka服务安装-SuSE Linux Enterprise Server 11 SP3
kafka是一款分布式消息发布和订阅的系统,具有高性能和高吞吐率. 更多说明请自行了解,直接进入主题. kakfa 安装之前需要安装jdk,不做更多说明 一.下载kafka 进入下载页面:http: ...
随机推荐
- [51CTO]新说MySQL事务隔离级别!
新说MySQL事务隔离级别! 事务隔离级别这个问题,无论是校招还是社招,面试官都爱问!然而目前网上很多文章,说句实在话啊,我看了后我都怀疑作者弄懂没!本文所讲大部分内容,皆有官网作为佐证,因此对本文内 ...
- Android 获取加速传感器的值,并去除杂音
1.注册和注销传感器 private void registerSensor() { manager.registerListener(this, manager.getDefaultSensor(S ...
- JavaWeb开发之详解Servlet及Servlet容器
自JavaEE诞生伊始,Servlet容器和Servlet技术,就构成了JavaEE应用的核心,配合其它组件,它们完善了Java企业级开发的全套解决方案.小到一个静态博客网站,大到分布式的集群应用,都 ...
- CORS & X-Frame-Options
CORS & X-Frame-Options X-Frame-Options https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers ...
- Spring之事务操作(配置文件)
UserDao.java package helloworld.tx; import org.springframework.jdbc.core.JdbcTemplate; public class ...
- 深入理解es6的promise
一.promise入门 1. Promise对象是什么 回调函数的另一种原生实现,比之前回调函数的写法机构清晰,功能强大, 2.以前回调这么写 function a(fn){ let h = 1; s ...
- Python学习--------------Atm+购物车系统
一.程序需求 模拟实现一个ATM + 购物商城程序: 1.额度 15000或自定义 2.实现购物商城,买东西加入 购物车,调用信用卡接口结账 3.可以提现,手续费5% 4.每月22号出账单,每月10号 ...
- 【BZOJ1082】[SCOI2005]栅栏(搜索)
[BZOJ1082][SCOI2005]栅栏(搜索) 题面 BZOJ 洛谷 题解 随便写个爆搜,洛谷上就\(80\)分了.先放爆搜代码: #include<iostream> #inclu ...
- bzoj3920: Yuuna的礼物(莫队+分块套分块)
思路挺简单的,但是总感觉好难写...码力还是差劲,最后写出来也挺丑的 这题显然是个莫队题,考虑怎么转移和询问... 根据莫队修改多查询少的特点,一般用修改快查询慢的分块来维护.查第$k_1$小的出现次 ...
- [SDOI2009]Bill的挑战——全网唯一 一篇容斥题解
全网唯一一篇容斥题解 Description Solution 看到这个题,大部分人想的是状压dp 但是我是个蒟蒻没想到,就用容斥切掉了. 并且复杂度比一般状压低, (其实这个容斥的算法,提出来源于y ...