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下为他创建一个软连接,才算是正式启用。
更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码官网:www.west.cn