首页主机资讯Ubuntu中Laravel项目如何部署

Ubuntu中Laravel项目如何部署

时间2025-10-31 20:58:03发布访客分类主机资讯浏览306
导读:1. 准备服务器环境 首先更新系统软件包,确保所有组件为最新版本: sudo apt update && sudo apt upgrade -y 安装Nginx(高性能Web服务器)、PHP(Laravel依赖环境)及常用...

1. 准备服务器环境
首先更新系统软件包,确保所有组件为最新版本:

sudo apt update &
    &
 sudo apt upgrade -y

安装Nginx(高性能Web服务器)、PHP(Laravel依赖环境)及常用扩展(如MySQL驱动、JSON解析、XML处理等)、MySQL(关系型数据库)和Composer(PHP依赖管理工具):

sudo apt install nginx php-fpm php-mysql php-curl php-json php-common php-zip php-gd php-mbstring php-xml php-bcmath mysql-server -y

验证Composer安装:

composer --version

2. 配置PHP-FPM
编辑PHP-FPM池配置文件(默认路径为/etc/php/8.1/fpm/pool.d/www.conf,版本号随系统而异),确保listen指令与Nginx的FastCGI设置匹配:

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

找到listen = /run/php/php8.1-fpm.sock(部分系统可能使用127.0.0.1:9000),保存并退出。启动并启用PHP-FPM服务:

sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

3. 部署Laravel项目
将本地项目上传至服务器(推荐使用scprsync,避免直接在服务器上创建项目导致依赖问题),例如上传至/var/www/laravel-app

scp -r ./local-laravel-project user@your_server_ip:/var/www/laravel-app

进入项目目录,安装PHP依赖(使用--optimize-autoloader优化自动加载,--no-dev移除开发依赖以提升性能):

cd /var/www/laravel-app
composer install --optimize-autoloader --no-dev

复制.env.example.env(环境配置模板),并编辑.env文件,配置数据库连接(替换your_databaseyour_usernameyour_password为实际值)、应用密钥(后续生成)等信息:

cp .env.example .env
nano .env

生成应用密钥(用于加密会话、CSRF令牌等):

php artisan key:generate

运行数据库迁移(创建数据表结构,如usersposts等):

php artisan migrate

(可选)清除缓存以应用配置变更:

php artisan config:clear
php artisan cache:clear

4. 配置Nginx虚拟主机
创建Nginx服务器块配置文件(以laravel-app为例),指定项目根目录为public(Laravel入口文件index.php所在目录):

sudo nano /etc/nginx/sites-available/laravel-app

粘贴以下配置(替换your_domain.com为域名或IP,/var/www/laravel-app为项目路径):

server {
    
    listen 80;
    
    server_name your_domain.com www.your_domain.com;
    
    root /var/www/laravel-app/public;
    
    index index.php index.html;


    location / {
    
        try_files $uri $uri/ /index.php?$query_string;

    }


    location ~ \.php$ {
    
        include snippets/fastcgi-php.conf;
    
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
        include fastcgi_params;

    }


    location ~ /\.ht {
    
        deny all;

    }
    

    error_log /var/log/nginx/laravel-app_error.log;
    
    access_log /var/log/nginx/laravel-app_access.log;

}
    

启用配置(创建符号链接至sites-enabled目录):

sudo ln -s /etc/nginx/sites-available/laravel-app /etc/nginx/sites-enabled/

测试Nginx配置语法(无错误则继续):

sudo nginx -t

重启Nginx服务:

sudo systemctl restart nginx

5. 设置文件权限
Laravel的storage(日志、缓存、上传文件)和bootstrap/cache(框架缓存)目录需要Web服务器用户(通常为www-data)的可写权限:

sudo chown -R www-data:www-data /var/www/laravel-app/storage
sudo chown -R www-data:www-data /var/www/laravel-app/bootstrap/cache
sudo chmod -R 775 /var/www/laravel-app/storage
sudo chmod -R 775 /var/www/laravel-app/bootstrap/cache

6. 验证部署
在浏览器中访问http://your_domain.com(或服务器IP),若看到Laravel欢迎页面或项目首页,则部署成功。若遇到502 Bad Gateway错误,需检查Nginx与PHP-FPM的通信(如fastcgi_pass路径是否正确)、项目目录权限是否足够。

常见问题排查

  • 502 Bad Gateway:确认PHP-FPM服务正在运行(sudo systemctl status php8.1-fpm),并检查Nginx配置中的fastcgi_pass路径是否与PHP-FPM的listen指令一致。
  • 403 Forbidden:检查项目目录权限(www-data用户是否有读取权限),或Nginx配置中root指令是否指向public目录。
  • 500 Internal Server Error:查看Laravel日志(/var/www/laravel-app/storage/logs/laravel.log)或Nginx日志(/var/log/nginx/error.log)定位具体错误。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu中Laravel项目如何部署
本文地址: https://pptw.com/jishu/740325.html
Laravel在Ubuntu上如何使用队列 如何在Ubuntu上设置Laravel的缓存

游客 回复需填写必要信息