针对Yii框架的Nginx配置及多个虚拟域名的配置

来源:互联网 发布:linux mrtg连接nagios 编辑:程序博客网 时间:2024/05/16 19:44

前言

Yii框架是一个非常好用的PHP框架,开发快,上手容易,自推出以来广受好评,对于基本的Yii框架开发来说,不需要特殊配置,但是对于一些高级功能,就需要对你的服务器进行一些设置了。

正文

我所用到的服务器是Ubuntu16.04下的Nginx,所以这里就针对Yii框架的Nginx做一个小小的总结。

需要满足的特性

1、Yii框架的URL重写规则(此规则需要Nginx0.8.6版本以上支持)2、对于.svn、.git等版本控制文件的忽略3、一些不应该直接访问的文件夹(例如framework、protected等)的禁止直接访问4、静态资源的缓存优化

配置文件

配置文件目录:

/etc/nginx/sites-available

复制一个该文件夹下的default到该目录下并重命名为 www.example.com,作为虚拟域名的配置文件,复制并重命名命令如下:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/www.example.com

然后使用文字编辑器打开:

sudo gedit /etc/nginx/sites-available/www.example.com

将原有内容清除并将如下内容复制到该文件中

server {    #监听端口    listen 80;    listen [::]:80;    #字符集设置    charset utf-8;    #项目根目录设置    root /var/www/html/example.com/;    #默认起始页设置    index index.html index.htm index.nginx-debian.html index.php;    #域名设置    server_name www.example.com;    #关闭不必要的日志    location = /favicon.ico { log_not_found off; access_log off; }    #设置以下目录不能直接被访问    location ~ ^/(protected|framework|themes/\w+/views) {        deny  all;        log_not_found off;        access_log off;    }    #设置URL重写    location / {        # First attempt to serve request as file, then        # as directory, then fall back to displaying a 404.        try_files $uri $uri/ /index.php?$args;    }    #设置PHP解释器    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000    #    location ~ \.php$ {        include snippets/fastcgi-php.conf;        # With php5.6-cgi alone:        # fastcgi_pass 127.0.0.1:9000;        # With php5.6-fpm:        fastcgi_pass unix:/run/php/php5.6-fpm.sock;        #fastcgi_index index.php;        fastcgi_param HTTPS on;        include fastcgi.conf;        if (!-f $request_filename){                rewrite (.*) /index.php;            }    }    #设置静态资源缓存优化    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {         expires max;         log_not_found on;    }    #设置版本控制文件忽略    # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)    location ~ /\. {        deny all;        access_log off;        log_not_found off;    }}

最后,使用命令:

sudo ln -s /etc/nginx/sites-available/www.example.com /etc/nginx/sites-enabled/www.example.com

创建一个软连接到sites-enabled下,然后,编辑hosts文件:

sudo gedit /etc/hosts

在最后一行添加:

127.0.0.1       www.example.com

就完成了配置


补充

sites-available与sites-enabled之间的关系

sites-available可以看做是一个配置仓库,暂时不用的虚拟域名、废弃的虚拟域名、未配置好的虚拟域名,都可以放在这里,它并不会被启用。若要启用当前域名配置,需要在sites-enabled下为他创建一个软连接,才算是正式启用。

原创粉丝点击