在openSUSE中部署基于apache的mono环境

公司的一个.NET项目要迁移到Linux生产环境中,于是开始折腾Mono。

简单介绍一下Mono,Mono是Novell主持的一个开源项目,它可以运行在Windows/Linux/FreeBSD/Unix/Mac OS和Solaris中。Mono包括C#编译器和CLR。

由于生产环境是openSUSE,所以开发机也部署相同的操作系统。我现在用的是openSUSE 11.3。可以从openSUSE的官网下载11.3的DVD安装包。

前提工作:

1.安装openSUSE是不用说的了。

2.进入openSUSE,通过”Install/Remove Software”从DVD中安装apache2/mysql/mono。可以把mono的开发环境也一并装上,方便调试开发。

各个基础软件装好后,现在开始整合。

1.默认安装的apache2是不会自动启动的,因此我们需要手工开启apache2的服务。打开终端,输入:

linux-9w69:/ # service apache2 status
Checking for httpd2: unused

我们可以看到apache2的状态是未开启的。现开启apache2。

linux-9w69:/ # service apache2 start
Starting httpd2 (prefork)    done

如果每次都要手工开启apache2的服务,显然太麻烦了,我们把apache2设置为服务自动开启。

linux-9w69:/ # chkconfig --list apache2
apache2   0:off  1:off  2:off  3:off  4:off  5:off  6:off
linux-9w69:/ # chkconfig --level 2345 apache2 on

这样就把服务打开了。

2.mysql的配置也是一样的。我们也把mysql设置为自动启动。

linux-9w69:/ # chkconfig --list mysql
mysql    0:off  1:off  2:off  3:off  4:off  5:off  6:off
linux-9w69:/ # chkconfig --level 2345 mysql on

MySQL因为是默认安装的,root帐号的默认密码是空的,我们需要给mysql的root帐号设置一个密码。

linux-9w69:/ # service mysql start
Starting service MySQL   done
linux-9w69:/ # mysqladmin -u root -p password '你的密码'

OK,到这一步我们把mysql也配置好了。

3.现开始修改apache2的配置让它支持mono。

linux-9w69:/ # whereis apache2
apache2: /etc/apache2 /usr/lib/apache2 /usr/include/apache2 /usr/share/apache2
linux-9w69:/ # cd /etc/apache2
linux-9w69:/etc/apache2 #

找到apache2的配置文件目录,这里是“/etc/apache2/”,编译“httpd.conf”,在它的

Include /etc/apache2/vhosts.d/*.conf

这一行下面添加:

Include /etc/apache2/conf.d/mod_mono.conf

让apache2支持Mono。

默认安装的apache2网站根目录是“/srv/www/htdocs”,进入这个文件夹,我们创建一个”firstpage.aspx”的页面。内容如下:

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head runat="server">
	<title>default</title>
	<script runat="server">

	</script>
</head>
<body>
	<form id="form1" runat="server">
		<%=DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")%>
	</form>
</body>
</html>

我们之前有修改apache2的配置,所以需要先重启apache2。

linux-9w69:/etc/apache2 # service apache2 restart
Syntax OK
Shutting down httpd2 (waiting for all children to terminate)  done
Starting httpd2 (prefork)   done

好了,现所有的工作都完成了。

打开浏览器访问http://localhost/firstpage.aspx,我们会看到当前页面显示了系统时间 。

已有 1 条评论

  1. Test 说:

    import *;
    String int=char;

发表评论

*

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: