NginxでThinkphp URL Rewriteをサポートする構成例

1843 ワード

概要
Nginxサーバは現在かなり流行しているオープンソースWebサーバとなり、多くの生産環境でもNginxサーバが使用されている.現在、プロジェクトの多くはThinkPHPを使用していますが、NginxのデフォルトではThinkPHPのpathinfoモードはサポートされておらず、一定の構成が必要です.
Nginxプロファイル

#
# The default server
#
server {
  listen    80 default_server;
  #server_name www.example.com;
  #charset koi8-r;
  #access_log logs/host.access.log main;
  # Load configuration files for the default server block.
  include /etc/nginx/default.d/*.conf;
  #location / {
  #  root  /usr/share/nginx/html;
  #  index index.html index.htm;
  #}
  location / {
 root      /var/www/project_name;
 index index.html index.php;
    if (!-e $request_filename){
      rewrite ^(.*)$ /index.php?s=$1 last;
    }
  }
  error_page 404       /404.html;
  location = /404.html {
    root  /usr/share/nginx/html;
  }
  # redirect server error pages to the static page /50x.html
  #
  error_page  500 502 503 504 /50x.html;
  location = /50x.html {
    root  /usr/share/nginx/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      /var/www/project_name;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$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;
  #}
}

まとめ
後で確認できるようにバックアップを行います:)