laravel 上线部署最佳实践

Posted gzwwj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel 上线部署最佳实践相关的知识,希望对你有一定的参考价值。

nginx  配置  

listen 80 default_server;
server_name xxxx;
index index.php index.html;    优先 index.php
root /home/wwwroot/xxx/public/;
add_header X-Frame-Options "SAMEORIGIN";  不要用frame 
add_header X-XSS-Protection "1; mode=block";   启动 xss 过滤
add_header X-Content-Type-Options "nosniff";    不要猜测  文件类型  返回是什么就是什么 
location = /favicon.ico { access_log off; log_not_found off; }   不要记录
location = /robots.txt { access_log off; log_not_found off; } 不要记录

include none.conf;
#error_page 404 /404.html;
location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {   静态文件 直接下载 返回
}

include enable-php.conf;
location / {    先访问  $uri   然后 $uri/   然后 /index.php?$query_string
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$   缓存265天
{
expires 365d;
}

location ~* ^.+\.(jpg|jpeg|gif|png|bmp|css|js|swf|txt)$ { 不要记录
access_log off;
break;
}
location ~ .*\.(js|css)?$  缓存12小时
{
expires 12h;
}

location ~ /\.    屏蔽.
{
deny all;
}

 

权限   

一般要求文件拥有者不能是 nginx php 执行用户  但实际上你权限设置好无所谓的   

chown -R  www:www  wwwroot

chmod  -R 550 wwwroot   

find wwwroot -type f exec chmod 440 {}   除了storage  文件全部只给读  

chmod  -R 770 wwwroot/storage   这里是肯定要给770 的  但伪黑客  做不了手脚

 

修改 php配置文件  fastcgi.conf 

添加  fastcgi_param APP_ENV online;    自动切换配置用  增加文件  .env.online

 

部署代码

 注意:composer 安装的依赖 都在vendoc文件夹里  不需要网上人说的重新执行 composer  install   画蛇添足 多此一举  

php artisan down
git pull
php artisan config:cache
php artisan optimize
php artisan migrate
php artisan up

 

以上是关于laravel 上线部署最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 工匠优化最佳实践

Laravel最佳实践--API请求频率限制(Throttle中间件)

在 laravel 中添加常量的最佳实践是啥? (长名单)

Laravel 形式的最佳实践?隐藏输入或路由参数?

Laravel 数据库日志 - 最佳实践是啥

Laravel 策略最佳实践