.Net Core 部署到 SUSE Linux Enterprise Server 12 SP3 64 位中的步骤 http://www.cnblogs.com/xx2oo8/p/6907526.html
1, 安装工具
- ,apache
- ,.Net Core(dotnet-sdk-2.0)
- ,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 #授编辑权限
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 rcSuSEfirewall2 restart
到此位置基本就实现了通过 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 地址, 看看网站是否跟随开机自动运行.
来源: http://www.bubuko.com/infodetail-2603117.html