一、安装libgdiplus

    前面我们已经安装了apr、apr_util、pcre和httpd apache 。现在我们来安装libgdiplus

Libgdiplus是一个Mono库,用于对非Windows操作系统提供GDI+兼容的API。libgdiplus是mono中的System.Drawing依赖的一个组件,用于显示web页面基本颜色等

Libgdiplus会依赖linux系统中一些必要的包,如果缺少包,我们可以在线安装这些包。输入以下命令就可以安装了。

yum -y install gcc gcc-c++ bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel  cairo-devel

来到解压后的Libgdiplus文件夹输入预编译命令 ./configure --prefix=/usr/local/mono ,Mono 依赖Libgdiplus包,所有我们将Libgdiplus 安装到mono文件夹中。

OK,是不是已经报错了,找不到这个glib-2.0这个依赖的包。我们把所有要用到的包都安装好。输入命令进行安装。它会提示下载安装。直接输入y.

安装成功后会提示类库组件已经安装完成了。

再次输入预编译语句: ./configure --prefix=/usr/local/mono

没有error,说明预编译已经完成了,直接输入make && make install 进行编译并安装。

安装完成后我们来到 cd /usr/local/mono

看到 Libgdiplus 已经安装完成了!

二、安装Mono

    mono编译到安装大概需要较长的时间,安装过程一样也是三个步骤。预编译==》编译==》安装。

预编译        ===》 ./configure --prefix=/usr/local/mono

编译并安装  ===》 make && make install 

mono安装完成后,我需要配置mono的环境。

1、cd /etc 找到profile 文件

2、用vi编辑器打开文件profile 按shift+g定位到文件的最后面,加入以下代码

PATH=/usr/local/mono/bin:$PATH --mono安装目录
export PATH

3、保存文件 重新加载配置文件  输入命令:source /etc/profile  查看mono 版本命令: mono -V

 三、安装Xsp

mono安装完成了,剩下的安装就很快了,Xsp依赖于mono,所以我们把Xsp安装到/usr/local/mono中。

Xsp依赖于mono,所以要输出mono的安装目录

export PKG_CONFIG_PATH=/usr/hocal/mono/lib/pkgconfig:$PKG_CONFIG_PATH

来到解压后的Xsp文件夹中输入预编译命令

 ./configure --prefix=/usr/local/mono

OK,预编译 没有报错。

输入命令 make && make install 编译并安装!

OK,Xsp安装完成了,我们来检查一下。cd /usr/local/mono/bin 是不是有xsp文件

我们来运行xsp 输入命令 ./xsp4   xsp相当于一个小型的服务器,现在服务已经启动监听端口为9000。

我们来到Linux服务器用浏览器访问http//localhost:9000

说明Xsp已经安装成功了。

四、安装mod_mono

mod_mono也依赖于mono,所以我们也把它安装到/usr/local/mono中。

但在预编译的时候,会出现一些错误,我们需要修改配置文件来完成编译和安装!

来到我们解压后的文件夹

输入预编译命令 ./configure --prefix=/usr/local/mono

报错了,apache 1.3版本已经不支持了,最小支持2.0,前面已经卸载掉重新装了apache了,现在我们需要指定apache安装目录。输入命令:

./configure --prefix=/usr/local/mono --with-apxs=/usr/local/apache/bin/apxs --with-apr-config=/usr/local/apr/bin/apr-1-config --with-apu-config=/usr/local/apr-util/bin/apu-1-config

OK,说明预编译已经通了。

现在开始编译和安装了。输入命令 make。

编译出现错误了,现在我们需要修改配置文件了。我们找到src/mod_mono.c文件 使用命令 vi mod_mono.c

1、 在389行:将原来的 return nixd_config.user_id 改为 return ap_nixd_config.user_id;

2、在399行:将原来的 return unixd_config.group_id; 修改为 return ap_unixd_config.group_id;

3、在409行:将原来的 return unixd_config.user_name; 修改为 return ap_unixd_config.user_name;

4、在488行 将原来的 rv =unixd_set_global_mutex_perms (xsp->dashboard_mutex);

修改为 rv =ap_unixd_set_global_mutex_perms (xsp->dashboard_mutex);

5、在854行 将方法里面的所有代码全部删除,修改为  return c->client_addr->port;

     

6、在861行将方法里面的内容全部删除,修改为 return r->connection->local_addr->port;

 

我们先保存修改的内容,回到上级目录,我们在编译一下:make

是不是错误已经少多了。现在我在来修改src/mod_mono.c文件。

7、1968行,将原来的 info.remote_ip_len = strlen (r->connection->remote_ip); 修改为 info.remote_ip_len = strlen (r->connection->client_ip)

 

8、2016行,将原来的

ptr += write_string_to_buffer (ptr, 0, r->connection->remote_ip, info.remote_ip_len);修改为

ptr += write_string_to_buffer (ptr, 0, r->connection->client_ip, info.remote_ip_len);

保存,回到上级目录 cd../ 然后在编译make

OK 没有出错,编译完成,安装 make install

配置Apache服务器

mod_mono安装成功后,会在apache/conf/文件夹中存在名为mod_mono.conf的配置文件。

我们前往apache/conf目录。

1、我们现在用vi打开这个mod_mono.conf文件。在文件的最后面添加mono的安装目录。

MonoServerPath /usr/local/mono/bin/mod-mono-server4

2、修改httpd.conf 文件 在最后面加入  include conf/mod_mono.conf

3、重新启动apache服务器。service apache restart.

我们远程上传一个aspx的文件到linux服务器中。apache默认的网站目录是/apache/htdocs中!

我们在linux服务器中访问以下地址。说明asp.net环境已经搭建成功了!

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

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

    1.先看一下Linux环境下面请求的过程,(画的不是很好,简单的了解一下原理.) .NET跨平台其实需要这三个关键:编译器.CLR和基础类库.在.NET下我们编写一个最简单的"Hello W ...

  2. linux 安装 node 环境

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

  3. linux安装maven环境

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

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

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

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

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

  6. linux安装lamp环境(linux+apache+mysql+php)

    源码安装 本次使用 Centos7.2 MySQL5.7.22 Apache2.4.37 PHP5.6.38 安装Apache 安装httpd和所需依赖:gcc, apr, apr-util,apr- ...

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

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

  8. Linux安装python环境脚本

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

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

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

随机推荐

  1. 数据结构作业——Fresh Meat(优先队列)

    Fresh Meat Description 我们故事的主角是屠夫扒鸡,起初屠夫扒鸡只是一个佣兵,他先去拜了太上老君为师,学了一技能肉钩,凭着一技肉钩驰骋决斗场,达到一段以后到阿尔伯特那里偷学了二技能 ...

  2. 图片懒加载jquery lazyload

    <script type="text/javascript" src="jquery-1.11.3.min.js"></script>& ...

  3. jquery1.7.2的源码分析(二)

    jquery.extend jQuery.extend = jQuery.fn.extend = function () { var options, name, src, copy, copyIsA ...

  4. springmvc @responsebody 406/415问题解决

    提供几个解决思路 1.如果项目中用的spring jar包是4.x版本, 需要jackson-annotations-2.x/jackson-core-2.x/jackson-databind-2.x ...

  5. 【HTML5&CSS3进阶学习02】Header的实现·CSS中的布局

    前言 我们在手机上布局一般是这个样子的: 其中头部对整个mobile的设计至关重要,而且坑也很多: ① 一般来说整个header是以fixed布局,fixed这个产物在移动端来说本身坑就非常多 ② 在 ...

  6. 遍历Map的方法

    1.使用 entrySet() entrySet()  -->  官方推荐将Map转换成Map.Entry对象的Set集合 Set entrys = map.entrySet(); Iterat ...

  7. Linux命令-自动挂载文件/etc/fstab功能详解[转]

    一./etc/fstab文件的作用 磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载. 系统开机时会主动读取/etc/fstab这个文件中的内容 ...

  8. chrome谷歌浏览器插件制作简易教程

    1.在磁盘上创建一个目录,用来放应用的代码和资源 2.在这个目录中,创建一个文本文件,命名为manifest.json,其内容为: { "manifest_version": 2, ...

  9. rpm查询命令摘要

    任务 命令 显示软件包的相关信息 rpm -q -i NAME 列出软件包中含有的所有文件 rpm -q -i NAME 列出软件包中含有的配置文件 rpm -q -c NAME 列出软件包中含有的文 ...

  10. zookeeper_service 出错 java.lang.NoClassDefFoundError: org/I0Itec/zkclient/exception/ZkNoNodeException

    2016-12-18 08:28:07 ContextLoader:358 ERROR - Context initialization failed java.lang.NoClassDefFoun ...