zoukankan      html  css  js  c++  java
  • 移植nginx到Windows上做开发环境的过程[转]

    转自:http://bbs.chinaunix.net.fastcdn.com/viewthread.php?tid=1328536

    我的电脑的内存不多,跑apache久了感觉很吃力,Nginx吃内存就像记事本吃那么点,所以我自己编译一个来做开发用

    安装前提:
    安装好cygwin,并安装了gcc和g++  (安装见http://www.xueler.com/docs/tool/安装cygwin
    gzip 模块需要 zlib 库
    rewrite 模块需要 pcre 库  
    安装nginx前先将pcre和zlib装好
    如果要使用ssl,还要openssl库

    • 1、从nginx.net 下载源码 nginx-0.7.24.tar.gz 存放到D:\linux\下
    • 2、使用cygwin把nginx安装到d:/server/nginx
    安装命令

    cd /cygdrive/d/linux
    tar zxvf nginx-0.7.24.tar.gz
    cd nginx-0.7.24
    ./configure --prefix=/cygdrive/d/server/nginx --with-cc-opt="-D FD_SETSIZE=2048"
    make && make install

    如果不加–with-cc-opt=”-D FD_SETSIZE=2048”的话,你装好nginx后运行会出现

      2008/01/12 16:34:56 [emerg] 2496#0: the maximum number of files supported by select() is 64的错误提示,这表示FD_SETSIZE的值比nginx配置文件中worker_connections指令所指定的值,你可以把nginx.conf里的worker_connections选项改小一些,比如44,加了–with-cc-opt=”-DFD_SETSIZE=2048”后就不会碰到这问题

    • 3、从cygwin的bin目录中把 cygcrypt-0.dll,cygpcre-0.dll,cygwin1.dll,cygz.dll拷贝到D:\server\nginx\sbin中
    用cygwin编译的nginx要独立于cygwin运行的时候需要这几个扩展

    到这里就安装完成了,下面来配置。
    php和MySQL什么装这里就不说了,我用的php解压在D:\server\php
    如果没有装php和mysql,nginx这样的安装与配置照样能跑静态文件

    • 4、配置nginx+php+MySQL
    我要打开一个cgi进程来监听处理php脚本(在windows下开发打开一个cgi进程已经能解决问题了)
    我要启动nginx,MySQL,让nginx把对脚本的请求转发给php-cgi处理
    我还要方便的关闭php-cgi、nginx和MySQL

    打开在d:/server/nginx/conf/nginx.conf
    这个配置文件里给我们创建了一个默认的虚拟主机localhost,文档根目录在d:/server/nginx/html/
    找到 index  index.html index.htm;
    改成 index  index.html index.htm index.php;
    添加了nginx支持默认的php首页
    把内容类似下面几行配置的内容前的注释去掉并改成

    location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  D:/server/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }
    • 5/制作nginx启动关闭脚本
    在d:/server/nginx下创建start.bat和stop.bat
    内容分别为:
    d:/server/nginx/start.bat

    @echo off
    echo php-cgi 正在启动 ...
    start /b D:\server\php\php-cgi.exe -b 127.0.0.1:9000 -c d:\server\php\php.ini
    echo php-cgi 启动完成 ...

    echo nginx 正在启动 ...
    d:/server/nginx/sbin/nginx.exe
    echo nginx 启动完成 ...

    net start mysql
    echo 启动完成

    d:/server/nginx/stop.bat

    @echo off
    echo php-cgi 正在关闭 ...
    tskill php-cgi
    echo php-cgi 关闭完成

    echo nginx 正在关闭 ...
    tskill nginx
    echo nginx 关闭完成

    net stop mysql
    echo 关闭MySQL完成

    打开d:/server/nginx/start.bat和d:/server/nginx/stop.bat就可以分别启动和关闭nginx+php+mysql(cgi)了

    尽管是编译安装nginx,但是nginx代码不是很多,编译安装完成所需时间比安装Dreamweaver CS4要快多了
    因为使用的是cygwin环境来把unix软件编译到window下运行,所以这里有个问题是:我们只能在D:/server/nginx内创建虚拟主机目录,在D:/server/nginx之外将无法读取到里面的web文档文件
    把 configure改成

    ./configure --prefix=/cygdrive --http-fastcgi-temp-path=d/server/fastcgi_temp --http-proxy-temp-path=d/server/proxy_temp --http-client-body-temp-path=d/server/client_body_temp --http-log-path=d/server/logs/access.log --error-log-path=d/server/logs/error.log --pid-path=d/server/logs/nginx.pid --sbin-path=d/server/sbin/nginx --conf-path=d/server/conf/nginx.conf --with-cc-opt="-D FD_SETSIZE=2048"

    可以让nginx读到nginx prefix以外的分区,但分区名中不能带: 并且只能用/,不能用\
    比如把root设置到e:\web要写成 root     e/web

    下载我编译和配置好的nginx0.7.24,编译后的文件很小,里面占空间的是安装流程文件
  • 相关阅读:
    Java并发辅助类的使用
    使用List需要注意的点
    构造函数、静态变量、代码块执行顺序
    TreeMap源码分析
    大战红黑树
    关于HashMap多线程下环形链表的总结
    LinkedHashMap源码分析
    「HDU 3292」 No more tricks, Mr Nanguo
    「BZOJ 3122」「SDOI2013」 随机数生成器
    「BZOJ3884」 上帝与集合的正确用法
  • 原文地址:https://www.cnblogs.com/shengshuai/p/1491436.html
Copyright © 2011-2022 走看看