zoukankan      html  css  js  c++  java
  • Apache+mono+xsp搭建Linux下的asp.net平台

    首先申明这是别人写的文章,我没法分享到博客园就只能复制过来了。

    核心:利用开源项目mono来辅助linux内核搭建支持asp.net的平台

    1.首先我们需要下载以下安装包:

    apache(强大的web服务器开源软件,此处我们只需要它的httpd组件)



    mod-mono(真正实现支持.aspx等文件的mono模块)

    xsp(轻量级web服务器,此处我们只是利用它内部支持mod-mono-server的模块)

    mono(开源项目基础安装)

    下载地址:mono,mod-mono,xsp:
    http://ftp.novell.com/pub/mono/sources/

    http://ftp.novell.com/pub/mono/sources-stable/

    apache: http://httpd.apache.org/download.cgi

    2.顺序安装以上软件包:

    apache:

    ./configure

    make

    make install

    mono:

    ./configure

    make

    make install

    注意:在执行./configure后,可能会出现以下几个问题:

    (1)错误:没有安装bison

    解决方法:直接apt-get install安装bison,如果不行就去网上下载一个bison的软件包,手工执行./configure;make;make install来进行安装

    (2)错误:不支持gettext

    解决方法:更新源至科大debian源,然后直接apt-get install一般就可以了

    make命令的执行时间会有十几分钟,耐心等待...

    xsp:

    ./configure --prefix=/usr

    make

    make install

    mod-mono:

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

    make

    make install

    3.配置httpd.conf

    安装好了上述软件包并不代表我们的平台就搭好了,还需要修改apache的配置文件httpd.conf

    vim /usr/local/apache2/conf/httpd.conf

    (1)ServerName

    修改网页发布的ip地址。作为测试,直接设置成本机地址就好了:

    ServerName 本机ip地址:80

    (2)网页访问权限

    要让别的机器访问即将发布的网页,我们需要将 <Directory></directory>中的Deny from all改成Allow from all以便获得最大权限。当然如果考虑到安全性,可以另外设置,具体参见文章最后的参考资料

    (3)使apache载入mod-mono模块

    在配置文件开头增加如下语句可以让apache载入mod-mono模块:

    Include /usr/local/apache2/conf/mod_mono.conf

    (4)自定义asp.net应用

    在配置文件末尾加入下列语句(#后为注释):


    MonoAutoApplication disabled # 下面语句就是在手动设置mono应用,所以mono自动应用功能需要关闭
    AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd # 添加mono需要识别的文件类型,可以看到这些都是asp.net常用的文件类型
    Alias /test "/usr/lib/xsp/test" # 配置一个虚拟目录
    MonoApplications "/test:/usr/lib/xsp/test" # 配置上述虚拟目录对应的asp.net应用,此处利用的是xsp自带的实例网页代码
    MonoServerPath /usr/bin/mod-mono-server2 # 实际上apache能支持asp.net全是靠一个叫做mod-mono-server的服务器来实现的,此处就是确定使用mod-mono-server的版本(mod-mono-server仅支持asp.net,mod-mono-server2支持asp.net 2.0)
    MonoPath test "/usr/lib/mono/2.0:/usr/lib:/usr/lib/xsp/2.0" # 告诉apache上述mod-mono-server2所在的路径
    <Location "/usr/lib/xsp/test"> # 配置上述实际应用
    MonoSetServerAlias test
    SetHandler mono
    </Location>

    此时我们的httpd.conf配置文件就写好了,然后开启apache:

    cd /usr/local/apache2/bin

    ./apachectl start

    这时在浏览器地址栏输入:

    http://本机ip地址/test

    如果可以看到网页,那么恭喜你,第一步成功了...

    为啥说第一步成功了?还有第二步吗?答案是:有

    当我们试图点击网页上的menu或者gridview时,会发现网页报找不到gdiplus.dll的错误!

    这是因为xsp这个例子中的网页要用到window下的一个动态链接库文件gdiplus.dll,而我们的linux当然没有!别急,我们可以在linux中添加功能相应的.so文件,步骤如下:

    (1)find / -name libgdiplus.so

    发现libgdiplus.so文件位于目录/usr/local/lib/,因此我们需要将此路径写入系统的ld.so.conf配置文件,否则即使存在,系统内核也不会发现这个动态链接库文件

    (2)vim /etc/ld.so.conf 增加一行:include /usr/local/lib/libgdiplus.so

    (3)执行ldconfig命令将新的动态链接库文件添加进ld.so.cache缓存以便mono需要的时候调用

    (4)验证:如果输入命令ldconfig -p|grep libgdiplus.so 有结果,则证明配置成功。此时再次点击menu或gridview,发现问题解决了!

    4.添加自己的asp.net网站

    上面的xsp例子成功了,那我们如何添加自己的asp.net网站呢?方法和上面同理,只需要在httpd.conf中添加类似如下代码即可:

    MonoAutoApplication disabled
    AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd
    Alias /mypage "/home/fjj/mypages"
    MonoApplications "/mypage:/home/fjj/mypages"
    MonoServerPath /usr/bin/mod-mono-server2
    MonoPath test "/usr/lib/mono/2.0:/usr/lib:/usr/lib/xsp/2.0"
    <Location "/home/fjj/mypages">
    MonoSetServerAlias test
    SetHandler mono
    </Location>

    其中/home/fjj/mypages为你的网站根目录,/mypage为虚拟目录。配置好后在浏览器输入:

    http://服务器ip地址/mypage就可以看到自己通过linux发布的asp.net网站了!

    最后注意!!

    1.如果访问网站出现权限问题,可以尝试在服务器通过chmod修改文件的访问权限

    2.由于开发asp.net网站需要配置文件web.config,所以要想linux完美支持asp.net中的一些动态控件(如updatepanel)需要添加web.config文件,这是必不可少的!我的做法是在windows下利用vs2008开发好网站后,将整个工程拷到linux下发布,虽然有点笨但可以成功实现动态网页的呈现!

  • 相关阅读:
    linux下使用yum安装mysql、tomcat、httpd
    C++中 模板Template的使用
    Linux如何在虚拟机中挂载iso yum源
    实例讲解Nginx下的rewrite规则
    WorldWind源码剖析系列:图像助手类ImageHelper
    WorldWind源码剖析系列:缓冲类Cache
    WorldWind源码剖析系列:绘制参数类DrawArgs
    WorldWind源码剖析系列:设置类SettingsBase
    WorldWind源码剖析系列:经纬度格网类LatLongGrid
    WorldWind源码剖析系列:相机类CameraBase
  • 原文地址:https://www.cnblogs.com/malcolm/p/2170130.html
Copyright © 2011-2022 走看看