设为首页 收藏本站
查看: 1157|回复: 0

[经验分享] Apache+mono+xsp搭建Linux下的asp.net平台

[复制链接]

尚未签到

发表于 2015-8-3 08:07:26 | 显示全部楼层 |阅读模式
  首先申明这是别人写的文章,我没法分享到博客园就只能复制过来了。
  核心:利用开源项目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)网页访问权限
要让别的机器访问即将发布的网页,我们需要将 中的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所在的路径
# 配置上述实际应用
MonoSetServerAlias test
SetHandler mono

此时我们的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"

MonoSetServerAlias test
SetHandler mono

其中/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下发布,虽然有点笨但可以成功实现动态网页的呈现!
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-93452-1-1.html 上篇帖子: Apache mahout 源码阅读笔记--DataModel之FileDataModel 下篇帖子: Apache PHP 配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表