1. 程式人生 > >CentOS6系統上Yii/Yii2/Nginx/PHP-FPM配置例項

CentOS6系統上Yii/Yii2/Nginx/PHP-FPM配置例項

Yii應用Apache的配置比較簡單,nginx的配置主要需要處理單一入口檔案的問題,也就是對應於Apache配置中的如下幾句:

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
需要翻譯為相應的Nginx指令。例項示範如下:
server {
    listen 80;
    server_name www.techbrood.com;
    access_log logs/techbrood.access.log;

    root /var/www/html/techbrood/web;

    location / {
        index index.php;
        if (!-e $request_filename){
          rewrite ^/(.*) /index.php last;
        }
    }
    location ~ \.php(?|$) {
        #fastcgi(php-fpm) listening on 127.0.0.1:9000
        root /var/www/html/techbrood/web;
        #your path to fastcgi_params file
        include /etc/nginx/conf/fastcgi_params; 
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9000;
        #fastcgi_pass unix: /var/run/php-fpm.sock
    }

    location ~ \.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
        root /var/www/html/techbrood/web;
    }
}