全栈(PHP + Vue + MySQL)开发旅游管理系统教程(四)

简介: 教程来源 https://tmywi.cn 本指南详解旅游系统(travel-api + travel-ui)的本地开发环境搭建与运行流程:涵盖PHP 8.1+/Composer/MySQL/Node.js安装、Laravel后端初始化(密钥生成、JWT配置、数据库迁移)、Vue前端启动及Vite反向代理配置,支持前后端分离高效协同开发。

第四部分:运行与部署

4.1 启动后端

cd travel-api

# 安装依赖
composer install

# 生成应用密钥
php artisan key:generate

# 生成JWT密钥
php artisan jwt:secret

# 运行数据库迁移
php artisan migrate

# 启动开发服务器
php artisan serve

后端API将运行在 http://localhost:8000/api

4.2 启动前端

cd travel-ui

# 安装依赖
npm install

# 启动开发服务器
npm run dev

前端将运行在 http://localhost:5173

4.3 Vite代理配置

// vite.config.js
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path';

export default defineConfig({
    plugins: [vue()],
    resolve: {
        alias: { '@': path.resolve(__dirname, 'src') }
    },
    server: {
        port: 5173,
        proxy: {
            '/api': {
                target: 'http://localhost:8000',
                changeOrigin: true,
                rewrite: (path) => path.replace(/^\/api/, '')
            }
        }
    }
});

第五部分:运行与部署

5.1 开发环境准备详解
在开始运行项目之前,我们需要确保开发环境正确配置。以下是完整的环境配置指南:

5.1.1 PHP环境安装与配置
PHP是Laravel框架的运行基础,Laravel 10要求PHP版本不低于8.1。以下是不同操作系统的安装方法:

Windows系统:

下载并安装XAMPP或WampServer集成环境(推荐新手使用)

或者下载PHP 8.1+安装包,手动配置环境变量

将PHP安装目录添加到系统PATH环境变量中

macOS系统:

# 使用Homebrew安装PHP
brew install php@8.1

# 切换PHP版本
brew link --overwrite php@8.1

# 验证安装
php -v

Ubuntu/Debian系统:

# 添加PHP源
sudo add-apt-repository ppa:ondrej/php
sudo apt update

# 安装PHP 8.1及必要扩展
sudo apt install php8.1 php8.1-cli php8.1-common php8.1-mysql \
php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath

# 验证安装
php -v

5.1.2 Composer安装
Composer是PHP的依赖管理工具,类似于前端的npm。

# 下载并安装Composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"

# 全局安装(Linux/macOS)
sudo mv composer.phar /usr/local/bin/composer

# 验证安装
composer --version

5.1.3 MySQL安装与配置

# Ubuntu/Debian安装MySQL
sudo apt install mysql-server
sudo mysql_secure_installation

# 启动MySQL服务
sudo systemctl start mysql
sudo systemctl enable mysql

# 登录MySQL创建数据库
sudo mysql -u root -p

# 创建数据库和用户
CREATE DATABASE travel_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'travel_user'@'localhost' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON travel_db.* TO 'travel_user'@'localhost';
FLUSH PRIVILEGES;

5.1.4 Node.js安装

# 使用nvm安装Node.js(推荐)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 18
nvm use 18

# 验证安装
node -v
npm -v

5.2 后端项目配置与启动详解
5.2.1 克隆/创建项目后的初始化步骤

# 进入后端项目目录
cd travel-api

# 步骤1:安装Composer依赖
# 这会在vendor目录中安装Laravel框架及所有依赖包
composer install

# 如果在中国大陆,可以使用国内镜像加速
composer config -g repo.packagist composer https://packagist.phpcomposer.com
composer install

依赖安装说明:

laravel/framework:Laravel核心框架

tymon/jwt-auth:JWT认证扩展包

fruitcake/laravel-cors:跨域请求支持

5.2.2 环境配置文件配置

# 复制环境配置文件
cp .env.example .env

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

# 生成JWT密钥(用于签名和验证JWT令牌)
php artisan jwt:secret

# 生成配置文件缓存(可选,生产环境建议执行)
php artisan config:cache

.env文件关键配置详解:

# 应用基础配置
APP_NAME="旅游管理系统API"    # 应用名称,将显示在日志和邮件中
APP_ENV=local                 # 环境:local(开发), staging(测试), production(生产)
APP_DEBUG=true                # 调试模式:开启后错误会显示详细信息
APP_URL=http://localhost:8000 # 应用访问地址

# 数据库配置(必须与实际数据库信息一致)
DB_CONNECTION=mysql           # 数据库类型
DB_HOST=127.0.0.1             # 数据库主机地址
DB_PORT=3306                  # 数据库端口
DB_DATABASE=travel_db         # 数据库名称
DB_USERNAME=root              # 数据库用户名
DB_PASSWORD=123456            # 数据库密码

# JWT配置
JWT_SECRET=your-secret-key    # 由php artisan jwt:secret生成
JWT_TTL=60                    # Token有效期(分钟),设为null表示永不过期

# 前端地址(用于CORS跨域配置)
FRONTEND_URL=http://localhost:5173

5.2.3 数据库迁移与数据填充

# 执行数据库迁移(创建所有数据表)
php artisan migrate

# 如果迁移失败,可以回滚后重新执行
php artisan migrate:refresh

# 填充初始数据(管理员账户、测试分类等)
php artisan db:seed

# 如果需要单独执行某个Seeder
php artisan db:seed --class=DatabaseSeeder

迁移执行成功标志:

Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (123.45ms)
Migrating: 2024_01_01_000000_create_categories_table
Migrated:  2024_01_01_000000_create_categories_table (89.23ms)
...

5.2.4 启动后端开发服务器

# 启动Laravel开发服务器
php artisan serve

# 指定端口启动(如果8000被占用)
php artisan serve --port=8080

# 指定主机启动(允许外部访问)
php artisan serve --host=0.0.0.0 --port=8000

启动成功标志:

Starting Laravel development server: http://127.0.0.1:8000
[Sun May 1 10:30:00 2024] PHP 8.1.2 Development Server (http://127.0.0.1:8000) started

5.3 前端项目配置与启动详解
5.3.1 安装依赖的详细说明

cd travel-ui

# 安装项目依赖
npm install

# 依赖安装过程说明:
# - node_modules目录将包含所有前端依赖
# - 主要依赖包括:vue@^3.3.0, element-plus, axios, vue-router@4, pinia
# - 首次安装可能需要3-5分钟

如果安装速度慢,可以使用国内镜像:

# 设置淘宝镜像
npm config set registry https://registry.npmmirror.com

# 重新安装
npm install

5.3.2 启动开发服务器

# 启动Vue开发服务器
npm run dev

# 指定端口启动
npm run dev -- --port=3000

启动成功标志:

VITE v4.5.0  ready in 500 ms

➜  Local:   http://localhost:5173/
➜  Network: use --host to expose

来源:
https://hllft.cn

相关文章
|
8天前
|
缓存 人工智能 自然语言处理
我对比了8个Claude API中转站,踩了不少坑,总结给你
本文是个人开发者耗时1周实测的8大Claude中转平台横向评测,聚焦Claude Code真实体验:以加权均价(¥/M token)、内部汇率、缓存支持、模型真实性及稳定性为核心指标。
3331 20
|
20天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
17769 60
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
1天前
|
SQL 人工智能 弹性计算
阿里云发布 Agentic NDR,威胁检测与响应进入智能体时代
欢迎前往阿里云云防火墙控制台体验!
1153 2
|
4天前
|
人工智能 JSON BI
DeepSeek V4 来了!超越 Claude Sonnet 4.5,赶紧对接 Claude Code 体验一把
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro 的真实体验与避坑记录 本文记录我将 Claude Code 对接 DeepSeek 最新模型(V4Pro)后的真实体验,测试了 Skills 自动化查询和积木报表 AI 建表两个场景——有惊喜,也踩
1742 8
|
15天前
|
人工智能 JavaScript Ubuntu
低成本搭建AIP自动化写作系统:Hermes保姆级使用教程,长文和逐步实操贴图
我带着怀疑的态度,深度使用了几天,聚焦微信公众号AIP自动化写作场景,写出来的几篇文章,几乎没有什么修改,至少合乎我本人的意愿,而且排版风格,也越来越完善,同样是起码过得了我自己这一关。 这个其实OpenClaw早可以实现了,但是目前我觉得最大的区别是,Hermes会自主总结提炼,并更新你的写作技能。 相信就冲这一点,就值得一试。 这篇帖子主要就Hermes部署使用,作一个非常详细的介绍,几乎一步一贴图。 关于Hermes,无论你赞成哪种声音,我希望都是你自己动手行动过,发自内心的选择!
3156 29
|
3天前
|
人工智能 缓存 BI
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
JeecgBoot AI专题研究 把 Claude Code 接入 DeepSeek V4Pro,跑完 Skills —— OA 审批、大屏、报表、部署 5 大实战场景后的真实体验 ![](https://oscimg.oschina.net/oscnet/up608d34aeb6bafc47f
1370 3
Claude Code + DeepSeek V4-Pro 真实评测:除了贵,没别的毛病
|
4天前
|
机器学习/深度学习 缓存 测试技术
DeepSeek-V4开源:百万上下文,Agent能力比肩顶级闭源模型
DeepSeek-V4正式开源!含V4-Pro(1.6T参数)与V4-Flash(284B参数)双版本,均支持百万token上下文。首创混合注意力架构,Agent能力、世界知识与推理性能全面领先开源模型,数学/代码评测比肩顶级闭源模型。
1699 6
|
5天前
|
人工智能 测试技术 API
阿里Qwen3.6-27B正式开源:网友直呼“太牛了”!
阿里云千问3.6系列重磅开源Qwen3.6-27B稠密大模型!官网:https://t.aliyun.com/U/JbblVp 仅270亿参数,编程能力媲美千亿模型,在SWE-bench等权威基准中表现卓越。支持多模态理解、本地部署及OpenClaw等智能体集成,已开放Hugging Face与ModelScope下载。