asp.net mvc本身依赖windows平台的东西不太多,所以这些assembly移植到mono/linux上来应该不是大问题。
一、准备工作:
1、安装linux系统(CentOS,这个就不多讲了)
2、下载所需软件
http-2.4.4.tar.gz;
apr-1.4.6.tar.bz2;
apr-util;
pcre;
libgdiplus;
mono;
mod_mono;
xsp。
二、安装工作
在CentOS中通过网络安装必要的组件库
yum -y install bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel libX11-devel freetype-devel fontconfig-devel cairo-devel libtiff libtiff-devel libjpeg libjpeg-devel giflib giflib-devel libpng libpng-devel libX11 libX11-devel freetype freetype-devel fontconfig fontconfig-devel libexif libexif-devel libXft-devel ghostscript-devel gnome-doc-utils unzip
1.1开始检查镜像站点:mirror.neu.edu.cn,并获取最新
注意:中间会有一些确认提示,直接 输入 y 继续。
完成:
2.上传安装包
2.1创建/usr/software 目录(这个自定义)
使用 mkdir命令
#mkdir /usr/sofrware
用xftp上传 安装包 到 /usr/software
3.安装apache
3.1 解压httpd
tar 命令
#tar -zvxf http-2.4.4.tar.gz
解压后,/usr/software下多出一个文件夹:http-2.4.4
3.2 httpd需要 apr,apr-util,pcre支持
3.2.1解压 apr 和 apr-util包,使用 tar命令(后缀为tar.bz2)
解压pcre包,使用unzip命令(后缀为.zip)
3.3 安装 pcre(正则支持库)
3.3.1 进入pcre文件夹,并查看内容,看到有一个configure脚本文件
3.3.2 使用这个脚本进行预编译,配置安装目录为:/usr/local/pcre
3.3.3 编译 make
3.3.4安装,此时会在 目标路径 中创建文件make install
3.4 apr 和 apr-util 移动
3.4.1文件夹改名
apr-1.4.6 改成-> apr 命令:mv apr-1.4.6 /apr
apr-util-1.5.2 改成-> apr-util 命令:mv apr-util-1.5.2 apr-util
3.4.2移动文件夹
将apr和apr-util 移动到 /usr/software/httpd-2.4.4/srclib 中
注意:两个包不需要配置编译安装,待会儿由httpd直接使用。
3.5 安装apache(httpd模块)
3.5.1进入/usr/software/httpd-2.4.4中
查看内容,发现也有一个 configure脚本
3.5.2预编译,指定目录到:/usr/local/apache
报错:
这是因为没有指定 pcre 的路径
重新预编译,并指定 pcre路径
3.5.3编译和安装 (可以多条命令一起输入,依次执行)
3.6 配置apache服务
进入 安装目录查看,在bin目录中看到 一个 apachectl 脚本
这个脚本提供简单控制apche服务的命令。
3.6.1 启动服务 apache
报错:由错误信息看,是服务监听时出错了,需要域名(或ip)
解决:去apache配置文件中指定一个 ip
apache服务的配置文件是 /etc/httpd/conf/里的 httpd.conf 文件
1.使用vi(编辑器)打开
2.搜索ServerName(区分大小写)
3.先按 shift+: ,调出vi命令框,界面左下角出现一个 冒号,光标等待输入。
4.输入 ?ServerName,按回车
5.在vi找到的地方,注意黄色框中是我们要修改的地方
6.按insert键,进入编辑模式,左下角会出现一个 --INSERT--字样
7.使用方向键调整 光标位置到 上图黄色框位置,将整行换成:
注意,把前面的# 去掉!
8退出编辑状态:按 Esc键。
9 shift+:调出vi命令框,输入wq,按回车就保存退出了。
再次运行启动服务,OK!
3.6.2 测试服务
通过/etc/httpd/httpd.conf文件内的DocumentRoot可知网站根目录是"/var/www/html"
我们在/var/www/html目录下添加一个html文件
10.1 进入目录 /var/www/html
10.2 使用 vi 创建空文档,并按 insert键进入编辑模式
10.3 保存并退出
在文件夹中看到 1.html文件
10.4通过httpd下载此文件到当前目录,但因为本身就已经有1.html,所以自动为下载的 文件名添加了一个.1
下载成功,则代表 apache服务安装成功!
3.6.3 配置开机启动
使用服务管理工具ntsysv管理httpd
1.将httpd安装目录下的bin/目录下的apachectl 脚本,
复制到 /etc/rc.d/init.d/目录,取名为 apache
2.使用vi编辑复制后的apache脚本
在#!/bin/sh 后加入两行字符,esc结束编辑状态;退出保存 shift+: 再wq 回车。
3.注册apache服务
4.启动apache服务
4.安装libgdiplus
4.0进入/usr/software目录,查看libgdiplus包
4.1解压
tar -jvxf libgdiplus-2.10.tar.bz2
解压完后,software下多出一个 绿色的 文件夹,打开后,看到里面有个 configure文件,
这个文件其实是一个安装前的配置处理脚本文件,在编译安装前设置参数。
4.2执行预处理,设置 libgdiplus-2.10软件的安装目录
4.3执行安装
make && make install
错误:
在线安装缺少的包:yum install glib2-devel libtiff libtiff-devel libjpeg libjpeg-devel giflib giflib-devel libpng libpng-devel libX11 libX11-devel freetype freetype-devel fontconfig fontconfig-devel libexif libexif-devel
再执行:make && make install
5.安装Mono
5.1解压
解压后,进入mono目录,又看到了 configure预编译脚本
5.2预编译,设置安装目录为:/usr/local/mono
5.3编译 和 安装(耗时比较长)
5.4配置环境变量
a.修改/etc目录的profile脚本
在最后加入两行,并退出,保存。
b.设置生效: source /etc/profile
c.查看mono版本信息:mono -v
6.安装xsp
6.1回到/usr/software 目录
注意,此压缩包为zip
6.2解压xsp-master.zip
6.3 进入解压目录配置编译安装,注意这里的配置脚本为 autogen.sh
6.3.1需要指定临时环境变量,告知xsp 本机的 mono路径
export PKG_CONFIG_PATH=/usr/local/mono/lib/pkgconfig:$PKG_CONFIG_PATH
6.3.2执行预编译(配置),设置安装目录到 mono相同目录
如果这里编译失败提示:**Error**: You must have `libtool' installed to compile mono_fpm.
请安装libtool-2.2.tar.gz即可,安装到./configure --prefix=/usr
6.3.3编译 和 安装
make && make install
6.3.4测试启动一个临时asp.net服务器
*a.输入 xsp4
启动一个临时asp.net服务器
*b.使用wget命令请求,返回 404错误,OK!
7.安装mod_mono(有的系统不会出现以下错误)
7.1回到/usr/software目录,这次解压 mod_mono
7.2解压mod_mono-master.zip
7.3进入解压目录,又看到一个 autogen.sh 脚本。
7.4预编译(配置),指定安装目录到mono中:/usr/local/mono
提示可以make编译了!
8.配置mod_mono 和 httpd
8.1进入httpd安装目录里的conf目录,看到mod_mono.conf文件
8.2使用vi编辑
8.3在文件最后追加
8.4让apache自动加载 mod_mono,修改一下apache配置文件
进入vi后,直接 使用 shift + g,调到文件末尾,并添加mod_mono配置文件位置
9.测试
service apache start 启动服务
浏览器访问(可自己在/usr/local/apache/htdoc下上传网站)
注意:之前我在suse-linux下测试很多次都无法成功,在centos可以