环境
centos6.0 + apache2.2.21 +mono2.6 + mod_mono2.6.3 + xsp2.6.3
apache安装
去http://httpd.apache.org/download.cgi下载 apache的 unix版本
切换roo用户
su root
解压 tar文件
tar -zxvf 或者 -jxvf
cd进解压后的文件夹
./configure --prefix=安装到的路径 //这个路径可以省略,默认安装到/usr/local/apache2
make
make install
cd 到安装后的文件夹 ,进入到bin文件夹 执行命令 启动apache
[root@localhost bin]# apachectl start
在浏览器中输入地址 http://localhost/ 或者 http://127.0.0.1/ 能看到apache的羽毛标志,表示正常启动来。
设置apache自动启动:
简单的方式是在shell下 用ntsysv命令 选择httpd 确定就好了
还有种方式是把httpd添加到linux服务中,这种方法我没有试过,
在redhat、红旗等版本的Linux中启动脚本放在 /etc/rc.d目录中,名称是:rc.local。而SuSe版本的Linux启动脚本是放在/etc/init.d目录中,名称 boot.local.
例如:apache、mysql自动启动
在红旗、radhat等Linux中如下
#cd /etc/rc.d
#vi rc.local
在rc.local加入:
/usr/local/apache/bin/apachectl start
/usr/local/mysql/bin/mysqld_safe --user=mysql
在SuSe中如下
#cd /etc/init.d
#vi boot.local
在rc.local加入:
/usr/local/apache/bin/apachectl start
/usr/local/mysql/bin/mysqld_safe --user=mysql
添加为Linux的服务:
Apache安装路径为:/usr/local/apache
Linux的启动级别为5,版本为Linux AS4
Apache安装完后,发现Apache无法自动启动,查看/etc/rc.d/rc5.d/下,应该没有S打头,httpd结尾的链接文件。
1、将apachectl文件拷贝到/etc/rc.d/init.d 中,然后在/etc/rc.d/rc5.d/下加入链接即可。
命令如下:
cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd //如果有其他的版本的Apache存在,也可以直接覆盖掉
ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd //建立链接(85的意义后面介绍)
此时Apache就可以自动启动了。
2、运行chkconfig --list,发现没有linux服务列表中httpd,通过chkconfig --add httpd来添加,但是提示:httpd服务不支持 chkconfig。需要编辑/etc/rc.d/init.d/httpd,添加以下注释信息:
# chkconfig: 345 85 15
# descrīption: Apache
第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15)。
保存后执行:chkconfig --add httpd,成功添加。
在rc3.d、rc4.d、rc5.d路径中会出现S85httpd的链接文件,其他运行级别路径中会出现K61httpd的链接文件。
3、运行chkconfig --list,httpd在其中。
mono 安装
下载mono 的linux版本,解压安装到 /usr,我用的是mono2.6
在configure mono的时候提示 need at least glib2.0 2.4 , 需要安装编译环境
yum install gcc bison pkgconfig glib2-devel gettext make httpd-devel gcc-c++ libstdc++-devel
安装完mono 后,配置环境变量,如果没有配置环境变量,在安装xsp的时候会报找不到mono的错误
cd到mono的安装目录下
/*opt/mono是mono的路径*/
echo export PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig:$PKG_CONFIG_PATH>>~/.bash_profile
echo export PATH=/opt/mono/bin:$PATH>>~/.bash_profile
source ~/.bash_profile
测试mono
在shell中
mono -v 版本信息
mono-test-install 测试输出
xsp安装
下载安装到 就可以
XSP在configure的时候要么不指定--prefix,要么指定为/usr/local
假如指定--prefix=/usr,就会造成
mod_mono装在了/usr/local/lib和/usr/local/bin下
而xsp装在了/usr/lib和/usr/bin下
导致了xsp的mod-mono-server.exe和mod-mono-server2.exe没有安装在mod_mono的lib/mono/1.0和lib/mono/2.0目录中
最终导致aspx文件不能被解析,在apache的log中可以看到:mod_mono找不到mod-mono-server(2).exe的错误。
mod_mono安装
下载安装到 /usr/local 就可以
在/usr/local/apache2/conf/httpd.conf
在最上面加上
Include /usr/local/apache2/conf/mod_mono.conf
这个mod_mono里面包含了 我们需要的httpd.conf的配置 所以Include就好了
测试asp.NET把xsp解压后的文件夹下 有个tes文件夹,复制到/var/www/
修改apache的配置文件在/etc/httpd/conf/下 httpd.conf
在最后添加
Listen 8080
NameVirtualHost *:8080
<VirtualHost *:8080>
DocumentRoot /var/www/test/
DirectoryIndex index.aspx
ServerName aspx.yoursit.com
</VirtualHost>
在防火墙上 开启8080端口,打开firfox 地址栏 http://127.0.0.1:8080/ 看看测试正常