服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 9574|回复: 1

Ubuntu下安装Mono2.10环境Apache+Asp.Net

[复制链接]
dirtysea 发表于 2012-1-9 21:52:34 | 显示全部楼层 |阅读模式
Ubuntu10.04为全新安装,并在安装的过程中选择了ssh server, LAMP server, samba三个角色
1. 安装依赖程序
?
1
apt-get install build-essential bison gettext pkg-config autoconf libtool automake



2. 安装Mono2.10
?
1
2
3
4
5
6
7
wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.10.tar.bz2
tar -xjvf mono-2.10.tar.bz2
cd mono-2.10
./autogen.sh
make
sudo make install
cd ..



记得make install需要sudo,否则会提示无权限
参考资料[1]中的./autogen.sh一行有路径参数,但发现实际输入路径参数会提示找不到该参数,故取消,安装后路径在/usr/local/bin下
3. 安装XSP服务器
?
1
2
3
4
5
6
7
wget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.10.tar.bz2
tar -xjvf xsp-2.10.tar.bz2
cd xsp-2.10
./configure
make
sudo make install
cd ..



同第2步,参考资料[1]中的./configure一行有路径参数,但发现实际输入路径参数会提示找不到该参数
4. 安装apache-dev
?
1
apt-get install apache2-dev



5. 修整相关文件
?
1
2
3
sudo mv /etc/apache2/mod_mono.conf /etc/apache2/mods-available/
sudo a2enmod mod_mono
sudo service apache2 restart



默认mod_mono安装完成后mod_mono.conf会直接出现在/etc/apache2下,ubuntu下的apache2采取分离-包含的配置文件策略,需将mod_mono.conf复制至mods-available并启用mod_mono
6. 修改站点配置文件
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName mono.me.com
    DocumentRoot /var/www/mono
  
    MonoServerPath mono.me.com "/usr/local/bin/mod-mono-server4"
    MonoDebug mono.me.com true
    MonoSetEnv mono.me.com MONO_IOMAP=all
    MonoApplications mono.me.com "/:/var/www/mono"
    <Location "/">
        Allow from all
        Order allow,deny
        MonoSetServerAlias mono.me.com
        SetHandler mono
        SetOutputFilter DEFLATE
        SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-zip dontvary
    </Location>
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
    </IfModule>
  
    ErrorLog /var/log/apache2/error-mono.log
  
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel debug
    CustomLog /var/log/apache2/access-mono.log combined
</VirtualHost>



除了手动更改, 该配置文件还可使用Mono Config Tool自动生成.
需要注意"MonoServerPath mono.me.com "/usr/local/bin/mod-mono-server4"一行,mono2.10采取上述默认过程安装完成后并不在很多文章中提到的/usr/bin下,而在/usr/local/bin下
还有DocumentRoot /var/www/mono 此目录需要有执行权限,否则apache会报403错误
7. 部署站点
新建一个Asp.Net Mvc3应用程序,将该Mvc项目生成部署包,通过samba复制至第6步中设置的站点根目录下,并重启apache2服务,在客户机设定好Host并在浏览器中输入设定的域名,如果一切正常,恭喜你可以看到一个经典的Asp.Net错误页,将customerError设为Off,将会看到,是因为缺少一个System.Web.Helpers的dll。此时,回到Mvc项目中,你需要
(1). 添加如下引用
System.Web.Razor.dll
System.Web.WebPages.Razor.dll
System.Web.WebPages.Deployment.dll
(2). 将如下引用的dll设定为复制到本地
System.Web.Helpers.dll
System.Web.Mvc.dll
System.Web.WebPages.dll
System.Web.Razor.dll
System.Web.WebPages.Razor.dll
System.Web.WebPages.Deployment.dll
(3). 重新生成部署包,覆盖服务器上的bin目录即可。

OK,此时,你已经摆脱了昂贵的Window Server,当然,使用盗版的同学可以偷偷走开,如果你还想摆脱昂贵的Sql Server,那么你可以使用Mysql、PostgreSql、Mongodb,如果你不需要多么强大的性能,那么sqlite也是一个不错的选择。


 楼主| dirtysea 发表于 2012-1-9 22:39:10 | 显示全部楼层
centos 下 安装.NET支持


Apache+mod_mono方式
安装必备软件:
yum install bison make gcc gcc-c++ libstdc++-devel gettext pkgconfig glib2-devel
1、安装libgdiplus
libgdiplus是mono中的System.Drawing依赖的一个组件,用于显示web页面基本颜色等。目前最新是libgdiplus-2.10。
cd /tmp
wget http://ftp.novell.com/pub/mono/s ... diplus-2.10.tar.bz2
tar -xjvf libgdiplus-2.10.tar.bz2
cd libgdiplus-2.10
./configure --prefix=/usr/local
生成makefile时提示失败:
configure: WARNING: *** TIFF plug-in will not be built (TIFF library not found) ***
checking for jpeg_destroy_decompress in -ljpeg... no
configure: WARNING: *** JPEG loader will not be built (JPEG library not found) ***
checking for DGifOpenFileName in -lgif... no
configure: WARNING: *** GIF loader will not be built (giflibrary not found) ***
checking for DGifOpenFileName in -lungif... no
configure: WARNING: *** GIF loader will not be built (ungiflibrary not found) ***
checking for libpng12... no
checking for png_read_info in -lpng... no
configure: error: *** libpng12 not found. See http://www.libpng.org/pub/png/libpng.html.
缺少libtiff、libjpeg、libgif、libpng库。补了这些库之后还会提示有库缺少,一起装了:
yum install libtiff libtiff-devel libjpeg libjpeg-devel giflib giflib-devel libpng libpng-devel libX11 libX11-devel freetype freetype-devel fontconfig fontconfig-devel libexif libexif-devel
继续安装libgdiplus:
./configure --prefix=/usr/local
make
make install
2、安装Mono
cd /tmp
wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.10.2.tar.bz2
tar -xjvf mono-2.10.2.tar.bz2
cd mono-2.10.2
./configure --prefix=/usr/local
make
make install
Mono安装之后,可以用命令mono -V查看一下mono的安装情况,如果能够看到mono版本号等信息,说明Mono安装成功。
3、安装Apache
cd /tmp
wget http://labs.renren.com/apache-mirror//httpd/httpd-2.2.21.tar.gz
tar -xzvf httpd-2.2.21.tar.gz
cd httpd-2.2.21
./configure --prefix=/usr/local/apache --enable-mods-shared=most
make
make install
4、安装mod_mono
cd /tmp
wget http://ftp.novell.com/pub/mono/s ... d_mono-2.10.tar.bz2
tar -xjvf mod_mono-2.10.tar.bz2
cd mod_mono-2.10
./configure
make
make install
5、安装xsp
xsp就是mod-mono-server。
cd /tmp
wget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.10.2.tar.bz2
tar -xjvf xsp-2.10.2.tar.bz2
cd xsp-2.10.2
./configure --prefix=/usr/local
make
make install
如果生成makefile时提示:
checking for MONO_MODULE... configure: error: Package requirements (mono >= 2.10.0) were not met:
No package 'mono' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables MONO_MODULE_CFLAGS
and MONO_MODULE_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
需要设置环境变量,就能编译通过了:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
6、配置Apache
查看/usr/local/apache/conf里已经有mod_mono.conf文件了。
编辑httpd.conf:
vim /usr/local/apache/conf/httpd.conf
1)添加mod_mono.conf配置文件
找到
# Server-pool management (MPM specific)
#Include conf/extra/httpd-mpm.conf
在前面加入:
Include /usr/local/apache/conf/mod_mono.conf
2)将以下一句前的注释去掉:
#ServerName www.example.com:80
不设置ServerName,Apache在启动时会因为domain name报错。
3)建立测试页面:
vim /usr/local/apache/htdocs/test.aspx
网上找了一个,输入:
<%@ Page Language="C#" %>
<html>
<head>
<title>hello world</title>
</head>
<body>
<%
for (int i=1; i<=7; i++)
{
Response.Write("<font size=" + i.ToString() + ">");
Response.Write("hello world");
Response.Write("</font><br />");
}
%>
</body>
</html>
4)重启Apache:
/usr/local/apache/bin/apachectl restart
5)访问测试页面:
http://IP/test.aspx
显示出以下内容表示成功。
6)设置Apache开机自启动:
vim /etc/rc.local
加入:
/usr/local/apache/bin/apachectl start
7)原理说明:
上面所搭建asp.net运行环境,是以apache作为通讯框架,mod_mono作为接口桥(apache的插件),连接apache与xsp的通讯,xsp最终负责asp.net的服务处理,xsp会监听本地端口用来与mod_mono通讯,后者将处理结果返回给apache,apache再返回给客户端。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家

GMT+8, 2024-3-29 20:40 , Processed in 0.089831 second(s), 18 queries .

Powered by Dirtysea

© 2008-2020 Dirtysea.com.

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