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


    一、安装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环境已经搭建成功了!

  • 相关阅读:
    IO
    多线程
    常用类
    异常
    接口
    面向对象
    面向对象
    学习数组
    for的嵌套循环
    XML:是什么?怎样工作的?可以做什么?将来的发展有会怎样?
  • 原文地址:https://www.cnblogs.com/liufengs/p/6083603.html
Copyright © 2020-2023  润新知