好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

CentOS6.3+mono3.0.3+nginx1.2.6配置流程

CentOS6.3+mono3.0.3+nginx1.2.6配置流程

[坑爹的mono] 

---------------------------------------- 

资源下载地址:

mono:https://wrench.mono-project.com/Wrench/

xsp:https://github.com/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://www.21andy.com/blog/20100201/1606.html

http://yojimbo87.github.com/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://www.mono-project.com/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://www.cnblogs.com/wang_yb/

 

 

标签:  CentOS ,  mono ,  xsp ,  nginx

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于CentOS6.3+mono3.0.3+nginx1.2.6配置流程的详细内容...

  阅读:58次