• Nginx+php+fastcgi在win7下的配置


    首先装载php
    1、从www.php.net上下载php对应版本
    2、解压之后放到c盘下(其实放哪无所谓,Apache会有配置指向,但是Nginx不用)
    3、因为用的5.3.17版本,已经有了php-cgi.exe这个,不用做其他的事情所以开始更改php的配置,先把php.ini-development这个文件更名为php.ini,也有的版本ini后面跟的是别的,都改成.ini
    4、打开php.ini文件,修改:
    配置:
    extension_dir = "这里写你的ext文件夹路径"     ;这个路径是指向扩展库的路径
    upload_tmp_dir = "这里写你的上传缓存目录"     ;上传图片之类的缓存这里
    session.save_path = "这里写你的session缓存目录"    ;这个是以文件形式储存sission,如果以数据库存储session则需要另外配置
     
    打开以下扩展:
    extension=php_curl.dll
    extension=php_gd2.dll
    extension=php_mbstring.dll
    extension=php_mysql.dll
    extension=php_mysqli.dll
    extension=php_pdo_mysql.dll
    extension=php_pdo_odbc.dll
    extension=php_pdo_sqlite.dll
    extension=php_xmlrpc.dll
     
    定义所在时区(本人定义的是上海时区):
    date.timezone = Asia/Shanghai
     
    由于Nginx要求cgi方式的php,还要修改以下配置
    enable_dl = On
    cgi.force_redirect = 0
    cgi.fix_pathinfo=1
    fastcgi.impersonate = 1
    cgi.rfc2616_headers = 1  
     
    配置Nginx:
    1、从http://nginx.org上下载Nginx,总之从官网上下个,不管官网是不是改地址了,貌似1.3.7版本没有分32位还是64位。
    2、解压之后放c盘下(放别处应该也成,习惯了……)
    3、打开conf,更改nginx.conf
    打开log目录:
    error_log logs/error.log;
    更改其他配置
    server {
            listen       8080;#因为装了Apache已经占用了80接口
            server_name  localhost;
            charset utf-8;#默认文件编码
            #charset koi8-r;
     
            #access_log  logs/host.access.log  main;
     
            location / {
                root   d:/nginxWeb;#这里改成你自己的虚拟目录,注意!Nginx1.3.7及以下版本不支持文件路径中间有空格也不支持中文!!!这个以上的版本不知道会不会支持,不过这个以下是不支持的……虽然Apache支持啊……
                index  index.html index.htm index.php;#注意这里添加了index.php,如果没有添加这个有可能报403错误,这个是win下的,linux或者其他系统是否会有此问题未知。
    autoindex on;#如果文件不存在,列出目录树结构
            }
            #error_page  404              /404.html;
     
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
     
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ .php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
     
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            location ~ .php$ {
                fastcgi_pass   127.0.0.1:9000;#fastcgi监听的端口,与php的cgi启动时指定的要一致
                fastcgi_index  index.php;#默认首页
                fastcgi_param  SCRIPT_FILENAME  D:/nginxWeb$fastcgi_script_name;#启动路径,这里只需要将“D:/nginxWeb”这部分改为你的安装路径就可以了
                include        fastcgi_params;
            }
     
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /.ht {
            #    deny  all;
            #}
        }
     
    运行:
    1、先要运行起php的cgi,由于本人用的win7系统,所以cmd先进的c盘(之前全扔c盘这就简单了~),访问到php路径中,输入
    php-cgi.exe -b 127.0.0.1:9000
    注意这里的-b 127.0.0.1:9000是指定cgi的监听端口,与上文中的Nginx配置要一致,如果有其他配置不记得之前php-cgi是那个端口,可以使用php-cgi.exe -h命令来查看配置(查看-b 后面的<address:port>)。想要查看所有被监听的端口则输入netstat -na
     
    2、运行Nginx
    另开启一个终端,访问到nginx文件夹下,输入nginx.exe
     
    保持两个终端不关闭,访问由浏览器访问虚拟目录下的文件。
     
    运行后自动关闭cmd的方法:
    1、下载RunHiddenConsole.exe(http://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip)
    2、创建start_php.bat,来启动php,文件内容如下:
    @echo off
    echo Starting PHP FastCGI...
    RunHiddenConsole.exe d:phpphp-cgi.exe -b 127.0.0.1:9000 -c d:phpphp.ini
    3、创建stop_nginx.bat,来关闭php和nginx进程,文件内容如下:
    @echo off
    echo Stopping nginx...
    taskkill /F /IM nginx.exe > nul
    echo Stopping PHP FastCGI...
    taskkill /F /IM php-cgi.exe > nul
    exit
     
    相关问题:
    1、403错误:在nginx.conf中的index配置未加入index.php是导致403错误的其中一个原因
    2、cmd中运行Nginx.exe产生错误可能是Nginx的路径中有中文、特殊符号、空格——虽然windows允许这样命名,但是nginx会报错(如之前吐槽的,Apache可以,为什么Apache要把精力放在允许空格和中文作路径上而不是改善其他的啊……费解),还有可能是Nginx的虚拟路径中存储了中文名称的文件,也可能导致nginx无法运行。
    3、Nginx可以运行并并且解析HTML但是无法解析PHP,这个时候要看php-cgi.exe是否起来了,还要看nginx.conf中的监听端口和php-cgi的监听端口是否一致,如同上文配置中写到的,有很多方法查看。
  • 相关阅读:
    MyBatis:分页的实现
    Mybatis之配置文件
    Java之创建线程的方式四:使用线程池
    Java之创建线程的方式三:实现Callable接口
    Java之线程通信的应用:经典例题:生产者/消费者问题
    Java之线程通信的方法
    Java之解决线程安全问题的方式三:Lock锁
    Java之同步方法处理实现Runnable接口的线程安全问题
    Java之同步方法处理继承Thread类的线程安全问题
    01 while 循环输入1 2 3 4 5 6 8 9 10
  • 原文地址:https://www.cnblogs.com/liangxiaofeng/p/5975135.html
Copyright © 2020-2023  润新知