建议使用 root 管理员账户操作

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文件即可,添加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 #授编辑权限

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″ #多个端口用空格分开,保存之后退出。

4、重启防火墙,以使配置生效,
  sudo rcSuEfirewall2 restart

到此位置基本就实现了通过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

注: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 #标准错误日志

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地址,看看网站是否跟随开机自动运行。

SuSE Linux Supervisor的安装与使用案例的更多相关文章

  1. Linux Supervisor的安装与使用入门---SuSE

    Linux Supervisor的安装与使用入门 在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事 ...

  2. Linux Supervisor的安装与使用入门---Ubuntun

    Linux Supervisor的安装与使用入门 在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事 ...

  3. Linux Supervisor的安装与使用入门

    在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件.由于在linux中,每个系统与用户进行交流的界 ...

  4. SUSE Linux源代码编译安装MySQL 5.6

    这篇文章主要介绍了SUSE Linux下源代码编译方式安装MySQL 5.6过程分享,本文使用SUSE Linux Enterprise Server 10 SP3 (x86_64)系统,须要的朋友能 ...

  5. SUSE linux 使用LVM安装系统和管理

    引出 在我们安装好linux系统后会发现在需要修改磁盘分区的时候会比较困难,系统安装的/目录的文件系统要更改基本不太可能,其他目录如/home目录也比较困难.但是系统安装时要是采用的LVM管理的方式安 ...

  6. Suse linux enterprise 11安装时更改磁盘模式为gpt的方法

    在进行鸟哥linux基础篇学习时,在"第3.2.2 选择安装模式与开机 -inst.gpt"中,鸟哥用到的CentOS 7需要用指令修改磁盘模式为gpt. 先用键盘选择Instal ...

  7. SUSE linux使用zypper 安装软件-比yum更好用

    1. How to install "wget" command in Linux and how to use multiple : https://www.cyberciti. ...

  8. SUSE Linux – Zypper 命令示例

    來源:http://www.linuxidc.com/Linux/2014-11/109214.htm Zypper是SUSE Linux中用于安装,升级,卸载,管理仓库.进行各种包查询的命令行接口. ...

  9. Apache PHP 安装问题 (SUSE Linux)

    1. SUSE Linux配置命令如下: './configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-mysql' 2. 接下来 ...

随机推荐

  1. [BZOJ4870][Shoi2017]组合数问题 dp+矩阵乘

    4870: [Shoi2017]组合数问题 Time Limit: 10 Sec  Memory Limit: 512 MB Description Input 第一行有四个整数 n, p, k, r ...

  2. C++中关于new及动态内存分配的思考

    如何实现一个malloc? malloc_tutorial.pdf ———————————————————————————————————— 我们知道,使用malloc/calloc等分配内存的函数时 ...

  3. POJ1275 Cashier Employment 【二分 + 差分约束】

    题目链接 POJ1275 题解 显然可以差分约束 我们记\(W[i]\)为\(i\)时刻可以开始工作的人数 令\(s[i]\)为前\(i\)个时刻开始工作的人数的前缀和 每个时刻的要求\(r[i]\) ...

  4. 解题:BZOJ 4808 马

    题面 以前写过的题,翻出来学习网络流写二分图匹配,因为复杂度更优秀,$Dinic$是$O(sqrt(n)m)$哒~ 原点向左部点连流量为$1$的边,左部点向对应右部点连流量为$1$的边,右部点向汇点连 ...

  5. Extjs treePanel过滤查询功能【转】

    Extjs4.2中,对于treeStore中未实现filterBy函数进行实现,treestore并未继承与Ext.data.Store,对于treePanel的过滤查询功能,可有以下两种实现思路: ...

  6. 调整的R方_如何选择回归模型

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  7. HTML+CSS基础小笔记再整理

    1. font的两个必须要写的:font-size 和 font-family text-indent 首行缩进(em)1em=一个文字大小 text-algin 对齐方式:left.center.r ...

  8. JavaScript入门笔记(一)

    JavaScipt 2.1 javascript的组成部分 ECMAScript: 它是整个 javascript 的核心,包含(基本语法.变量.关键字.保留字.数据类型.语句.函数等等)DOM:文档 ...

  9. 「七天自制PHP框架」应用:Model外键链接

    这里以行政区数据为例: 一级行政区数据范例: 二级行政区范例: 三级行政区范例: 在Model层建立三个Model class ProvinceModel extends Model{ public ...

  10. <LC刷题一>相加为0的数之leetcode1&2&15&16

    --题目导航见页面左上角的悬浮框#目录导航#-- 相似题型导航 1.1 twosum两数之和  ||  2.2 3Sum三数之和  ||  2.3 3Sum Closest最接近的三数之和 ----- ...