以下是关于 ThinkPHP 框架商城部署 的详细指南,涵盖从环境配置到上线部署的完整流程:
一、部署前准备
-
确认需求
- 明确商城功能需求(如商品管理、订单系统、支付接口等)。
- 确定服务器配置(CPU、内存、带宽等)。
-
技术栈选择
- 后端框架:ThinkPHP(建议版本 5.1 或 6.x)。
- 前端框架:Vue.js/React(可选,用于单页应用)。
- 数据库:MySQL 5.7+ 或 MariaDB。
- Web 服务器:Nginx 或 Apache。
- 缓存:Redis(推荐)或 Memcached。
- 其他:Composer(依赖管理)、Git(版本控制)。
-
服务器准备
- 操作系统:Linux(推荐 CentOS 7+/Ubuntu 18+)。
- 域名解析:将域名指向服务器 IP。
- 防火墙配置:开放 80(HTTP)、443(HTTPS)、3306(MySQL)等端口。
二、环境配置
1. 安装基础软件
# 更新系统包
sudo apt update && sudo apt upgrade -y # Ubuntu
sudo yum update -y # CentOS
# 安装 Nginx/Apache
sudo apt install nginx -y # Ubuntu
sudo yum install nginx -y # CentOS
# 安装 PHP(以 PHP 7.4 为例)
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt install php7.4 php7.4-fpm php7.4-mysql php7.4-xml php7.4-mbstring -y
# 安装 MySQL
sudo apt install mysql-server -y # Ubuntu
sudo yum install mariadb-server -y # CentOS
# 安装 Redis(可选)
sudo apt install redis-server -y
2. 配置 PHP
- 修改
php.ini
:max<em>execution</em>time = 30 memory<em>limit = 128M upload</em>max<em>filesize = 10M post</em>max_size = 10M
- 重启 PHP-FPM:
sudo systemctl restart php7.4-fpm
3. 配置 Web 服务器
-
Nginx 示例配置:
server { listen 80; server_name yourdomain.com; root /var/www/html/public; # 指向 ThinkPHP 的 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/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
- 重启 Nginx:
sudo systemctl restart nginx
三、部署 ThinkPHP 项目
1. 上传代码
- 通过 Git 或 FTP 将代码上传到服务器:
cd /var/www/html git clone https://github.com/your-repo/your-project.git
2. 安装依赖
- 进入项目目录并安装 Composer 依赖:
cd /var/www/html/your-project composer install --no-dev -o
3. 配置数据库
- 创建数据库并导入 SQL 文件:
CREATE DATABASE mall<em>db CHARACTER SET utf8mb4 COLLATE utf8mb4</em>general_ci;
- 修改
.env
文件(或config/database.php
):DB<em>HOST=127.0.0.1 DB</em>PORT=3306 DB<em>DATABASE=mall</em>db DB<em>USERNAME=root DB</em>PASSWORD=your_password
4. 配置缓存(可选)
- 修改 Redis 配置(如使用):
CACHE<em>DRIVER=redis REDIS</em>HOST=127.0.0.1 REDIS<em>PASSWORD=null REDIS</em>PORT=6379
四、权限与安全设置
-
设置目录权限
sudo chown -R www-data:www-data /var/www/html/your-project sudo chmod -R 755 /var/www/html/your-project/storage sudo chmod -R 755 /var/www/html/your-project/bootstrap/cache
-
开启 HTTPS
- 使用 Let’s Encrypt 免费证书:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.com
- 使用 Let’s Encrypt 免费证书:
-
禁用危险函数
- 在
php.ini
中禁用eval
、exec
等函数。
- 在
五、测试与上线
-
测试环境
- 访问
http://yourdomain.com
,检查页面是否正常。 - 测试核心功能(如商品添加、订单提交、支付接口)。
- 访问
-
性能优化
- 启用 OPcache:
opcache.enable=1 opcache.memory_consumption=128
- 使用 Redis 缓存会话和数据。
- 启用 OPcache:
-
日志监控
- 配置 Nginx/PHP 日志,监控错误:
tail -f /var/log/nginx/error.log tail -f /var/log/php7.4-fpm.log
- 配置 Nginx/PHP 日志,监控错误:
六、常见问题
-
502 Bad Gateway
- 检查 PHP-FPM 是否启动:
sudo systemctl status php7.4-fpm
。 - 检查 Nginx 配置是否正确。
- 检查 PHP-FPM 是否启动:
-
数据库连接失败
- 确认
.env
中的数据库配置。 - 检查 MySQL 用户权限:
GRANT ALL PRIVILEGES ON mall_db.* TO 'root'@'localhost'; FLUSH PRIVILEGES;
- 确认
-
页面 404
- 确认 Nginx 的
root
指向public
目录。 - 检查 URL 重写规则是否正确。
- 确认 Nginx 的
七、推荐工具与扩展
- 队列管理:使用 ThinkPHP 队列 + Redis 处理异步任务。
- 支付集成:支付宝/微信支付 SDK。
- 监控工具:Prometheus + Grafana 监控服务器性能。
通过以上步骤,您可以完成 ThinkPHP 商城的部署。如果需求复杂,建议进一步拆分服务(如使用 Docker 容器化部署)。