温馨提示×

centos怎么保护laravel

小樊
37
2026-09-27 00:35:49
栏目: 智能运维

在 CentOS 上部署和保护 Laravel,通常从「系统层 + Web服务层 + Laravel自身 + 运维习惯」几个方面入手。下面给你一套实用、可落地的防护方案。


一、系统与基础安全

1. 系统更新

yum update -y

2. 使用非 root 用户

useradd deploy
passwd deploy
usermod -aG wheel deploy

禁止 root 直接 SSH 登录:

vi /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
systemctl restart sshd

3. 防火墙(firewalld)

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

二、Web 服务安全(Nginx 示例)

1. 隐藏敏感目录

location ~ /\. {
    deny all;
}

location ~ /(vendor|storage|bootstrap)/ {
    deny all;
}

2. 禁止执行 PHP 的目录

location ~* /(storage|bootstrap)/.*\.php$ {
    deny all;
}

3. 只暴露 public 目录

root /var/www/laravel/public;

三、PHP 安全配置

编辑 php.ini:

expose_php = Off
display_errors = Off
allow_url_fopen = Off
disable_functions = exec,passthru,shell_exec,system,proc_open,popen

重启 PHP:

systemctl restart php-fpm

四、Laravel 自身安全

1. 正确设置权限(非常重要)

chown -R deploy:nginx /var/www/laravel
chmod -R 755 /var/www/laravel
chmod -R 775 storage bootstrap/cache

2. 关闭调试模式

.env

APP_DEBUG=false
APP_ENV=production

3. 强化 .env 文件

  • 不进 Git
  • 权限 600
chmod 600 .env

4. 使用 HTTPS(Let’s Encrypt)

yum install certbot python3-certbot-nginx -y
certbot --nginx

五、数据库与接口安全

  • 数据库只允许 localhost
  • 使用强密码
  • API 加授权(Sanctum / Passport)
  • 限制请求频率(Throttle)

六、日志与监控

  • 开启 Laravel 日志
  • 使用 fail2ban 防爆破
yum install fail2ban -y

七、定期维护

composer install --no-dev --optimize-autoloader
php artisan config:cache
php artisan route:cache
php artisan view:cache

如果你愿意,我可以:

  • ✅ 给你一份 CentOS + Nginx + Laravel 完整安全配置
  • ✅ 按 服务器用途(API / 后台 / 商城) 给方案
  • ✅ 帮你检查现有服务器是否有安全隐患

你现在是 新服务器还是已有项目?

0 踩