construção de ambiente php windows nginx

Referência: http://www.cnblogs.com/huayangmeng/archive/2011/06/15/2081337.html

Configure o ambiente nginx + php no Windows

  Quando acabei de ver a palavra nginx, fiquei curioso sobre sua pronúncia (motor x). Minha tradução literal é "motor x". Geralmente, "motor x" é usado para indicar desempenho e "x" parece significar "xtras (efeito extra) ", então a palavra inteira significa algo como" efeito extremo "e" desempenho extra ". Claro, isso não é aqui para conversar, o que está acima é uma digressão.

  Comparado com o apache familiar e IIS, as vantagens do nginx, pelo que eu sei de uma forma simples, são "proxy reverso" e "balanceamento de carga". Portanto, considerando que pode economizar recursos para o servidor da Web, pode substituir o apache para fornecer serviços da Web. Então, vamos direto ao ponto, o nginx tem tantas vantagens, como configurar o ambiente nginx + php no windows? Ainda existem tantos artigos reimpressos na Internet. Aqui está meu processo de configuração para apresentar:

1. O pacote de aplicativos que precisa ser preparado primeiro.

  nginx :nginx / Windows-1.0.4

  php: php-5.2.16-nts-Win32-VC6-x86.zip  (php em nginx é executado no modo FastCGI, portanto, baixamos o pacote php não seguro para thread que é nts)

  (Também usado) RunHiddenConsole: RunHiddenConsole.zip

2. Instalação e configuração.

 1) Instalação e configuração do PHP.

  Descompacte o pacote php baixado diretamente e vá para o diretório wnmp (D: \ wnmp) da unidade D. Aqui, renomeie a pasta descompactada para php5. Entre na pasta para modificar o arquivo recomendado por php.ini para php.ini e abra-o com Editplus ou Notepad ++. virar para cima

    
     
     
extension_dir = " ./ext "

mudar para

    
     
     
extension_dir = " D: / wnmp / php5 / ext "
Olhe para baixo e encontre
    
     
     
; extension = php_mysql.dll ; extension = php_mysqli.dll

Depois de especificar o caminho ext do php, apenas remova o ";" correspondente na frente do pacote de expansão necessário. Abra php_mysql.dll e php_mysqli.dll aqui para permitir que php suporte mysql. Claro, não se esqueça que o passo muito importante é copiar o arquivo libmysql.dll do diretório php5 para o diretório C: \ Windows. Você também pode especificar o caminho na variável do sistema. Claro, eu escolhi o mais conveniente método ^ _ ^.

Neste ponto, o php já pode suportar mysql.

  Em seguida, configuraremos o php para que ele possa ser combinado com o nginx. virar para cima

    
     
     
; cgi.fix_pathinfo = 1

Removemos o título aqui.

    
     
     
cgi.fix_pathinfo = 1
Este passo é muito importante , aqui estão as configurações de CGI do php.

 2) Instalação e configuração do 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;

再往下,找到

Copiar código
    
     
     
# 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; #}
Copiar código

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

Copiar código
    
     
     
# 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 ; }
Copiar código

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

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

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

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

Copiar código
    
     
     
@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
Copiar código

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

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

做好后,是这样的

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

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

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

    
     
     
<? php phpinfo (); ?>

Depois de salvar, abra o navegador e digite "http: //localhost/phpinfo.php", se você ver

Isso significa que o ambiente do nginx + php foi configurado, hehe ~







Arquivo de configuração 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;
    #    }
    #}

}


Início rápido 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

Feche rapidamente 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








Acho que você gosta

Origin blog.csdn.net/zwx_lucky/article/details/78035314
Recomendado
Clasificación