1、先看一下Linux环境下面请求的过程,(画的不是很好,简单的了解一下原理。)

.NET跨平台其实需要这三个关键:编译器、CLR和基础类库。在.NET下我们编写一个最简单的“Hello World”都需要mscorlib.dll这个动态链接库,因为.NET框架已经为我们提供了这些,因为在我们的计算机上安装着.NET框架,这是我们编写的应用程序能够在Windows下运行的原因。再回头来看Mono,首先Mono和CLR一样,都是CLI这一标准的实现,所以我们可以理解为Mono实现了和微软提供给我们的类似的东西,因为微软的.NET框架属于商业化闭源产品,所以Mono除了在实现CLR和编译器的同时实现了大量的基础库,而且在某种程度上Mono实现的版本与相同时期.NET的版本有一定的差距,这点使用Unity3D开发游戏的朋友应该深有感触吧!这就决定了我们在将应用程序移植到目标平台时能否实现在目标平台上和当前平台上是否能够具有相同的体验。因为公共中间语言即CIL能够运行在所有实现了CLI标准的环境中,而CLI标准则是和具体的平台或者说CPU无关的,因此只要Mono运行时能够保证CIL的运行,就可以实现应用程序的跨平台。

2、在Linux下面搭建ASP.NET运行环境

  2.1下面就是需要在Linux下面安装的文件包。

这些包之间有些依赖关系。

A、httpd依赖于apr,apr-util,pcre这三个包

B、Mono依赖于libgdiplus包

C、xsp和Mod_mono依赖于mono包

所以安装的时候有先后的顺序。

在本地,我们可以通过Xftp工具将文件上传到Linux服务器中software文件夹中。

OK,文件已经上传成功,我们使用Xshell终端工具来连接我们的linux服务器。来到/usr/local/software文件夹中

2.2 第一步 安装 Pcre安装包。

在Liunx系统中,解压文件要根据包名,使用不同的解压命令,常见的解压命令有:

解压文件 tar jvxf 文件名 bz2后缀
 解压文件 unzip 文件名 zip后缀
 解压文件 tar zxvf 文件名 file.tar.gz 后缀gz

OK,我们现在来解压 pcre 输入命令unzip  pcre-8.32.zip 解压完成之后 输入ls 命令 列举当前目录下面所有的文件,多了一个pcre 蓝色的文件夹。

我们进入文件夹开始安装。

安装包里的文件是不是有很多,这里有一个非常特殊的文件,叫做configure文件,这是linux下面软件预编译文件。

linux下面软件安装的三大步骤:

1、预编译 使用脚本预编译configure 文件 ./configure --prefix=/安装目录 
2、编译,按照脚本准备内容,编译软件 make
3、安装,将编译好的软件,移动到目录,make install

好了,我们现在开始第一步 预编译软件使用命令 ./configure --prefix=/usr/local/prce ,这行的命令是指,将软件编译安装到/usr/local/prce文件夹中。回车,让它去编译。

我们看到现在没有在编译,是不是看到error了。说明是预编译报错了。我们在安装CentOS的时候,没有把需要安装的一些包文件进行安装,因为很多软件都会依赖这些包。

现在我们来安装这些包文件 输入命令 yum install -y gcc gcc-c++ -- 就在线找到这些包,并进行安装。

系统就会自动去安装。安装完成后,我们在来预编译输入命令 ./configure --prefix=/usr/local/prce 

OK,预编译完成了,我们看到没有出现error,说明已经预编译成功了。

我们开始第二步,编译 直接输入 命令 make

没有出现error,说明编译已经完成了。最后一步,开始安装。输入命令 make install。把软件安装到/usr/local/prce文件夹中。

好了,到这一步我们的pcre包已经安装完成了,我们去/usr/local/文件夹中看一下有没有这个prcee文件夹。输入命令 cd /usr/local/

说明已经安装完成!

2.3 安装 Httpd Apache 服务器

    Httpd依赖于 apr-1.4.6.tar.bz2 和 apr-util-1.5.2.tar.gz这两包文件

    好了我们开始解压包文件 Httpd、 apr  和  apr-util

输入命令 :tar jvxf apr-1.4.6.tar.bz2

输入命令: tar zxvf apr-util-1.5.2.tar.gz

输入命令: tar zxvf httpd-2.4.4.tar.gz

蓝色的代表文件夹,解压完成了。我们说过Httpd 依赖于apr和apr-util这两个包。现在我们要将解压后的两个文件夹移动到httpd-2.4.4中的srclib中去。

我们来看一下httpd-2.4.4的文件目录

是不是有一个srclib文件夹,这个文件夹就是要添加引用的类库。我们把apr和apr-util这两个包移动到httpd-2.4.4中的srclib中去。

输入命令:mv apr-1.4.6 httpd-2.4.4/srclib/apr

输入命令:mv apr-util-1.5.2 httpd-2.4.4/srclib/apr-util

OK 我们去httpd-2.4.4中的srclib看一下有没有这两个文件夹,输入命令 cd httpd-2.4.4/srclib

好了,文件移动成功了。现在我们开始安装httpd了,在安装之前,我们来看一下Linux下面有没有安装httpd Apache 如果已经安装了,我们要卸载重新安装,如果没有就直接安装。

输入 http -V 来查询当前安装httpd的版本。

linux系统安装时候默认会安装httpd 版本是2.2的,现在我们需要卸载掉,重新装最新版的httpd !

输入命令:yum remove httpd

输入 Y 确认进行卸载!

卸载完成后,

开始安装 apr 和 apr-util(在安装Httpd时会安装srclib里面的apr和apr-util两个包。如果没有安装需要手动来安装这两个包)

    1、进入到apr 目录 。安装三个步骤

预编译==》直接输入 ./configure --prefix=/usr/local/apr

编译===》 make

安装===》make install

2、进入到apr-util目录 。安装三个步骤  注意:apxr-util 依赖于 apr 所以安装时要指定apr安装目录 使用with

预编译==》 直接输入 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

编译===》 make

安装===》make install

我们开始安装Httpd 了,安装Httpd一样,要进行三步 ,预编译 编译 安装。来到Httpd-2.4.4

OK ,我们说过configure是预编译文件,现在我开预编译,将httpd 安装到usr/local/apache 安装之前,需要指定pcre的安装目录。通过 with 来指定依赖包的安装目录。OK

输入命令 ./configure --prefix=/usr/local/apache --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/prce

OK,没有出现error,说明预编译已经完成了!

开始编译和安装 输入命令 make && make install

好了,httpd 已经安装成功了,我们去目录看一下 cd /usr/local/apache

我们来看一下apache的最重要配置文件 apache/conf/httpd.conf

我们用vi 命令来查看文件 vi httpd.conf

关于apache的配置文件大家可以自己去百度学习一下,这里就不做太多的介绍了,最主要用到的地方如下:

通过shift键+:输入 set + nu 回车可以开启vi 编辑器 的行号。

ServerRoot "/usr/local/apache"      //这是apache安装的根目录。

Listen 80 apache                         //默认监听80端口。

ServerName www.example.com:80  //设置域名

DocumentRoot "/usr/local/apache/htdocs" //网站路径。

我们简单了解一下,现在我们需要用vi编辑器来修改域名,并启动apache服务器。

按Inset键进入编辑状态 ,Esc退出编辑状态

按shift键+: 输入wq 键 保存并退出  按shift键+: 输入w! 键 不保存退出

修改完成后,保存退出,开启apache服务。

来到 bin目录 输入命令 ./httpd 或 ./httpd start 开启服务 。

输入命令 发送http请求 wget http://localhost:80  如果能够接受说明apache服务开启完成!

设置apache服务默认开机启动

1、找到Linux系统默认开机启动目录 etc/rc.d/init.d目录

2、将apache启动文件名复制到etc/rc.d/init.d目录
3、输入命令 cp apachectl /etc/rc.d/init.d/apache 回车

4、修改etc/rc.d/init.d/apache文件

用 vi命令打开文件在文件头上加上
    chkconfig:35 70 30

description:apache

5、注册服务:chkconfig --add apache
6、开启服务:service apache start
7、关闭服务:service apache stop
8、重启服务:service apache restart

我们可以到Linux中查看是不是可以正常访问80端口。

OK,到这里我们的httpd apache服务器已经安装成功了!

Linux 安装Mono环境 运行ASP.NET(一)的更多相关文章

  1. Linux 安装Mono环境 运行ASP.NET(二)

    一.安装libgdiplus     前面我们已经安装了apr.apr_util.pcre和httpd apache .现在我们来安装libgdiplus Libgdiplus是一个Mono库,用于对 ...

  2. linux 安装 node 环境

    本篇学习的分享主要说在linux 安装 node 环境,个人也是在腾讯云的实验室课程学习的,这里只是个人的一个学习记录, 大家也可以去腾讯的实验室来体验一下,教程十分详细易学. 1 .安装 Node. ...

  3. vs2017 在win10下安装后开始运行asp.net core 项目时出错

    vs2017 在win10下安装后开始运行asp.net core 项目时出错 报找不到什么 解决方法: 下载 asp.net 2.2 安装好,重新启动电脑问题解决.

  4. linux安装maven环境

    linux安装maven环境 一. 下载压缩包: 官网地址: http://maven.apache.org/download.cgi 或者百度网盘链接:https://pan.baidu.com/s ...

  5. [CentOS_7.4]Linux编译安装mono环境

    一 安装mono 安装过程: 下载mono安装源,配置,编译,安装,设置环境变量. # wget http://download.mono-project.com/sources/mono/mono- ...

  6. Linux 安装nodejs环境以及路径配置

    linux安装nodejs有2种方式一种简单的,解压即可用:另一种,通过下载source code ,通过编译,make,make install命令来安装. 这里只讲第一种,简单方便.不需要执行ma ...

  7. Linux安装python环境脚本

    自动安装python环境的脚本 1.首先判断是不是root用户 2.判断是否安装 3.是否下载成功(网络可能有问题) 4.是否解压成功(文件下载可能缺少) 5.安装配置python环境 # codin ...

  8. Linux安装配置go运行环境

    1. 下载go,解压 gz包 wget https://storage.googleapis.com/golang/go1.7.5.linux-amd64.tar.gz tar zxvf go1.7. ...

  9. Ubuntu 环境 运行Asp.net mvc +EntityFramework+ Mysql

    关键词:ubuntu,mono,.Net framework 4.5,asp.net mvc 4,Entityframework 6,Mysql Mono安装 参考文章: Install Mono o ...

随机推荐

  1. 线性数据结构之栈——Stack

    Linear data structures linear structures can be thought of as having two ends, whose items are order ...

  2. Convert BSpline Curve to Arc Spline in OpenCASCADE

    Convert BSpline Curve to Arc Spline in OpenCASCADE eryar@163.com Abstract. The paper based on OpenCA ...

  3. C++内联函数

    在C语言中,我们使用宏定义函数这种借助编译器的优化技术来减少程序的执行时间,那么在C++中有没有相同的技术或者更好的实现方法呢?答案是有的,那就是内联函数.内联函数作为编译器优化手段的一种技术,在降低 ...

  4. Asp.Net Core + Dapper + Repository 模式 + TDD 学习笔记

    0x00 前言 之前一直使用的是 EF ,做了一个简单的小项目后发现 EF 的表现并不是很好,就比如联表查询,因为现在的 EF Core 也没有啥好用的分析工具,所以也不知道该怎么写 Linq 生成出 ...

  5. Mysql - 函数

    Mysql提供的函数是在是太多了, 很多我都见过, 别说用了. 园子里面, 有人弄了一个比较全的. MYSQL函数 我这里会将他写的完全拷贝下来, 中间会插入一些自己项目中使用过的心得 一.数学函数 ...

  6. IP报头

      位字段的值设置为二进制的0100表示IP版本4(IPv4).设置为0110表示IP版本6(IPv6)   位,它表示32位字长的IP报头长度,设计报头长度的原因是数据包可选字段大小会发生变化.IP ...

  7. 关于javascript中的this关键字

    this是非常强大的一个关键字,但是如果你不了解它,可能很难正确的使用它. 下面我解释一下如果在事件处理中使用this. 首先我们讨论一下下面这个函数中的this关联到什么. function doS ...

  8. python安装BeautifulSoup注意事项

    好久没有写爬虫了,最近用Python的BeautifulSoup4.Scrapy分别对以前写的spider进行优化,发现python3.5后这些库变化了很多,遇到了许多问题,在这里做一下总结. 切换环 ...

  9. TypeScript

    TypeScript: Angular 2 的秘密武器(译)   本文整理自Dan Wahlin在ng-conf上的talk.原视频地址: https://www.youtube.com/watch? ...

  10. CYQ.Data V5 从入门到放弃ORM系列:教程 - Log、SysLogs两个日志类使用

    Log 静态类介绍: Public Static (Shared) Methods GetExceptionMessage 获取异常的内部信息 WriteLogToDB Overloaded. 将日志 ...