nginx 上部署 wordpress

自己有个 vps,web 服务器安装 nginx。现在帮同事搞个 blog(自己的 blog 还没挂到 vps 上呢)。要支持 php,还不知道 wordpress rewrite 规则,所以自己的blog没搬过去就是因为这个原因。

vps 上也装有 lighttpd,搞了一个晚上 lighttpd 还没安装上 wordpress 放弃。改用 nginx(反正 lighttpd 支持的 php 也是通过 nginx 代理过去,干脆用nginx 支持php 行了 )。

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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值