温馨提示×

Laravel在Ubuntu上部署有哪些步骤

小樊
39
2025-11-09 01:05:09
栏目: 智能运维

1. 系统环境准备
首先更新Ubuntu系统软件包列表并升级现有软件,确保系统处于最新状态:

sudo apt update && sudo apt upgrade -y

安装Laravel运行必需的组件:PHP(建议7.3及以上版本)、Web服务器(Nginx/Apache)、数据库(MySQL/MariaDB)及常用扩展:

# 安装Nginx(以Nginx为例)
sudo apt install nginx -y

# 安装PHP及扩展
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-bcmath -y

# 安装MySQL数据库
sudo apt install mysql-server -y

配置MySQL安全设置(设置root密码、移除匿名用户、禁止远程root登录):

sudo mysql_secure_installation

2. 安装Composer依赖管理工具
Composer是Laravel的依赖管理工具,需全局安装:

# 下载Composer安装脚本
curl -sS https://getcomposer.org/installer | php

# 移动至全局可执行路径
sudo mv composer.phar /usr/local/bin/composer

# 验证安装
composer --version

若需切换国内镜像(提升下载速度),可运行:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

3. 部署Laravel项目
将本地Laravel项目上传至服务器(如/var/www/laravel-project),推荐使用Git克隆或SCP传输:

# 创建项目目录并赋予权限
sudo mkdir -p /var/www/laravel-project
sudo chown -R $USER:$USER /var/www/laravel-project

# 进入项目目录并克隆代码(或使用scp上传)
cd /var/www/laravel-project
git clone your-repo-url.git .  # 替换为实际仓库地址

# 或使用SCP上传(本地执行):
# scp -r ./local-laravel-project/* user@server-ip:/var/www/laravel-project

安装项目依赖并生成应用密钥:

# 安装依赖(--optimize-autoloader提升加载速度,--no-dev移除开发依赖)
composer install --optimize-autoloader --no-dev

# 复制.env.example生成.env配置文件
cp .env.example .env

# 生成应用密钥(用于加密会话等)
php artisan key:generate

4. 配置数据库连接
登录MySQL创建数据库及专用用户,授权访问:

sudo mysql -u root -p

在MySQL shell中执行:

-- 创建数据库
CREATE DATABASE laravel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建用户并设置密码
CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'your_secure_password';

-- 授权用户访问数据库
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;
EXIT;

修改.env文件中的数据库配置(替换为实际值):

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=your_secure_password

运行数据库迁移(创建表结构)及数据填充(可选):

php artisan migrate --seed

5. 配置Web服务器(Nginx为例)
创建Nginx服务器块配置文件(替换yourdomain.com为实际域名或IP):

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

粘贴以下配置(根据项目路径调整root指令):

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/laravel-project/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/php8.1-fpm.sock;  # 根据PHP版本调整(如php7.4-fpm.sock)
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    # 可选:优化静态文件缓存
    location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }
}

启用配置并测试Nginx语法:

# 创建符号链接至sites-enabled目录
sudo ln -s /etc/nginx/sites-available/laravel-project /etc/nginx/sites-enabled/

# 测试配置是否正确
sudo nginx -t

重启Nginx应用更改:

sudo systemctl restart nginx

(若使用Apache,需创建.conf文件并启用mod_rewrite模块,配置类似但语法不同)

6. 设置文件权限
确保Laravel的关键目录(storage用于日志/缓存、bootstrap/cache用于框架缓存)可写:

# 设置项目目录所有者(www-data为Nginx默认用户)
sudo chown -R www-data:www-data /var/www/laravel-project

# 设置目录权限(storage和bootstrap/cache需可写)
sudo chmod -R 755 /var/www/laravel-project/storage
sudo chmod -R 755 /var/www/laravel-project/bootstrap/cache

(若使用Apache,将www-data替换为apache用户)

7. 优化Laravel性能(可选但推荐)
开启配置缓存(减少每次请求的配置加载时间)和路由缓存(提升路由解析速度):

php artisan config:cache
php artisan route:cache

清除旧缓存(若有):

php artisan cache:clear
php artisan view:clear

8. 验证部署
在浏览器中访问http://yourdomain.com,若看到Laravel欢迎页面或项目首页,则部署成功。
若遇问题,可通过以下日志排查:

  • Nginx错误日志:/var/log/nginx/error.log
  • Laravel应用日志:/var/www/laravel-project/storage/logs/laravel.log

0