以下是在 WSL2 (Ubuntu 24.04 LTS) 上部署 Laravel 项目的完整步骤,基于已搭建的 Nginx + PHP-FPM + MySQL + Redis 环境:
确保已完成:
# 下载 Composer
curl -sS https://getcomposer.org/installer | php
# 全局安装
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
# 验证安装
composer --version
# 进入 Web 根目录
cd /var/www
# 使用 Composer 创建 Laravel 项目
sudo composer create-project laravel/laravel myproject
# 设置权限(确保 Nginx 可读写)
sudo chown -R www-data:www-data /var/www/myproject
sudo chmod -R 775 /var/www/myproject/storage
cd /var/www
sudo git clone https://github.com/your/repo.git myproject
cd myproject
# 安装依赖
composer install --no-dev
# 复制环境文件并配置
cp .env.example .env
nano .env # 修改数据库、Redis 等配置
# 生成应用密钥
php artisan key:generate
# 设置权限
sudo chown -R www-data:www-data /var/www/myproject
sudo chmod -R 775 storage bootstrap/cache
# 登录 MySQL
sudo mysql -u root -p
# 创建数据库
CREATE DATABASE laravel_db;
GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
EXIT;
在 Laravel 的 .env
中配置:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=your_password
运行数据库迁移:
php artisan migrate
编辑 Nginx 站点配置:
sudo nano /etc/nginx/sites-available/laravel.conf
写入以下内容(替换 myproject
为你的项目名):
server {
listen 80;
server_name laravel.test;
root /var/www/myproject/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.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
启用配置并测试:
sudo ln -s /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default # 移除默认配置
sudo nginx -t # 测试配置
sudo systemctl restart nginx
在 Windows 的 C:\Windows\System32\drivers\etc\hosts
中添加:
127.0.0.1 laravel.test
(需用管理员权限编辑)
在 .env
中启用 Redis:
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
测试 Redis 连接:
php artisan tinker
>>> Redis::ping(); # 应返回 "PONG"
# 优化自动加载
composer dump-autoload --optimize
# 缓存路由和配置
php artisan config:cache
php artisan route:cache
php artisan view:cache
# 队列服务(如需)
php artisan queue:work --daemon
浏览器访问:
http://laravel.test
应看到 Laravel 欢迎页面。
/var/www/myproject
权限:sudo chown -R www-data:www-data /var/www/myproject
sudo chmod -R 775 storage bootstrap/cache
sudo systemctl status php8.3-fpm
fastcgi_pass
路径正确:ls /run/php/php8.3-fpm.sock
.env
中的数据库配置sudo mysql -u root -p
SHOW GRANTS FOR 'laravel_user'@'localhost';
✅ Laravel 项目已成功部署,环境包含:
下一步建议:
Certbot
配置 HTTPS如有问题,可检查日志:
# Nginx 错误日志
sudo tail -f /var/log/nginx/error.log
# Laravel 日志
tail -f /var/www/myproject/storage/logs/laravel.log