当前位置: 首页 > 编程日记 > 正文

[.Net跨平台]部署DTCMS到Jexus遇到的问题及解决思路---Linux环境搭建

最近朋友托我帮忙研究如何把一个DTCMS部署到Linux下,经过1天的研究,部署基本成功,可能有些细节还未注意到,现在把心得分享一下。过程比预期的要简单

身为.Net程序员,这个问题的第一步可能就是如何搭建一个Linux环境来测试部署的问题了,我们大部分人平时可能很少接触Linux,更别说部署事宜了,本篇主要讲述一下环境(虚拟机)搭建遇到的问题。

1.虚拟机网络问题

可能对于我们来说Linux是hard模式,如果是一台没有网络的Linux,绝对是地狱模式了,所以优先要把网络搞定,我这边使用的是Hyper-V作为例子,iso选择了CentOS-7-x86_64-Minimal-1708.iso版本

1)选择虚拟交换机管理器

2)新建虚拟网络交换机,选择外部,其他的默认即可。 创建完成(也可以选择内部,然后和宿主机对外网卡做桥接,但需要注意的是,要修改虚拟机移除默认网络适配器,增加旧版网络适配器选择此交换机)

3)创建虚拟机,记得网络要选择刚刚创建的虚拟网络交换机

4)挂载iso开始安装

建议再此处打开网络,一般选择打开后你就可以看到你的IP相关信息了,由于我下载的iso就是最小安装,所以软件选择也没有什么好选择的了,等待安装完成。

2.常用软件安装(刚装的系统,直接使用root账号操作)

1)更新系统 安装常用组件(非必须,但不安装后面要安装wget,unzip的功能)

yum update
yum install wget telnet perl perl-devel net-tools kernel-devel 
yum groupinstall "Development tools" -y 

一些常用的命令,省得到时候到网上搜索让你执行一个命令,结果找不到、

2)关闭centos的firewall,改使用iptables,iptables网上资料较多(非必须,也可以继续使用firewall,也有资料)

systemctl stop firewalld.servic #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
yum install iptables-services #安装
vi /etc/sysconfig/iptables #编辑防火墙配置文件
systemctl enable iptables.service #设置防火墙开机启动
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT #增加一条防火墙允许记录
/usr/libexec/iptables/iptables.init save #保存
/usr/libexec/iptables/iptables.init status #防火墙状态
systemctl restart iptables.service #重启防火墙使配置生效
#更多参考 https://laod.cn/code-audit/linux-firewall-iptables.html iptables命令替换为/usr/libexec/iptables

3)安装ssh服务

yum install -y openssh-server
vi /etc/ssh/sshd_config  #修改配置文件,打开22端口
#参考 https://zhuanlan.zhihu.com/p/22438350

4)使用Xshell连接ssh,苦日子到头了,可以复制粘贴命令了

3.安装Jexus

curl https://jexus.org/release/x64/install.sh|sh
cd /usr/jexus
sudo ./jws start

4.可以在宿主机上测试Jexus的服务器了,地址 http://虚拟机IP地址/info

如果无法访问,防火墙增加80端口配置,重启防火墙

转载于:https://www.cnblogs.com/wpycs/p/8051644.html

相关文章:

Sequence point 中文

摘自维基百科: In C[4] and C,[5] sequence points occur in the following places. (In C, overloaded operators act like functions, and thus operators that have been overloaded introduce sequence points in the same way as function calls.) Between ev…

python中pop函数_Python中的Pop函数

python中pop函数什么是弹出功能? (What is the pop function?) The method pop() removes and returns the last element from a list. There is an optional parameter which is the index of the element to be removed from the list. If no index is specified…

第六周学习进度条

日期 任务 听课 编程 阅读 准备考试 日总计 周日 周一 120 300 0 0 420 100 周二 0 120 0 0 120 周三 0 0 0 0 0 周四 0 0 0 0 0 周五 0 0 0 0 0 周六 0 120 100 0 …

1071. 小赌怡情(15)

常言道“小赌怡情”。这是一个很简单的小游戏:首先由计算机给出第一个整数;然后玩家下注赌第二个整数将会比第一个数大还是小;玩家下注t个筹码后,计算机给出第二个数。若玩家猜对了,则系统奖励玩家t个筹码;…

关于年长程序员的5个误传

原文链接:http://kb.cnblogs.com/page/150932/ 英文原文:Five Pervasive Myths About Older Software Developers 最近我刚过完40岁生日,一个朋友向我开玩笑地说“嘿,你已经老了,不适合做程序员了!”我虽然…

java中getter_Java中的Getter和Setters解释了

java中getterGetters and setters are used to protect your data, particularly when creating classes. Getter和Setter用于保护数据,尤其是在创建类时。 For each instance variable, a getter method returns its value while a setter method sets or updates…

Loadrunner手动关联详解

Loadrunner手动关联详解 一、关联的含义: 关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中…

解决Visual Studio禁止使用strlen函数的问题

问题描述: 在学习C的复制构造函数以及复制赋值运算符的重载时,需要用到使用C风格的字符串作为引入,由于我用的是VS2015(社区版),在编译时出错。编译器提醒strcpy函数是不安全的,建议改用strlen_…

求整型数组所有子串的和中的最大值

#include <iostream> using namespace std;const int MIN_INT -2147483647;int maxSum(const int *arr, int len){int my_max MIN_INT;int tmp 0;for(int i 0; i < len; i){//从头到尾。。tmp arr[i];//遍历相加。if(my_max < tmp){//更新my_maxmy_max tmp;}…

c语言中的if语句_If ... C中的其他语句解释

c语言中的if语句Conditional code flow is the ability to change the way a piece of code behaves based on certain conditions. In such situations you can use if statements.条件代码流是根据某些条件更改一段代码的行为的能力。 在这种情况下&#xff0c;可以使用if语句…

设计模式之笔记--装饰模式(Decorator)

装饰模式&#xff08;Decorator&#xff09; 定义 装饰模式&#xff08;Decorator&#xff09;&#xff0c;动态地给一个对象添加一些额外的职责&#xff0c;就增加功能来说&#xff0c;装饰模式比生成子类更为灵活。 类图 描述 Component&#xff1a;被装饰者和装饰者共有的基…

整型数组负数放左面,其他放右面,要求时空复杂度:O(n), O(1)。

例如&#xff1a;处理前&#xff1a;{5 -3 6 -7 -6 1 8 -4 0 0}&#xff0c;处理后&#xff1a;{-3 -7 -6 -4 5 6 1 8 0 0}. #include <iostream> #include <algorithm> using namespace std;const int LEN 10; void printInt(int c){cout<<c<<"…

[bzoj] 1176 Mokia || CDQ分治

原题 给出WW的矩阵&#xff08;S没有用&#xff0c;题目有误&#xff09;&#xff0c;给出无限次操作&#xff0c;每次操作的含义为&#xff1a; 输入1:你需要把(x,y)(第x行第y列)的格子权值增加a 输入2:你需要求出以左下角为(x1,y1),右上角为(x2,y2)的矩阵内所有格子的权值和,…

sql子查询示例_SQL更新查询示例说明

sql子查询示例In this article, were going to learn how to use the SQL update statement - what it is, what it can do, and what you need to be aware of before using it.在本文中&#xff0c;我们将学习如何使用SQL更新语句-它是什么&#xff0c;它可以做什么以及在使用…

keepalived+nginx安装

安装keepalivednginx做为公司服务器前端高可用反向代理安装nginx 1、yum install -y pcre pcre-devel gcc-c zlib zlib-devel openssl openssl-devel 2、cd /usr/local/soft 3、wget http://nginx.org/download/nginx-1.12.2.tar.gz 4、tar -zxvf nginx-1.12.2.tar.gz 5、cd ng…

Nexus Repository Manager 3.0 发布

著名仓库管理工具Nexus&#xff0c;在2016年4月6日发布3.0版本&#xff08;包括OSS版&#xff09;&#xff0c;相较2.*版本有很大的改变&#xff1a; 1. 从底层重构&#xff0c;从而提高性能&#xff0c;增强扩展能力&#xff0c;并改善用户体验 2. 升级界面&#xff0c;增加更…

计算整型数的二进制中包含多少个1

方法很多啊&#xff0c;比如&#xff1a;//1.靠循环&#xff1a; int calculate(unsigned int n){int count 0;unsigned int mark 0x1;for(int i 0; i < 32; i){if(n&mark){count;mark<<1;}}return count; }//2. 据说不用循环就能算出来的牛叉方法。木有测试。…

nvm npm不是内部命令_npm作弊表-最常见的命令和nvm

nvm npm不是内部命令npm or the Node Package Manager, is one of the most used tools for any Node.js developer. Heres a list of the most common commands youll use when working with npm.npm或Node Package Manager是Node.js开发人员最常用的工具之一。 这是使用npm时…

快速排序的实现与注意点

先上实现了的C代码&#xff1a; 1 #include <ctime>2 #include <cstdio>3 #include <cstdlib>4 #include <iostream>5 using namespace std;6 const int maxn 100;7 int a[maxn], n;8 void quick_sort(int left, int right) {9 if(left > …

iOS 线程之GCD的高级使用方法

之前的一篇关于线程的blog已经为大家介绍了GCD的简单使用方式及样例说明&#xff0c;今天因为项目中有特殊的应用GCD的实例&#xff0c;为大家介绍两种特殊需求的使用GCD的方法。 目的&#xff1a;实现一件事情做完&#xff0c;再做下一件事情。确保函数的运行周期。 解决方式…

构造次优查找树

似乎有些错误&#xff0c;但是错在哪了呢&#xff1f; #include <iostream> #include <cmath> using namespace std;const int NUM 9;int value[NUM] {1,2,3,4,5,6,7,8,9}; float weight[NUM] {1,1,2,5,3,4,4,3,5}; float sum_weight[NUM]; void init_sum_weigh…

同步等待 异步等待_异步/等待和承诺的解释

同步等待 异步等待The async / await operators make it easier to implement many async Promises. They also allow engineers to write clearer, more succinct, testable code.async / await 运算符使实现许多异步Promises变得更加容易。 它们还允许工程师编写更清晰&#…

使用 GDB 调试多进程程序

使用 GDB 调试多进程程序 来源 https://www.ibm.com/developerworks/cn/linux/l-cn-gdbmp/index.html GDB 是 linux 系统上常用的 c/c 调试工具&#xff0c;功能十分强大。对于较为复杂的系统&#xff0c;比如多进程系统&#xff0c;如何使用 GDB 调试呢&#xff1f;考虑下面这…

理解Lucene索引与搜索过程中的核心类

理解索引过程中的核心类 执行简单索引的时候需要用的类有&#xff1a; IndexWriter、Directory、Analyzer、Document、Field 1、IndexWriter IndexWriter&#xff08;写索引&#xff09;是索引过程的核心组件&#xff0c;这个类负责创建新的索引&#xff0c;或者打开已有的索引…

lua的table+setfenv+setmetatable陷阱

--file1.lua x funciton() print("this is x") end ------------- --file2.lua local t {} local _G _G setfenv(1,t) --设置了这个之后&#xff0c;只要是在本文件中对未声明变量的访问&#xff0c;全部会导致递归。 _G.setmetatable(t, { __index fu…

rest api_REST API

rest api历史 (History) REST stands for Representational State Transfer protocol. Roy Fielding defined REST in his PhD dissertation in 2000.REST代表再表象小号泰特贸易交接协议。 Roy Fielding在2000年的博士学位论文中定义了REST。 什么是REST API&#xff1f; (Wh…

0414复利计算6.0--结对

结对同伴&#xff1a;姓名&#xff1a;柯晓君学号&#xff1a;201406114210博客园地址&#xff1a;http://www.cnblogs.com/950525kxj/一、项目简介 开发工具&#xff1a;eclipse 开发语言&#xff1a;java 主要功能&#xff1a;复利单利的计算、贷款的计算以及投资运算三大功能…

把简单做到极致

我真的还没有认真想过我已经是一名即将毕业的大三学生了。关于自己的过去&#xff0c;关于自己的未来。 有时候也有想过好好反思一下自己的过去&#xff0c;却发现自己的过去总是被太多的无奈与遗憾填满。有时候想畅想一下自己的未来&#xff0c;却发现未来总是充满了未知与迷茫…

作为程序员,要取得非凡成就需要记住的15件事。

作为程序员&#xff0c;要取得非凡成就需要记住的15件事。1、走一条不一样的路在有利于自己的市场中竞争&#xff0c;如果你满足于“泯然众人矣”&#xff0c;那恐怕就得跟那些低工资国家的程序员们同场竞技了。2、了解自己的公司以我在医院、咨询公司、物流企业以及大技术公司…

craigslist_Craigslist,Wikipedia和丰富经济

craigslistYou’ve heard it before. Maybe you’ve even said it. “There’s no such thing as a free lunch.”你以前听过 也许你甚至已经说过了。 “没有免费的午餐之类的东西。” “You can’t get something for nothing.”“你不能一无所获。” “Somebody has to pay…