Pages

Wednesday, 20 February 2013

CentOS Linux上搭建 Nginx+Mono, 运行 ASP.NET

[摘要]Mono是一个由Novell公司(由Ximian发起,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。本文介绍在CentOS Linux上搭建 Nginx+Mono 运行 ASP.NET。
一、获取开源相关程序
1、利用CentOS Linux系统自带的yum命令安装、升级所需的程序库:
sudo -s
LANG=C
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel bison pkgconfig glib2-devel gettext make
2、下载程序源码包
Nginx安装包:下载地址:http://nginx.org/en/download.html
mkdir -p /down
cd /down
wget http://nginx.org/download/nginx-1.1.11.tar.gz
Mono下载:官网:http://download.mono-project.com/sources/mono/(请下载最新版)
wget http://download.mono-project.com/sources/mono/mono-2.10.7.tar.bz2
libgdiplus下载:http://download.mono-project.com/sources/libgdiplus/(请下载最新版)
wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.tar.bz2
xsp下载:http://download.mono-project.com/sources/xsp/(请下载最新版)
wget http://download.mono-project.com/sources/xsp/xsp-2.10.2.tar.bz2
pcre下载(Nginx所需的pcre库):FTP://ftp.csx.cam.ac.uk/pub/software/programming/pcre/(请下最新版)
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz
二、安装编译Nginx
1、安装安装Nginx所需的pcre库
cd /down
tar zxvf pcre-8.21.tar.gz
cd pcre-8.21/
./configure
make && make install
cd ../
2、创建www用户和组
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
mkdir -p /data0/web
chmod +w /data0/web
chown -R www:www /data0/web
3、安装Nginx
tar zxvf nginx-1.1.11.tar.gz
cd nginx-1.1.11/
./configure --user=www --group=www --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ../
4、开放80端口
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
启动nginx
/opt/nginx/sbin/nginx
在浏览器上输入访问地址 http://192.168.1.1(根据个人本机地址页定),正常会看到默认nginx页面
三、安装编译Mono
1、安装libgdiplus
cd /down

tar -jxvf libgdiplus-2.10.tar.bz2
cd libgdiplus-2.10
./configure --prefix=/opt/mono
make && make install
echo "/opt/mono/lib" > /etc/ld.so.conf.d/mono.conf
ldconfig
2、安装Mono
tar –jxvf mono-2.10.7.tar.bz2
cd mono-2.10.7
./configure --prefix=/opt/mono
make && make install //此处时间较长
echo export PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig:$PKG_CONFIG_PATH>>~/.bash_profile
echo export LD_LIBRARY_PATH=/opt/mono/lib:$LD_LIBRARY_PATH>>~/.bash_profile
echo export PATH=/opt/mono/bin:$PATH>>~/.bash_profile
source ~/.bash_profile
输入 mono -V 如有mono版本信息,则安装成功.
3、安装XSP
cd /down
tar –jxvf xsp-2.10.2.tar.bz2
./configure --prefix=/opt/mono
make && make install
四、配置Nginx
vi /opt/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
location / {
root /data0/web;
index index.html index.htm;
fastcgi_index Default.aspx;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
}
五、配置fastcgi_params增加下面两行
vi /opt/nginx/conf/fastcgi_params
fastcgi_param PATH_INFO "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
六、启动
1、重启nginx
/opt/nginx/sbin/nginx -s reload
2、启动 fastcgi_mono服务器
fastcgi-mono-server2 /applications=/:/data0/web /socket=tcp:127.0.0.1:9000 &
七、测试
新建一个asp.net Web项目上传至 /data0/web目录下,测试运行.
-----------------------
 

Wine接管微软的 Mono 项目


Mono 项目官网宣布,接管微软的 Mono 项目。Mono 是 Xamarin 联合创始人 Miguel de Icaza 发起的跨平台 .NET 框架开源实现,自 2001 年启动以来一直是 .NET 生态系统的重要组成部分。Microsoft 在 2016 年收购 Xamarin 时成为 Mono 项目的管理者。

Mono 项目的最后一个主要版本是在 2019 年 7 月,从那时起又发布了一些次要的补丁版本。上一个补丁版本是 2024 年 2 月。WineHQ 组织接管 wine-mono / Mono ·GitLab (winehq.org).现有 mono/mono 和其他存储库中的源代码将保持可用,但存储库可能已存档。二进制文件将保持可用状态长达四年。Microsoft 在 dotnet/runtime 存储库中维护了 Mono 运行时的新式分支,并已逐步将工作负载移动到该分支。这项工作现已完成,微软建议基于 Mono 的应用程序框架的活跃 Mono 用户和维护者迁移到 .NET,其中包括此分支中的工作。

官网:https://www.mono-project.com/