如何部署Laravel项目到WSL2的Ubuntu 24.04环境?

以下是在 WSL2 (Ubuntu 24.04 LTS) 上部署 Laravel 项目的完整步骤,基于已搭建的 Nginx + PHP-FPM + MySQL + Redis 环境:


1. 准备工作

确保已完成:

  • WSL2 + Ubuntu 24.04 安装
  • Nginx + PHP 8.3 + MySQL + Redis 环境配置

2. 安装 Composer(PHP 依赖管理)

# 下载 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

3. 部署 Laravel 项目

方法 1:全新安装 Laravel

# 进入 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

方法 2:部署现有 Laravel 项目

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

4. 配置 MySQL 数据库

# 登录 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

5. 配置 Nginx

编辑 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

6. 配置本地 hosts 文件(Windows)

在 Windows 的 C:\Windows\System32\drivers\etc\hosts 中添加:

127.0.0.1 laravel.test

(需用管理员权限编辑)


7. 配置 Redis(可选)

.env 中启用 Redis:

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

测试 Redis 连接:

php artisan tinker
>>> Redis::ping();  # 应返回 "PONG"

8. 优化 Laravel 性能

# 优化自动加载
composer dump-autoload --optimize

# 缓存路由和配置
php artisan config:cache
php artisan route:cache
php artisan view:cache

# 队列服务(如需)
php artisan queue:work --daemon

9. 访问项目

浏览器访问:

http://laravel.test

应看到 Laravel 欢迎页面。


10. 常见问题排查

问题 1:403 Forbidden

  • 检查 /var/www/myproject 权限:
    sudo chown -R www-data:www-data /var/www/myproject
    sudo chmod -R 775 storage bootstrap/cache
    

问题 2:502 Bad Gateway

  • 检查 PHP-FPM 是否运行:
    sudo systemctl status php8.3-fpm
    
  • 确认 Nginx 配置中的 fastcgi_pass 路径正确:
    ls /run/php/php8.3-fpm.sock
    

问题 3:数据库连接失败

  • 检查 .env 中的数据库配置
  • 确认 MySQL 用户权限:
    sudo mysql -u root -p
    SHOW GRANTS FOR 'laravel_user'@'localhost';
    

总结

Laravel 项目已成功部署,环境包含:

  • Nginx 作为 Web 服务器
  • PHP 8.3-FPM 处理请求
  • MySQL 存储数据
  • Redis 缓存/队列支持

🚀 下一步建议

  • 使用 Certbot 配置 HTTPS
  • 设置任务调度(Cron Job)
  • 部署到生产服务器(如 AWS/Laravel Forge)

如有问题,可检查日志:

# Nginx 错误日志
sudo tail -f /var/log/nginx/error.log

# Laravel 日志
tail -f /var/www/myproject/storage/logs/laravel.log
<think>我们正在讨论在WSL2 Ubuntu 24.04中使用GPU运行Mujoco。根据引用,用户已经安装WSL2Ubuntu,并且引用[3]提到在WSL安装了CUDA(版本11.8)。Mujoco是一个物理模拟引擎,通常用于机器人学和强化学习。要在Ubuntu中使用GPU运行Mujoco,需要确保以下几点: 1. 安装正确的NVIDIA驱动程序(在Windows主机上安装,因为WSL2使用主机的驱动程序)。 2.WSL2安装CUDA工具包(如引用[3]所做的那样)。 3. 安装Mujoco本身及其Python绑定(如mujoco_py或mujoco-python)。 然而,请注意,Mujoco从2.2.0版本开始已经开源,并且安装方式有所变化。现在,通常通过MuJoCo的官方Python绑定(`mujoco`包)来使用。 步骤概述: ### 1. 确保Windows主机上的NVIDIA驱动程序支持WSL2 - 在Windows上安装最新的NVIDIA驱动程序(支持WSL2),通常使用GeForce Game Ready驱动或Quadro驱动(根据显卡型号)。 - 确保WSL2可以访问GPU:在WSL2Ubuntu中运行`nvidia-smi`,应该能够看到显卡信息。 ### 2.WSL2Ubuntu 24.04安装CUDA工具包 - 如引用[3]所示,已经安装了CUDA 11.8。但是,请注意Mujoco对CUDA版本的要求。Mujoco本身并不直接依赖CUDA,但是如果你想在深度学习框架(如TensorFlow或PyTorch)中使用Mujoco模拟环境,那么这些框架可能需要特定版本的CUDA。 - 建议检查你所使用的深度学习框架所需的CUDA版本,并相应安装。但如果你只是单独运行Mujoco,那么Mujoco不需要CUDA,因为它主要运行在CPU上(除非使用特定的GPU加速渲染,但这通常不是通过CUDA)。然而,Mujoco的渲染可以使用GPU(通过OpenGL或Vulkan),而WSL2支持GPU加速的OpenGL。 ### 3. 安装Mujoco - 从Mujoco官网下载最新版本(目前是2.3.x):https://mujoco.org/download - 按照官方文档进行安装,包括设置环境变量等。 ### 4. 安装Mujoco的Python绑定 - 推荐使用官方Python绑定:`mujoco`(由DeepMind维护)。可以通过pip安装: ```bash pip install mujoco ``` - 注意:可能需要安装其他依赖,如GLFW(用于渲染窗口)。 ### 5. 验证安装 - 运行一个简单的Python脚本来加载模型并渲染。 具体步骤: #### 步骤1:安装NVIDIA驱动(在Windows主机上) - 前往NVIDIA官网下载并安装适用于你显卡的最新驱动。确保选择支持WSL2的驱动(通常最新版本都支持)。 #### 步骤2:在WSL2安装CUDA(可选,但推荐用于深度学习) - 注意:Mujoco本身并不需要CUDA,但如果你计划在深度学习项目中使用Mujoco(比如强化学习),则需要安装CUDA和cuDNN。 - 引用[3]已经安装了CUDA 11.8,如果需要其他版本,可以参照NVIDIA官方文档。 #### 步骤3:安装Mujoco 1. 下载Mujoco - 访问 https://mujoco.org/download ,填写信息后下载Linux版本的MuJoCo(压缩包)。 - 例如,下载的文件名为`mujoco-2.3.6-linux-x86_64.tar.gz`。 2. 解压并安装 ```bash mkdir ~/.mujoco tar -xvzf mujoco-2.3.6-linux-x86_64.tar.gz -C ~/.mujoco/ mv ~/.mujoco/mujoco-2.3.6 ~/.mujoco/mujoco ``` 3. 设置环境变量 将以下内容添加到`~/.bashrc`(或`~/.zshrc`,如果你使用zsh): ```bash export MUJOCO_PATH="$HOME/.mujoco/mujoco" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$MUJOCO_PATH/bin" ``` 然后运行:`source ~/.bashrc` 4. 验证Mujoco库 ```bash cd ~/.mujoco/mujoco/bin ./simulate ../model/humanoid.xml ``` 如果出现图形界面,则说明Mujoco安装成功(注意:在WSL2中需要配置图形界面显示,通常使用X Server转发,比如VcXsrv或Xming)。 #### 步骤4:安装Mujoco的Python绑定 ```bash pip install mujoco ``` 另外,如果需要渲染窗口,需要安装GLFW和OpenGL: ```bash sudo apt install libglfw3 libgl1-mesa-glx ``` 注意:在WSL2中,渲染窗口需要X Server。确保Windows主机上安装了X Server(如VcXsrv),并在WSL2中设置DISPLAY环境变量: ```bash export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0 ``` 可以将这行添加到`~/.bashrc`中。 #### 步骤5:测试Python绑定 创建一个Python脚本`test_mujoco.py`: ```python import mujoco import mujoco.viewer model = mujoco.MjModel.from_xml_path('humanoid.xml') # 需要下载humanoid.xml,或者使用其他模型 data = mujoco.MjData(model) with mujoco.viewer.launch_passive(model, data) as viewer: while viewer.is_running(): mujoco.mj_step(model, data) viewer.sync() ``` 注意:`humanoid.xml`可以在`~/.mujoco/mujoco/model`中找到(如果你已经下载了模型)。或者,你可以从Mujoco的模型库中获取。 运行脚本: ```bash python test_mujoco.py ``` 如果一切正常,你应该能看到一个人类模型的模拟窗口。 ### 注意事项 - WSL2的图形性能可能不如原生Linux,但对于Mujoco的基本使用应该足够。 - 如果遇到无法打开显示的问题,请确保X Server已经在Windows上运行,并且DISPLAY环境变量设置正确。 ### 相关问题 1. 如何在WSL2中配置X Server以显示图形界面? 2.WSL2中运行Mujoco时遇到性能问题怎么办? 3. Mujoco支持哪些版本的CUDA? 4. 如何将Mujoco与深度学习框架(如TensorFlow或PyTorch)结合使用? </think>### 在 WSL2 Ubuntu 24.04 中使用 GPU 运行 Mujoco 的方法 要在 WSL2 Ubuntu 24.04 中配置 GPU 运行 Mujoco,请按以下步骤操作: --- #### **1. 前置条件准备** - **Windows 主机配置**: - 确保 Windows 11 已安装最新 NVIDIA 驱动(通过 GeForce Experience 或官网更新) - 启用 WSL2:管理员 PowerShell 执行 `wsl --install -d Ubuntu-24.04` - 启用 GPU 支持:管理员 PowerShell 执行: ```bash wsl --update wsl --shutdown ``` 并在 `%UserProfile%\.wslconfig` 添加: ```ini [wsl2] gpuSupport=true ``` - **WSL2 基础环境**: ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential libgl1-mesa-glx libosmesa6 -y ``` --- #### **2. 安装 CUDA 工具包** 根据引用[3]的指引,安装 CUDA 11.8(Mujoco 兼容版本): ```bash wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update sudo apt-get -y install cuda ``` 验证安装: ```bash nvcc --version # 应显示 CUDA 11.8 nvidia-smi # 确认 GPU 识别 ``` --- #### **3. 安装 Mujoco** ```bash # 下载 Mujoco (版本需与CUDA兼容) wget https://mujoco.org/download/mujoco210-linux-x86_64.tar.gz # 解压到系统目录 sudo mkdir /opt/mujoco sudo tar -xzf mujoco210-linux-x86_64.tar.gz -C /opt/mujoco # 设置环境变量 echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mujoco/mujoco210/bin' >> ~/.bashrc echo 'export MUJOCO_PY_MUJOCO_PATH=/opt/mujoco/mujoco210' >> ~/.bashrc source ~/.bashrc ``` --- #### **4. 安装 Python 绑定** ```bash # 创建虚拟环境 sudo apt install python3.10-venv -y python3 -m venv mujoco_env source mujoco_env/bin/activate # 安装依赖 pip install wheel pip install mujoco==2.3.5 # 官方Python绑定 pip install glfw==2.5.1 # 渲染支持 # 或使用 mujoco_py (传统方式) # pip install mujoco_py==2.1.2.14 ``` --- #### **5. 验证 GPU 渲染** 创建测试脚本 `test_mujoco.py`: ```python import mujoco model = mujoco.MjModel.from_xml_path('/opt/mujoco/mujoco210/model/humanoid.xml') data = mujoco.MjData(model) print(f"GPU 加速状态: {mujoco.mj_activate('gpu')}") # 应返回 True ``` 运行: ```bash python test_mujoco.py ``` 预期输出:`GPU 加速状态: True` --- #### **6. 故障排除** - **GPU 未识别**: - 重启 WSL:`wsl --shutdown` - 确认 `nvidia-smi` 显示正确驱动版本 - **渲染黑屏**: ```bash sudo apt install libglew-dev patchelf export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so ``` - **权限问题**: 将用户加入渲染组: ```bash sudo usermod -aG render $USER ``` [^1]: 引用自用户提供的 Ubuntu 服务器配置说明 [^3]: 参考 CUDA 在 WSL安装流程 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值