1. 需求与环境前提
1.1 确定技术栈与版本
在进行从零到上线的实操前,明确使用 PHP 8+ 版本、Laravel 10/9、MySQL/MariaDB 等组件是关键。PHP 8+ 能提供更好的性能与类型支持;Composer 是依赖管理的核心工具;Laravel 框架则提供路由、ORM、迁移等功能,显著提高开发效率。
本教程聚焦于 PHP 环境搭建 与 Laravel 项目运行,覆盖从本地搭建到上线部署的完整步骤,帮助你实现从零到上线的完整实操路线。
1.2 确定运行环境与服务器
本地开发通常选择 Ubuntu、macOS 或 WSL,上线则更偏向 Docker 作为一致性运行时,或使用 Nginx + PHP-FPM 的传统部署方式。环境一致性 与版本对齐,是上线稳定性的关键。
同时需要规划数据库方案(MySQL、MariaDB、或 PostgreSQL),以及缓存和队列的简单架构,以便后续扩展到生产环境。
2. 本地开发环境搭建
2.1 安装 PHP、扩展与 Composer
在本地或虚拟机中安装 PHP 8.x 以及常用扩展,如 php-fpm、pdo_mysql、mbstring、xml、zip,确保 Laravel 能正常工作。
# 以 Ubuntu 为例,安装常用 PHP 及扩展
sudo apt update
sudo apt install -y php8.1 php8.1-fpm php8.1-mysql php8.1-xml php8.1-mbstring php8.1-zip unzip# 安装 Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version
完成后请确保 composer 能全局访问,并准备好后续的依赖管理。
2.2 安装或选择 Web 服务器
通常选择 Nginx 作为前端代理与静态资源处理,结合 PHP-FPM 处理动态请求。也可以使用 Apache,但 Nginx 的并发与静态资源处理更优。
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
确保防火墙允许 80/443 端口对外访问,并在部署阶段根据需要开启 443 的 TLS/HTTPS 配置。
2.3 配置本地虚拟主机与根目录
为 Laravel 项目创建一个指向 public 目录的虚拟主机,保证外部访问资源通过入口文件 index.php 进行路由处理。
sudo mkdir -p /var/www/laravel
sudo chown -R $USER:$USER /var/www/laravel
sudo tee /etc/nginx/sites-available/laravel.conf >/dev/null << 'CONF'
server {listen 80;server_name localhost;root /var/www/laravel/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:/var/run/php/php8.1-fpm.sock;}location ~ /\.ht {deny all;}
}
CONFsudo ln -s /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-enabled/
sudo systemctl reload nginx
完成后,域名指向 已配置完成,后续可以通过浏览器访问本地 Laravel 应用的入口。如果需要本地测试多域名,请在 /etc/hosts 增加对应条目。
3. Laravel 项目初始化与代码结构
3.1 使用 Composer 创建 Laravel 项目
通过 composer create-project 指令快速创建新项目,便于从零到上线的起步。
composer create-project --prefer-dist laravel/laravel blog
cd blog
项目创建完成后,你将看到典型的 Laravel 目录结构,其中 public 目录是应用的 Web 入口。

3.2 了解核心目录结构
Laravel 的核心目录包括 app、config、database、routes、resources。其中 public 是 Web 入口,routes/web.php 负责网页路由。
理解这些目录有助于后续的环境变量、数据库迁移、资源编译等操作的定位与执行。
3.3 验证开发服务器
在正式投入 Nginx 作为生产服务器前,先通过 Artisan 提供的内置服务器进行快速验证,确保路由、控制器、视图等基础功能正常。
php artisan serve
如果需要在本地监听指定地址,可使用 --host 与 --port 参数。
4. 环境变量与数据库配置
4.1 复制并修改 .env
在 Laravel 项目中,.env 文件控制环境参数。请确保数据库连接信息与实际数据库实例保持一致,以实现正确的数据读写。
APP_NAME=Laravel
APP_ENV=local
APP_DEBUG=true
APP_KEY=
APP_URL=http://localhostLOG_CHANNEL=stackDB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=secret
首次部署前,请生成应用密钥并设置生产密钥管理策略,以确保加密和会话安全。
4.2 生成应用密钥与数据迁移
生成 APP_KEY,并执行数据库迁移来创建初始数据表,确保应用能够正常运行。
php artisan key:generate
php artisan migrate
migrations 还支持回滚、种子数据等后续开发阶段的流程,便于迭代。
5. 项目运行与本地调试
5.1 直接在本地使用内置服务器运行
使用 php artisan serve 可以快速在本地启动开发服务器,便于调试路由、控制器和中间件。
php artisan serve --host=0.0.0.0 --port=8000
在浏览器中打开 http://localhost:8000 即可看到应用首页,确保前端资源与 API 能正确返回。
5.2 连接数据库并测试基本功能
通过浏览器或 API 客户端,进行简单的 CRUD 操作测试,确保数据库连接、迁移后的表结构、以及数据写入读取等功能正常工作。
在本地调试阶段,可以通过 phpMyAdmin 或命令行工具检查数据库表和数据状态,以确保与 .env 配置一致。
6. 生产上线准备与部署
6.1 生产环境配置与安全性
上线前将应用的 APP_ENV 设置为 production,并将 APP_DEBUG 设置为 false,以避免敏感信息暴露。
# 编辑 .env
APP_ENV=production
APP_DEBUG=false
APP_URL=https://your-domain.com# 优化 Composer 依赖
composer install --no-dev --optimize-autoloader
生产环境还应开启缓存、配置队列、日志轮换等机制,以提升性能与稳定性,确保上线后能承受并发访问。
6.2 部署方式与常见工作流
常用的上线部署策略包括通过 SSH 远程部署、CI/CD 流水线,或将应用打包为 Docker 镜像 并在生产服务器中运行。自动化部署 能显著减少人为错误与部署时间。
若采用 Docker 部署,核心流程通常包括:构建镜像、运行容器、数据库迁移、缓存与队列初始化,以及日志监控的接入。
6.3 线上数据库与备份
上线前应规划数据库备份与崩溃恢复策略,避免生产数据丢失。定期备份、备份存放在独立区域、以及在部署窗口进行数据迁移测试,都是稳健的上线做法。
# 简单 MySQL 备份示例
mysqldump -u root -p --host=127.0.0.1 laravel > laravel_backup.sql


