Skip to content

生产环境部署

本文档介绍如何在生产服务器上部署 MineShop。

🎯 推荐配置

服务器配置

配置项最低要求推荐配置
CPU2 核4 核+
内存4 GB8 GB+
磁盘50 GB SSD100 GB+ SSD
带宽5 Mbps10 Mbps+

软件环境

组件版本
CentOS/Ubuntu7.x / 20.04+
PHP8.1+
Swoole5.0+
MySQL8.0+
Redis6.0+
Nginx1.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.ini

2. 安装 MySQL

bash
apt install mysql-server
mysql_secure_installation

3. 安装 Redis

bash
apt install redis-server
systemctl enable redis-server

4. 部署应用

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:seed

5. 配置 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 enable

SSL 证书

bash
# 使用 Let's Encrypt
apt install certbot python3-certbot-nginx
certbot --nginx -d your-domain.com

📊 监控建议

  1. 进程监控: 使用 Supervisor 或 Systemd
  2. 日志收集: ELK 或云日志服务
  3. 性能监控: Prometheus + Grafana
  4. 告警通知: 配置异常告警

⚠️ 注意事项

  1. 定期备份: 数据库和上传文件定期备份
  2. 日志轮转: 配置 logrotate 防止磁盘占满
  3. 安全更新: 及时更新系统和依赖包
  4. 监控告警: 配置服务异常告警

📚 相关文档

基于 Apache-2.0 许可发布 | 感谢 MineAdmin 提供的优秀基础框架