银河

SKYIV STUDIO

  博客园 :: 首页 ::  ::  :: 订阅 订阅 :: 管理 ::
  105 随笔 :: 2 文章 :: 747 评论 :: 22 Trackbacks
单位有一台闲置的旧 IBM Netfinity 7000 的服务器,双 Pentium Pro 200 MHz CPU,512 MB 内存,一个 9.1 GB 和五个 4.5 GB 的 SCSI 硬盘。我想将其废物利用一下,于是:
1. 到 http://tw.releases.ubuntu.com/edgy/ 下载  PC (Intel x86) server install CD ,将下载得到的 ubuntu-6.10-server-i386.iso 文件刻录一张光盘。
2. 用这张光盘在 IBM Netfinity 7000 服务器上安装 Ubuntu 6.10 (Edgy) 。
3. 安装 Apache2:
    sudo apt-get install apache2
4. 安装基本的编译环境:
    sudo apt-get install build-essential checkinstall
5. 安装 libapache2-mod-mono:
    最简单的方法就是使用以下命令:
    sudo apt-get install libapache2-mod-mono
    但是目前在 Ubuntu 6.10 中这条命令会报错。只好自己编译一个了:
    md src
    cd src
    sudo apt-get install apache2-threaded-dev mono-xsp2 mono-apache-server mono-apache-server2
    wget http://go-mono.com/sources/mod_mono/mod_mono-1.2.1.tar.gz
    tar xzf mod_mono-*.tar.gz
    cd mod_mono-*/
    ./configure --prefix=/usr --sysconfdir=/etc
    make
    sudo checkinstall
6. 配置 Apache2 以便运行 ASP.NET 2.0
    cd /etc/apache2/mods-available
    sudo ln -s ../mod_mono.conf mod_mono.conf
    sudo echo "LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so" > mod_mono.load
    sudo a2enmod mod_mono
    cd ../sites-available
    sudo vim ben.skyiv.com  请参考 default 文件的内容,关键是加入以下语句:
    # -------------------------------------------------
      Alias /ben /home/ben/www/ben
      AddMonoApplications ben "/ben:/home/ben/www/ben"
      MonoServerPath ben /usr/bin/mod-mono-server2
      <Location /ben>
         MonoSetServerAlias ben
         SetHandler mono
      </Location>
    # -------------------------------------------------
    sudo a2ensite ben.skyiv.com
    sudo /etc/init.d/apache2 restart
7. 完成。运行效果请见: http://ben.skyiv.com/ben/aspx/info.aspx

参考文献:
http://www.ifolder.com/index.php/HowTo:iFolder_Enterprise_Server_on_Ubuntu_6.10
https://help.ubuntu.com/community/ModMono
http://www.mono-project.com/Mod_mono
posted on 2006-12-22 16:26 银河 阅读(6357) 评论(31)  编辑 收藏 所属分类: .NET Framework

评论

你用的这个好象是Mono,不是.NET Framework里面的ASP.NET 2.0吧!
  回复  引用    

#2楼  2006-12-22 16:38 *悟*道* [未注册用户]
也希望大家一起来讨论这个问题,本人在线等待...
  回复  引用    

#3楼  2006-12-22 17:40 Jason Cui      
不错啊。不知道性能怎么样?有哪些代码是兼容的?哪些是不兼容的?
  回复  引用  查看    

@*悟*道*
ASP.NET 2.0环境只能在WINDOWS下用,他在LINUX下跑当然只能用MONO了.......
  回复  引用    

#5楼 [楼主] 2006-12-22 19:21 银河      
@剑在上海^^
> ASP.NET 2.0环境只能在WINDOWS下用,他在LINUX下跑当然只能用MONO了.......
不会吧? 谁说ASP.NET 2.0环境只能在WINDOWS下用?
我这篇文章的题目就是“在 Linux 下运行 ASP.NET 2.0”。
说明ASP.NET 2.0也可以在Linux下用。
mono是.NET Framework的跨平台实现,可以用在Windows、Linux和Mac OS等操作系统上。
  回复  引用  查看    

#6楼 [楼主] 2006-12-22 19:31 银河      
@Jason Cui
> 不错啊。不知道性能怎么样?有哪些代码是兼容的?哪些是不兼容的?
mono 的当前版本是 1.2.2, 对 .NET Framework 2.0 的兼容性已经很好了,具体可参见: http://www.go-mono.com/archive/1.2.2/

  回复  引用  查看    

用什吗数据库?
  回复  引用  查看    

#8楼  2006-12-22 20:24 lankey [未注册用户]
不错!
  回复  引用    

http://www.mono-project.com/Main_Page
  回复  引用  查看    

举个powered by mono 的网站的例子
  回复  引用  查看    

#11楼 [楼主] 2006-12-22 20:48 银河      
@二手的程序员
> 用什吗数据库?
数据库是: MySQL 5.0.24a, 使用
sudo apt-get install mysql-server
命令安装.

.NET 编程接口(MySql Connector/Net 1.0)在以下网站
http://www.mysql.org/downloads/connector/net/1.0.html
下载

在 C# 中访问 MySQL 数据也非常简单, 与访问 SqlServer 等数据的方法差不多, 以下是获取 MySql 版本号的示例代码(就是我的网站的源程序的一部分):
public static string DbVersion
{
get
{
if (dbVersion == null)
{
using (IDbConnection conn = new MySqlConnection("Server=" + theHost +
";Database=mis;User ID=theUserid;Password=thePassword"))
{
conn.Open();
IDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT VERSION()";
dbVersion = "MySQL-" + cmd.ExecuteScalar().ToString();
}
}
return dbVersion;
}
}


  回复  引用  查看    

#12楼  2006-12-22 22:23 航天奇侠      

没有窗口,没有开发工具,mono好难发展。

  回复  引用  查看    

#13楼 [楼主] 2006-12-22 22:27 银河      
@航天奇侠
> 没有窗口,没有开发工具,mono好难发展。
有窗口, 有开发工具(monodevelop), mono容易发展:
http://www.monodevelop.com/Main_Page

mono 除了支持 GTK# 的可视化设计外, 还支持
System.Windows.Forms

  回复  引用  查看    

#14楼  2006-12-22 22:30 Cat Chen      
Mono能有这个样子看起来已经不错,MS宁愿去支持MacOSX也不支持Linux,哎……
  回复  引用  查看    

#15楼 [楼主] 2006-12-22 22:38 银河      
@Cat Chen
> Mono能有这个样子看起来已经不错,MS宁愿去支持MacOSX也不支持Linux,哎……

微软觊觎Linux巨大市场 正式宣布与Novell合作
http://it.sohu.com/20061103/n246189590.shtml

  回复  引用  查看    

#16楼  2006-12-22 23:41 Wisdom-zh      
多一种选择了, 呵呵

  回复  引用  查看    

#17楼  2006-12-23 08:45 随心所欲      
不错。
原来以为只有上php了呢
  回复  引用  查看    

very good!
只是不知道能不能长期稳定运行。
要是反盗版厉害的话,
我看大家都会是linux + apache + mono 了开发了
  回复  引用    

#19楼 [楼主] 2006-12-23 09:38 银河      
@虫子[匿名]
> 只是不知道能不能长期稳定运行。
我想, Linux 至少比 Windows Server 2003 稳定多了. 而且, Linux 用作服务器的话, 可以不安装 X-Window , 占用的系统资源也少.
我现在一般是在 Hiweed (一种基于 XUbuntu 的 Linux) 操作系统上, 用 ssh 登录到服务器上进行操作, 多数情况下使用命令行操作, 必要时也可以在服务器上运行 GUI 程序, 这时 Hiweed 操作系统上运行 X-Server, 服务器上是 X-Client.

> 要是反盗版厉害的话,
> 我看大家都会是linux + apache + mono 了开发了
有同感. 除了 LAMP (Linux, Apache, MySQL 和 PHP) 外, 也可以:
Linux + Apache2 + MySQL5 + Mono(ASP.NET 2.0)
进行开发.

  回复  引用  查看    

#20楼 [楼主] 2006-12-23 10:04 银河      
mono 还提供一个工具( http://www.mono-project.com/Moma )用来帮助把.NET应用程序迁移到Mono环境中:
The Mono Migration Analyzer (MoMA) tool helps you identify issues you may have when porting your .Net application to Mono. It helps pinpoint platform specific calls (P/Invoke) and areas that are not yet supported by the Mono project.
也就是说, 能够通过MoMA检验的.NET程序(大部分程序都可以通过), 就可以直接拷贝到Mono环境下运行了.
这又给我们一个选择, 在Windows系统下利用Viusal Studio 2005等工具开发程序(注意随时用MoMA检验), 然后再部署到Linux环境运行.


  回复  引用  查看    

#21楼  2006-12-23 12:08 航天奇侠      
为何不可以直接运行?难道和 ms 的 il 不相同?
如果是mono的可以直接在windows上运行么?

  回复  引用  查看    

#22楼 [楼主] 2006-12-23 12:37 银河      
@航天奇侠
> 为何不可以直接运行?难道和 ms 的 il 不相同?
> 如果是mono的可以直接在windows上运行么?
误会了.
是可以直接运行的.
如果没有 platform specific calls (P/Invoke) 和 areas that are not yet supported by the Mono project 的话, 就可以直接在 Mono 环境下运行.
MoMA 只是用来检验是否有 P/Invoke 和 not yet supported 而已, 并不是说 .NET 程序要经过 MoMA 转换才能在 Mono 环境运行.

  回复  引用  查看    

#23楼  2007-09-13 22:10 wwy [未注册用户]
能把第6步中的default文件贴出来么,照着你说的做了,到了这一步不住到该加到什么地方
  回复  引用    

#24楼 [楼主] 2007-09-13 23:00 银河      
@wwy
下面是 /etc/apache2/sites-available/ben.skyiv.com 文件的内容:
<VirtualHost ben.skyiv.com>
        ServerName ben.skyiv.com

        DocumentRoot /home/ben/www/default
        
<Directory /home/ben/www/default>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                Allow from all
                DirectoryIndex index.html
        
</Directory>

        Alias /aspx "/home/ben/www/aspx"
        AddMonoApplications default "/aspx:/home/ben/www/aspx"
        MonoServerPath default /usr/bin/mod-mono-server2
        
<Location /aspx>
                SetHandler mono
        
</Location>

        Alias /ben "/home/ben/www/ben"
        AddMonoApplications ben "/ben:/home/ben/www/ben"
        MonoServerPath ben /usr/bin/mod-mono-server2
        
<Location /ben>
                MonoSetServerAlias ben
                SetHandler mono
        
</Location>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        
<Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        
</Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    
<Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    
</Directory>

</VirtualHost>

  回复  引用  查看    

#25楼 [楼主] 2007-09-18 15:30 银河      
我在正文中提到:
---------------------------------------------------
5. 安装 libapache2-mod-mono:
最简单的方法就是使用以下命令:
sudo apt-get install libapache2-mod-mono
但是目前在 Ubuntu 6.10 中这条命令会报错。只好自己编译一个了:
......
---------------------------------------------------
最近,在 Ubuntu 7.04 环境下,发现
sudo apt-get install libapache2-mod-mono
这个命令已经可以使用了。
这说明 Linux 和 mono 都在不断进步中。 :)

  回复  引用  查看    

#26楼  2007-11-14 16:19 gzlsl [未注册用户]
请问版主及各位大侠:

我用的是ASP.NET2.0+ACCESS(.mdb)数据库,可以放于UBUNTU下用吗?
具体如何设置,主要是数据库这一块?

谢谢先!!!
  回复  引用    

#27楼 [楼主] 2007-11-14 21:02 银河      
@gzlsl
ASP.NET 2.0 在 Ubuntu 下没有问题。
但是 Access 就不清楚了。
建议使用 MySql 作为数据库。

  回复  引用  查看    

#28楼  2007-12-18 00:24 mathgl [未注册用户]
access没有linux的版本

一般搭配 mysql or postgresql
  回复  引用    

#29楼  2008-04-25 11:23 mono Good [未注册用户]
mono 已经很实用!
www.linuxdot.net 就是一个探讨linux下dotnet应用的专门网站(桌面/服务器程序设计、WEB应用[ASP.NET]程序设计、服务器架构等),更重要的是,这个网站非常重视实践,其网站本身就是用 linux+mono 构建成的ASP.NET网站!
  回复  引用    

#30楼  2008-04-26 01:16 dalanzhu [未注册用户]
这样可以可以连接ms sql2005吗?
  回复  引用