温馨提示×

Debian上如何部署Laravel的静态资源

小樊
47
2025-10-23 12:29:54
栏目: 智能运维

在Debian上部署Laravel的静态资源,通常需要以下几个步骤:

  1. 安装Nginx和PHP-FPM: 首先,确保你已经安装了Nginx和PHP-FPM。如果没有,请使用以下命令安装:

    sudo apt update
    sudo apt install nginx php-fpm
    
  2. 配置Nginx: 编辑Nginx的默认站点配置文件,通常位于/etc/nginx/sites-available/default。你可以创建一个新的配置文件,例如/etc/nginx/sites-available/laravel,然后创建一个符号链接到sites-enabled目录。

    在配置文件中,设置root指令指向你的Laravel项目的public目录。例如:

    server {
        listen 80;
        server_name example.com; # 替换为你的域名或公网IP
    
        root /var/www/laravel/public; # 替换为你的Laravel项目的public目录
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 根据你的PHP版本进行修改
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
    

    然后,创建符号链接并重启Nginx:

    sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl restart nginx
    
  3. 设置文件权限: 确保Laravel项目的storagebootstrap/cache目录具有可写权限。你可以使用以下命令设置权限:

    sudo chown -R www-data:www-data /var/www/laravel/storage
    sudo chown -R www-data:www-data /var/www/laravel/bootstrap/cache
    sudo chmod -R 755 /var/www/laravel/storage
    sudo chmod -R 755 /var/www/laravel/bootstrap/cache
    
  4. 优化静态资源: 你可以使用Laravel Mix来编译和优化前端资源。首先,安装Laravel Mix和Node.js(如果尚未安装):

    sudo apt install nodejs npm
    npm install laravel-mix --save-dev
    

    在Laravel项目根目录下创建一个名为webpack.mix.js的文件,并添加以下内容:

    const mix = require('laravel-mix');
    
    mix.js('resources/js/app.js', 'public/js')
       .sass('resources/sass/app.scss', 'public/css');
    

    然后,在项目根目录下运行以下命令来编译资源:

    npm run dev
    

    如果你想在生产环境中使用压缩和优化的资源,请运行:

    npm run prod
    
  5. 清除缓存: 如果你在部署过程中遇到问题,可以尝试清除Laravel的缓存:

    php artisan config:clear
    php artisan cache:clear
    php artisan view:clear
    php artisan route:clear
    

现在,你应该可以在浏览器中访问你的Laravel应用程序,并看到静态资源已正确部署。

0