温馨提示×

centos服务器上如何安全运行laravel

小樊
45
2025-10-17 11:46:32
栏目: 云计算

在CentOS服务器上安全运行Laravel应用程序,需要遵循一系列最佳实践。以下是一些关键步骤和建议:

  1. 更新系统和软件

    • 确保你的CentOS系统是最新的。
    sudo yum update -y
    
    • 安装必要的开发工具和依赖项。
    sudo yum groupinstall -y "Development Tools"
    sudo yum install -y php php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
    
  2. 使用Web服务器

    • 使用Nginx或Apache作为Web服务器。这里以Nginx为例。
    sudo yum install -y epel-release
    sudo yum install -y nginx
    sudo systemctl start nginx
    sudo systemctl enable nginx
    
  3. 配置防火墙

    • 确保防火墙允许HTTP和HTTPS流量。
    sudo firewall-cmd --permanent --zone=public --add-service=http
    sudo firewall-cmd --permanent --zone=public --add-service=https
    sudo firewall-cmd --reload
    
  4. 安装Composer

    • Composer是PHP的依赖管理工具。
    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
    
  5. 部署Laravel应用程序

    • 将你的Laravel项目上传到服务器。
    • 在项目根目录下运行以下命令来安装依赖项。
    composer install
    
    • 设置正确的文件权限。
    sudo chown -R nginx:nginx /path/to/your/laravel/project
    sudo chmod -R 755 /path/to/your/laravel/project/storage
    sudo chmod -R 755 /path/to/your/laravel/project/bootstrap/cache
    
  6. 配置环境变量

    • 创建.env文件并设置必要的环境变量,如数据库连接信息。
    cp .env.example .env
    
    • 编辑.env文件,设置数据库连接等信息。
  7. 生成应用密钥

    php artisan key:generate
    
  8. 运行迁移和数据填充(如果需要):

    php artisan migrate
    php artisan db:seed
    
  9. 配置Nginx

    • 创建一个新的Nginx服务器块配置文件。
    sudo nano /etc/nginx/conf.d/yourdomain.com.conf
    
    • 添加以下配置:
    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
    
        root /path/to/your/laravel/project/public;
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
    
        location ~ /\.ht {
            deny all;
        }
    }
    
    • 重启Nginx以应用更改。
    sudo systemctl restart nginx
    
  10. 配置PHP-FPM

    • 编辑PHP-FPM配置文件。
    sudo nano /etc/php-fpm.d/www.conf
    
    • 确保listen指令设置为Unix socket或TCP端口。
    listen = /var/run/php-fpm/php-fpm.sock
    
    • 重启PHP-FPM服务。
    sudo systemctl restart php-fpm
    
  11. 使用HTTPS

    • 使用Let’s Encrypt获取免费的SSL证书。
    sudo yum install -y certbot python2-certbot-nginx
    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
    
  12. 安全加固

    • 使用Fail2Ban防止暴力破解。
    sudo yum install -y fail2ban
    sudo systemctl start fail2ban
    sudo systemctl enable fail2ban
    
    • 定期更新系统和应用程序,使用安全组或防火墙限制访问。

通过遵循这些步骤,你可以在CentOS服务器上安全地运行Laravel应用程序。

0