Windows nginxphp環境の構築

参照:http://www.cnblogs.com/huayangmeng/archive/2011/06/15/2081337.html

Windowsでnginx + php環境を構成する

  nginxという単語を見たとき、その発音(engine x)に興味がありました。私の直訳は「enginex」です。通常、「engine x」はパフォーマンスを示すために使用され、「x」は主に「xtras」を意味するように見えます(エクストラエフェクト)」という意味で、「エクストリームエフェクト」や「エクストラパフォーマンス」などを意味します。もちろん、これはチャットするためにここにあるのではありません、上記は余談です。

  おなじみのApacheやIISと比較すると、nginxには、私が簡単に理解できる限り、「リバースプロキシ」と「負荷分散」の利点があります。したがって、Webサーバーのリソースを節約できることを考えると、Apacheを置き換えてWebサービスを提供できます。それでは、要点を説明しましょう。nginxには非常に多くの利点があります。Windowsでnginx + php環境を構成する方法は?インターネット上にはまだたくさんの転載記事があります。紹介する構成プロセスは次のとおりです。

1.最初に準備する必要があるアプリケーションパッケージ。

  nginx:nginx / Windows-1.0.4

  php:php-5.2.16-nts-Win32-VC6-x86.zip  (nginxでのphpはFastCGIモードで実行されるため、ntsであるスレッドセーフではないphpパッケージをダウンロードします)

  (これも使用)RunHiddenConsole:RunHiddenConsole.zip

2.インストールと構成。

 1)PHPのインストールと構成。

  ダウンロードしたphpパッケージを直接解凍し、ドライブDのwnmpディレクトリ(D:\ wnmp)に移動します。ここで、解凍したフォルダーの名前をphp5に変更します。php.ini推奨ファイルをphp.iniに変更するフォルダーを入力し、EditplusまたはNotepad ++で開きます。現れる

    
     
     
extension_dir = " ./ext "

への変更

    
     
     
extension_dir = " D:/ wnmp / php5 / ext "
見下ろして見つける
    
     
     
;拡張子 = php_mysql.dll ;拡張子 = php_mysqli.dll

phpのextパスを指定した後、必要な拡張パッケージの前にある対応する「;」を削除するだけです。ここでphp_mysql.dllとphp_mysqli.dllを開いて、phpがmysqlをサポートできるようにします。もちろん、非常に重要な手順は、php5ディレクトリのlibmysql.dllファイルをC:\ Windowsディレクトリコピーすることです。システム変数でパスを指定することもできます。もちろん、より便利なものを選択しました。メソッド^ _ ^。

この時点で、phpはすでにmysqlをサポートできます。

  次に、phpをnginxと組み合わせることができるようにphpを構成します。現れる

    
     
     
; cgi.fix_pathinfo = 1

ここでタイトルを削除します。

    
     
     
cgi.fix_pathinfo = 1
このステップ は非常に重要 です。これがphpCGI設定です。

 2)nginxのインストールと構成。

  把下载好的nginx-1.0.4的包同样解压到D盘的wnmp目录下,并重命名为nginx。接下来,我们来配置nginx,让它能够和php协同工作。进入nginx的conf目录,打开nginx的配置文件nginx.conf,找到

    
     
     
location / { root html;      #这里是站点的根目录 index index.html index.htm; }

root  html;改为root   D:/wnmp/www;

再往下,找到

コードをコピーする
    
     
     
# pass the PHP scripts to FastCGI server listening on 127.0 . 0.1 : 9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0 . 0.1 : 9000 ; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME / scripts$fastcgi_script_name; # include fastcgi_params; #}
コードをコピーする

先将前面的“#”去掉,同样将root  html;改为root   D:/wnmp/www;。再把标记为红色的/scripts改为“$document_root”,这里的“$document_root”就是指前面“root”所指的站点路径,这是改完后的:

コードをコピーする
    
     
     
# pass the PHP scripts to FastCGI server listening on 127.0 . 0.1 : 9000 # location ~ \. php $ { root D: /wnmp/www; fastcgi_pass 127.0.0.1:9000 ; fastcgi_index index . php ; fastcgi_param SCRIPT_FILENAME $document_root $ fastcgi_script_name ; include fastcgi_params ; }
コードをコピーする

保存配置文件,就可以了。

  nginx+php的环境就初步配置好了,来跑跑看。我们可以输入命令 

来启动php,并手动启动nginx,当然也可以利用脚本来实现。

  首先把下载好的RunHiddenConsole.zip包解压到nginx目录内,RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭。然后来创建脚本,命名为“start_nginx.bat”,我们在Notepad++里来编辑它

コードをコピーする
    
     
     
@echo off REM Windows 下无效 REM set PHP_FCGI_CHILDREN=5 REM 每个进程处理的最大请求数,或设置为 Windows 环境变量 set PHP_FCGI_MAX_REQUESTS = 1000 echo Starting PHP FastCGI ... RunHiddenConsole D: / wnmp / php5 / php-cgi . exe -b 127.0 . 0.1 : 9000 -c D: / wnmp / php5 / php . ini echo Starting nginx ... RunHiddenConsole D: / wnmp / nginx / nginx . exe -p D: / wnmp / nginx
コードをコピーする

再另外创建一个名为stop_nginx.bat的脚本用来关闭nginx

コードをコピーする
    
     
     
@echo off echo Stopping nginx ...     taskkill / F / IM nginx . exe > nul echo Stopping PHP FastCGI ... taskkill / F / IM php-cgi . exe > nul exit
コードをコピーする

做好后,是这样的

这样,我们的服务脚本也都创建完毕了。双击start_nginx.bat看看进程管理器是不是有两个nginx.exe的进程和一个php-cgi.exe的进程呢?

这样nginx服务就启动了,而且php也以fastCGI的方式运行了。

到站点目录下,新建一个phpinfo.php的文件,在里面编辑

    
     
     
<? php phpinfo (); ?>

保存後、ブラウザを開いて「http://localhost/phpinfo.php」と入力します(表示されている場合)

これは、nginx + phpの環境が構成されていることを意味します。







Nginx構成ファイル


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       81;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

	 
		root   D:\php\pingqiujia; 
		#root   "D:/www/project/pingqiujia/";
   
		 location / {
            index  index.html index.htm index.php;
            #autoindex  on;
        }

		if ($request_filename !~ (static|tmp|docment|robots\.txt|ceshi.php|index\.php.*) ) {
            rewrite ^/(.*)$ /index.php?$1 last;
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
		
        #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$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}


クイックスタートstart_nginx.bat

@echo off
echo Starting PHP FastCGI...
D:\program\nginx-1.6.3\RunHiddenConsole.exe D:\program\php-5.6.15-nts-Win32-VC11-x64\php-cgi.exe -b 127.0.0.1:9000 -c D:\program\php-5.6.15-nts-Win32-VC11-x64\php.ini
echo Starting nginx...
D:\program\nginx-1.6.3\RunHiddenConsole.exe D:/program/nginx-1.6.3/nginx.exe -p D:/program/nginx-1.6.3

stop_nginx.batをすばやく閉じます

@echo off
echo Stopping nginx...  
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit








おすすめ

転載: blog.csdn.net/zwx_lucky/article/details/78035314