Ubuntu中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项目
将本地项目上传至服务器(推荐使用scp或rsync,避免直接在服务器上创建项目导致依赖问题),例如上传至/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_database、your_username、your_password为实际值)、应用密钥(后续生成)等信息:
cp .env.example .env
nano .env
生成应用密钥(用于加密会话、CSRF令牌等):
php artisan key:generate
运行数据库迁移(创建数据表结构,如users、posts等):
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
