Laravel Sail Inertia(Vue3)+Vite项目Ubuntu Apache部署求助
部署Laravel Sail + Inertia(Vue3) + Vite到Ubuntu Apache的解决方案
问题1解答
不能完全等同于普通Laravel部署。常规Laravel部署步骤是基础,但需注意:Sail仅为本地开发容器环境,生产环境无需保留其配置与依赖;同时因用到Vite和Inertia,确实需要额外执行npm run build来编译前端资源,这是普通Laravel部署(无Vite时)没有的步骤。
问题2:具体部署步骤
以下是适配Ubuntu Apache的完整流程:
1. 服务器环境准备
- 安装Apache、对应Laravel版本要求的PHP(如8.1+)及必要扩展:mbstring、xml、ctype、json、bcmath、gd、curl、zip、mysqlnd
- 安装Composer、Node.js(16+版本,适配Vite)
- 安装数据库(如MySQL),创建项目专属数据库及权限用户
2. 项目代码上传
- 上传本地项目代码至服务器Apache网站根目录(如
/var/www/your-project),注意排除Sail相关本地文件:docker-compose.yml、.env.sail等 - 设置目录权限:
sudo chown -R www-data:www-data /var/www/your-project sudo chmod -R 755 /var/www/your-project/storage sudo chmod -R 755 /var/www/your-project/bootstrap/cache
3. Laravel核心配置
- 复制
.env.example为.env,修改数据库连接信息、APP_URL为你的域名、APP_ENV=production、APP_DEBUG=false - 生成应用密钥:
php artisan key:generate --force - 执行数据库迁移(若有需要):
php artisan migrate --force - 缓存配置与路由:
php artisan config:cache php artisan route:cache php artisan view:cache
4. Vite与Inertia资源构建
- 安装项目依赖:
npm install --production=false - 执行生产环境构建,生成编译后的静态资源:
npm run build - 无需额外修改Inertia配置,Vite会自动处理生产环境的资源路径映射
5. Apache虚拟主机配置
- 创建虚拟主机配置文件(如
/etc/apache2/sites-available/your-project.conf):<VirtualHost *:80> ServerName your-domain.com DocumentRoot /var/www/your-project/public <Directory /var/www/your-project/public> Options Indexes FollowSymLinks AllowOverride All Require all granted RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </Directory> ErrorLog ${APACHE_LOG_DIR}/your-project-error.log CustomLog ${APACHE_LOG_DIR}/your-project-access.log combined </VirtualHost> - 启用配置与rewrite模块:
sudo a2ensite your-project.conf sudo a2enmod rewrite sudo systemctl restart apache2
6. 验证与排错
- 访问域名检查页面加载状态,查看浏览器控制台是否有静态资源加载错误
- 若Inertia页面异常,确认
.env中APP_URL配置正确,且Vite构建产物存在于public/build目录 - 若出现权限报错,再次检查
storage和bootstrap/cache目录的权限设置
内容的提问来源于stack exchange,提问作者Tamás László
相关产品推荐
相关产品推荐

