CentOS6.3+mono3.0.3+nginx1.2.6配置流程
[坑爹的mono]
----------------------------------------
资源下载地址:
mono:https://wrench.mono-project测试数据/Wrench/
xsp:https://github测试数据/mono/xsp
pcre:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
nginx:http://nginx.org/en/download.html
全部下载最新版本即可,文件有四个,它们是:
xsp-master.zip
nginx-1.2.6.tar.gz
-----------------------------------------
CentOS6.3安装后默认关闭网络,先打开:
修改两地方,如下所示:
NM_CONTROLLED="no"
ONBOOT="yes"
保存后执行:
/etc/init.d/network restart
然后要打开80端口:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart
首先要说明一下为什么选择源代码编译安装,是为了体验最新的mono功能,特别是EntityFamework和Mvc4。
至于nginx有点特别,如果使用rpm包安装,会导至fastcgi-mono-server运行不起来,这个问题纠结了我一个星期.
现在安装编译环境,执行:
yum -y install gcc gcc-c++ 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
(一大堆的东西,谁知道哪几个可以省掉,就删了吧,我没一个一个的验证.)
使用SFTP工具(推荐xftp4)将下载的四个文件复制到centos /root目录
分别执行
unzip xsp-master.zip
tar -vxf nginx-1.2.6.tar.gz
进行解压维.
现在开始最漫长的mono编译及安装
./configure
make
make install
大约15分钟,这点时间您可以去看两个vs2012的使用视频.赞一下codemap...
然后安装xsp:
cd /root/xsp-master
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig
./autogen.sh
make
make install
解说一下PKG_CONFIG_PATH,这东西是使用yum安装的,路径在不同的系统中可能不一样.
可以使用
whereis pkgconfig
来找一下pkgconfig的路径,然后依情况修改export语句.
如果pkgconfig路径不对,会造成xsp找不到mono的情况.
本来是应该直接编译安装nginx的.
但nginx依赖pcre,所以:
./configure
make
make install
然后安装nginx:
./configure
make
make install
全部完成之后,开始配置:
首先,编译安装是没有启动本脚本的,这里需要两个,一个是nginx的启动脚本,一个是fastcgi-mono-server4的启动脚本.
参考:
http://HdhCmsTest21andy测试数据/blog/20100201/1606.html
http://yojimbo87.github测试数据/2010/03/14/mono-startup-script.html
我直接贴在下面,注意路径.及环境变量.
nginx:
1 #!/bin/ sh
2 #
3 # nginx - this script starts and stops the nginx daemin
4 #
5 # chkconfig: - 85 15
6 # description: Nginx is an HTTP(S) server, HTTP(S) reverse 7 # proxy and IMAP/ POP3 proxy server
8 # processname: nginx
9 # config: /usr/local/nginx/conf/ nginx.conf
10 # pidfile: /usr/local/nginx/logs/ nginx.pid
11
12 # Source function library.
13 . /etc/rc.d/init.d/ functions
14
15 # Source networking configuration.
16 . /etc/sysconfig/ network
17
18 # Check that networking is up.
19 [ "$NETWORKING" = "no" ] && exit 0
20
21 nginx="/usr/local/nginx/sbin/nginx"
22 prog= $(basename $nginx)
23
24 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
25
26 lockfile=/var/lock/subsys/ nginx
27
28 start() {
29 [ -x $nginx ] || exit 5
30 [ -f $NGINX_CONF_FILE ] || exit 6
31 echo -n $"Starting $prog: "
32 daemon $nginx - c $NGINX_CONF_FILE
33 retval=$?
34 echo
35 [ $retval -eq 0 ] && touch $lockfile
36 return $retval
37 }
38
39 stop() {
40 echo -n $"Stopping $prog: "
41 killproc $prog - QUIT
42 retval=$?
43 echo
44 [ $retval -eq 0 ] && rm - f $lockfile
45 return $retval
46 }
47
48 restart() {
49 configtest || return $?
50 stop
51 start
52 }
53
54 reload() {
55 configtest || return $?
56 echo -n $"Reloading $prog: "
57 killproc $nginx - HUP
58 RETVAL=$?
59 echo
60 }
61
62 force_reload() {
63 restart
64 }
65
66 configtest() {
67 $nginx -t - c $NGINX_CONF_FILE
68 }
69
70 rh_status() {
71 status $prog
72 }
73
74 rh_status_q() {
75 rh_status >/dev/ null 2>&1
76 }
77
78 case "$1" in
79 start)
80 rh_status_q && exit 0
81 $1
82 ;;
83 stop)
84 rh_status_q || exit 0
85 $1
86 ;;
87 restart| configtest)
88 $1
89 ;;
90 reload)
91 rh_status_q || exit 7
92 $1
93 ;;
94 force- reload)
95 force_reload
96 ;;
97 status)
98 rh_status
99 ;;
100 condrestart| try - restart)
101 rh_status_q || exit 0
102 ;;
103 * )
104 echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
105 exit 2
106 esac
fastcgi-mono-server4:
1 #!/bin/ sh
2
3 ### BEGIN INIT INFO
4 # Provides: monoserve.sh
5 # Required- Start: $local_fs $syslog $remote_fs
6 # Required- Stop: $local_fs $syslog $remote_fs
7 # Default-Start: 2 3 4 5
8 # Default-Stop: 0 1 6
9 # Short- Description: Start fastcgi mono server with hosts
10 ### END INIT INFO
11
12 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/ bin
13 DAEMON=/usr/local/bin/ mono
14 NAME=fastcgi-mono- server4
15 DESC=fastcgi-mono- server4
16
17 MONOSERVER=$(which fastcgi-mono- server4)
18 MONOSERVER_PID=$(ps auxf | grep fastcgi-mono-server4.exe | grep -v grep | awk '{print $2}' )
19
20 WEBAPPS="/:/usr/local/nginx/html"
21
22 case "$1" in
23 start)
24 if [ -z "${MONOSERVER_PID}" ]; then
25 echo "starting mono server"
26 ${MONOSERVER} /applications=${WEBAPPS} /socket=tcp:127.0.0.1:9000 &
27 echo "mono server started"
28 else
29 echo ${WEBAPPS}
30 echo "mono server is running"
31 fi
32 ;;
33 stop)
34 if [ -n "${MONOSERVER_PID}" ]; then
35 kill ${MONOSERVER_PID}
36 echo "mono server stopped"
37 else
38 echo "mono server is not running"
39 fi
40 ;;
41 esac
42
43 exit 0
将脚本保存在 /etc/init.d/ 目录下.
执行:
chmod +x /etc/init.d/nginx
/sbin/chkconfig nginx on
/sbin/chkconfig fastcgi-mono-server4 on
最后是nginx的conf配置,理论上是要先配好再去写启动脚本的,因为fastcgi-mono-server4启动脚本中的WEBAPPS路径必须与网站路径一致,所以配置的时候要注意一下.
参考:
http://HdhCmsTestmono-project测试数据/FastCGI_Nginx
首先修改fastcgi_params文件,按我的方法,他应该在/usr/local/nginx/conf 目录下.(不在?使用whereis fastcgi_params找到它.)
追加两行:
fastcgi_param PATH_INFO "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
保存后来配置nginx.conf文件
找到:
location / {
root html;
index index.html index.htm;
}
修改为
location / {
root html;
index default.aspx index.html index.htm;
fastcgi_index default.aspx;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
}
添加了三行.
注意 root html ,这里配置了网站的根目录.它是一个相对路径.
全部保存完毕之后,就可以开启服务了.执行:
/etc/init.d/fastcgi-mono-server4 start
/etc/init.d/nginx start
好了,现在使用浏览器打开服务器IP地址,将会看到:
感谢:
http://HdhCmsTestcnblogs测试数据/wang_yb/
标签: CentOS , mono , xsp , nginx
作者: Leo_wl
出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于CentOS6.3+mono3.0.3+nginx1.2.6配置流程的详细内容...