nginx 上部署 wordpress

php 安装参数如:

  1. ./configure --prefix=/usr/local/php --enable-fastcgi --with-mysql=/usr/local/mysql --enable-zend-multibyte --with-config-file-path=/usr/local/php/conf --enable-discard-path --enable-force-cgi-redirect  

启动php-cgi:

  1. /usr/local/php/bin/php-cgi -b 127.0.0.1:9000 &  

nginx fastcgi 配置:/usr/local/nginx/conf/fastcgi_params

  1. fastcgi_param  QUERY_STRING       $query_string;  
  2. fastcgi_param  REQUEST_METHOD     $request_method;  
  3. fastcgi_param  CONTENT_TYPE       $content_type;  
  4. fastcgi_param  CONTENT_LENGTH     $content_length;  
  5.   
  6. fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;  
  7. fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;  
  8. fastcgi_param  REQUEST_URI        $request_uri;  
  9. fastcgi_param  DOCUMENT_URI       $document_uri;  
  10. fastcgi_param  DOCUMENT_ROOT      $document_root;  
  11. fastcgi_param  SERVER_PROTOCOL    $server_protocol;  
  12.   
  13. fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;  
  14. fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;  
  15.   
  16. fastcgi_param  REMOTE_ADDR        $remote_addr;  
  17. fastcgi_param  REMOTE_PORT        $remote_port;  
  18. fastcgi_param  SERVER_ADDR        $server_addr;  
  19. fastcgi_param  SERVER_PORT        $server_port;  
  20. fastcgi_param  SERVER_NAME        $server_name;  
  21.   
  22. # PHP only, required if PHP was built with --enable-force-cgi-redirect  
  23. fastcgi_param  REDIRECT_STATUS    200;  

基本上是官方自带的,我只加了 SCRIPT_FILENAME。

nginx 配置:

  1. server {  
  2.         listen 80;  
  3.         server_name www.example.com;  
  4.         access_log logs/example.access.log main;  
  5.   
  6.         server_name_in_redirect off;  
  7.   
  8.         root /home/www/wordpress;  
  9.         index index.php index.html index.htm;  
  10.   
  11.         location / {  
  12.                 try_files $uri $uri/ /index.php?q=$uri&$args;  
  13.         }  
  14.   
  15.         location ~ \.php$ {  
  16.                 include fastcgi_params;  
  17.                 fastcgi_pass 127.0.0.1:9000;  
  18.         }  
  19. }  

用 try_files 太简单了。都不用 rewrite 规则。

测试过可行的。

延伸:当然在生产环境像上面简单地用 php-cgi 是不行的。我用 spawn-fcgi 管理 php-cgi。

猜你喜欢

转载自jasonwang168.iteye.com/blog/1003407