一、部署前环境准备
1. 服务器要求
- 操作系统:推荐CentOS 7/8或Ubuntu 20.04 LTS(需64位系统)。
- 硬件配置:
- 基础版:4核CPU、8GB内存、50GB磁盘空间(适合中小规模生鲜业务)。
- 高并发版:8核CPU、16GB内存、100GB+磁盘空间(支持万级订单处理)。
- 网络要求:固定公网IP,带宽≥10Mbps(根据用户量调整)。
2. 依赖软件安装
- Web服务器:Nginx(推荐1.18+)或Apache。
- 数据库:MySQL 5.7/8.0或MariaDB 10.4+(需支持InnoDB引擎)。
- 编程语言:PHP 7.4/8.0(需安装`pdo_mysql`、`gd`、`opcache`等扩展)。
- 缓存:Redis 5.0+(用于会话和队列管理)。
- 消息队列:RabbitMQ 3.8+(可选,用于异步任务处理)。
3. 安全配置
- 开放端口:80(HTTP)、443(HTTPS)、3306(数据库,建议内网访问)、6379(Redis)。
- 防火墙规则:使用`iptables`或`firewalld`限制来源IP。
- SSL证书:申请Lets Encrypt免费证书或商业证书,强制HTTPS。
二、源码部署步骤
1. 获取源码
- 从官方渠道下载万象生鲜系统源码包(如`wangxiang_v2.0.zip`)。
- 解压至服务器目录:
```bash
unzip wangxiang_v2.0.zip -d /var/www/wangxiang
```
2. 配置数据库
- 创建数据库及用户:
```sql
CREATE DATABASE wangxiang CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER wangxiang_user@localhost IDENTIFIED BY 强密码;
GRANT ALL PRIVILEGES ON wangxiang.* TO wangxiang_user@localhost;
```
- 导入初始数据:
```bash
mysql -u wangxiang_user -p wangxiang < /var/www/wangxiang/database/init.sql
```
3. 修改配置文件
- 编辑`.env`文件(位于项目根目录):
```ini
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=wangxiang
DB_USERNAME=wangxiang_user
DB_PASSWORD=强密码
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=可选密码
```
4. 安装依赖
- 使用Composer安装PHP依赖:
```bash
cd /var/www/wangxiang
composer install --no-dev --optimize-autoloader
```
5. 配置Web服务器
- Nginx示例配置:
```nginx
server {
listen 80;
server_name yourdomain.com;
root /var/www/wangxiang/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
```
- 重启Nginx:
```bash
systemctl restart nginx
```
6. 运行迁移与种子
- 执行数据库迁移和初始数据填充:
```bash
php artisan migrate --seed
```
三、常见问题及解决方案
1. 白屏或500错误
- 原因:权限不足、存储目录不可写、PHP扩展缺失。
- 解决:
- 设置目录权限:
```bash
chown -R www-data:www-data /var/www/wangxiang/storage
chmod -R 755 /var/www/wangxiang/storage
```
- 检查PHP日志(`/var/log/nginx/error.log`或`/var/log/php-fpm.log`)。
2. 数据库连接失败
- 原因:密码错误、防火墙阻止、MySQL未运行。
- 解决:
- 测试MySQL连接:
```bash
mysql -u wangxiang_user -p -h 127.0.0.1
```
- 检查MySQL绑定地址(`/etc/mysql/mysql.conf.d/mysqld.cnf`中`bind-address`应为`0.0.0.0`或服务器IP)。
3. 图片上传失败
- 原因:Nginx未配置`client_max_body_size`。
- 解决:在Nginx配置中添加:
```nginx
client_max_body_size 50M;
```
4. 性能优化建议
- 缓存配置:启用OPcache和Redis缓存。
- 队列处理:使用`php artisan queue:work`后台处理订单、短信等异步任务。
- 静态资源:配置CDN加速图片和JS/CSS文件。
四、部署后验证
1. 访问首页:`http://yourdomain.com`,检查页面是否正常加载。
2. 测试核心功能:
- 用户注册/登录
- 商品搜索与下单
- 支付接口(沙箱环境测试)
3. 监控日志:
- 使用`tail -f /var/www/wangxiang/storage/logs/laravel.log`实时查看错误。
五、扩展建议
- 高可用:部署多台服务器,使用负载均衡(如Nginx upstream)。
- 备份:每日自动备份数据库和上传文件(使用`mysqldump`和`rsync`)。
- 监控:集成Prometheus+Grafana监控服务器资源。
如遇特定错误,可提供具体日志片段进一步分析。部署完成后,建议定期更新源码和依赖库以修复安全漏洞。