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欢迎页面或项目首页,则部署成功。
若遇问题,可通过以下日志排查:
/var/log/nginx/error.log/var/www/laravel-project/storage/logs/laravel.log