Appearance
生产环境部署
本文档介绍如何在生产服务器上部署 MineShop。
🎯 推荐配置
服务器配置
| 配置项 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 2 核 | 4 核+ |
| 内存 | 4 GB | 8 GB+ |
| 磁盘 | 50 GB SSD | 100 GB+ SSD |
| 带宽 | 5 Mbps | 10 Mbps+ |
软件环境
| 组件 | 版本 |
|---|---|
| CentOS/Ubuntu | 7.x / 20.04+ |
| PHP | 8.1+ |
| Swoole | 5.0+ |
| MySQL | 8.0+ |
| Redis | 6.0+ |
| Nginx | 1.20+ |
🔧 安装步骤
1. 安装 PHP 和扩展
bash
# Ubuntu
apt update
apt install php8.1 php8.1-cli php8.1-fpm php8.1-mysql php8.1-redis
# 安装 Swoole
pecl install swoole
echo "extension=swoole.so" >> /etc/php/8.1/cli/php.ini2. 安装 MySQL
bash
apt install mysql-server
mysql_secure_installation3. 安装 Redis
bash
apt install redis-server
systemctl enable redis-server4. 部署应用
bash
# 创建目录
mkdir -p /var/www/mineshop
cd /var/www/mineshop
# 克隆代码
git clone https://github.com/since-leoo/mine-shop.git .
# 安装依赖
composer install --no-dev --optimize-autoloader
# 配置环境
cp .env.example .env
vim .env # 编辑配置
# 初始化数据库
php bin/hyperf.php migrate
php bin/hyperf.php db:seed5. 配置 Nginx
nginx
upstream mineshop {
server 127.0.0.1:9501;
keepalive 64;
}
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://mineshop;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static {
alias /var/www/mineshop/public/static;
expires 30d;
}
}6. 配置 Systemd 服务
ini
# /etc/systemd/system/mineshop.service
[Unit]
Description=MineShop Application
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/mineshop
ExecStart=/usr/bin/php bin/hyperf.php start
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target启动服务:
bash
systemctl daemon-reload
systemctl enable mineshop
systemctl start mineshop🔒 安全配置
防火墙
bash
# 只开放必要端口
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 22/tcp
ufw enableSSL 证书
bash
# 使用 Let's Encrypt
apt install certbot python3-certbot-nginx
certbot --nginx -d your-domain.com📊 监控建议
- 进程监控: 使用 Supervisor 或 Systemd
- 日志收集: ELK 或云日志服务
- 性能监控: Prometheus + Grafana
- 告警通知: 配置异常告警
⚠️ 注意事项
- 定期备份: 数据库和上传文件定期备份
- 日志轮转: 配置 logrotate 防止磁盘占满
- 安全更新: 及时更新系统和依赖包
- 监控告警: 配置服务异常告警