📦 Magento 2 Admin - 电商后台管理
v5.0.02 AdminFull 通过 SSH、REST API、GraphQL 及直连数据库,全面管理 Magento 2 商店。绝不说“无法访问服务器”——始终亲自执行命令。
详细分析 ▾
运行时依赖
版本
v5.0.0:完全重写。支持 SSH+REST API+GraphQL+数据库。订单增删改查、收入报表、商品、客户、邮件/SMTP、优惠券、税费、运费、导入/导出、安全/2FA、任意 SQL、扩展专用命令(Dotdigital、Amazon Pay、Braintree、ShipperHQ、WeSupply、M2E、Meta)。共 33 节,1171 行。
安装命令
点击复制技能文档
关键 —— 必须亲自运行所有命令
你运行在有 SSH 权限的服务器上,已安装sshpass。必须执行所有命令并返回结果。绝不说“我没有权限”或“请自行运行”——这是错误的。 配置
使用前在私有配置或环境中设置:| 变量 | 说明 | 示例 | |---|---|---| | MAGENTO_HOST | Magento 服务器 IP 或域名 | 192.168.1.100 | | MAGENTO_SSH_USER | SSH 用户名 | deploy | | MAGENTO_SSH_PASS | SSH 密码 | yourpassword | | MAGENTO_SUDO_PASS | sudo 密码(如不同) | yourpassword | | MAGENTO_WEB_ROOT | Magento 安装路径 | /var/www/html/magento2 | | MAGENTO_PHP | PHP 可执行路径 | /usr/bin/php8.3 | | MAGENTO_WEB_USER | Web 服务器用户 | www-data | | MAGENTO_DB_NAME | 数据库名 | mymagentostore | | MAGENTO_DB_USER | 数据库用户 | magentodbuser | | MAGENTO_DB_PASS | 数据库密码 | dbpassword | | MAGENTO_BASE_URL | 商店基础 URL | https://store.example.com | | MAGENTO_ADMIN_PATH | 后台 URL 路径 | admin | | MAGENTO_ADMIN_USER | 后台用户名 | admin | | MAGENTO_ADMIN_PASS | 后台密码 | adminpassword | | MAGENTO_OS_URL | OpenSearch URL | http://127.0.0.1:9200 |
SSH 模板
Magento CLI: ``bash
sshpass -p 'MAGENTO_SSH_PASS' ssh -o StrictHostKeyChecking=no MAGENTO_SSH_USER@MAGENTO_HOST \
"echo MAGENTO_SUDO_PASS | sudo -S -u MAGENTO_WEB_USER MAGENTO_PHP MAGENTO_WEB_ROOT/bin/magento COMMAND 2>&1"
` 数据库查询:
`bash
sshpass -p 'MAGENTO_SSH_PASS' ssh -o StrictHostKeyChecking=no MAGENTO_SSH_USER@MAGENTO_HOST \
"mysql -uMAGENTO_DB_USER -pMAGENTO_DB_PASS MAGENTO_DB_NAME -e 'QUERY' 2>&1"
`
REST API —— 先取令牌再调用:
`bash
# 获取管理员令牌
TOKEN=$(sshpass -p 'MAGENTO_SSH_PASS' ssh -o StrictHostKeyChecking=no MAGENTO_SSH_USER@MAGENTO_HOST \
"curl -s -k -X POST MAGENTO_BASE_URL/rest/V1/integration/admin/token \
-H 'Content-Type: application/json' \
-d '{\"username\":\"MAGENTO_ADMIN_USER\",\"password\":\"MAGENTO_ADMIN_PASS\"}' 2>/dev/null | tr -d '\"'")
# 后续调用
sshpass -p 'MAGENTO_SSH_PASS' ssh -o StrictHostKeyChecking=no MAGENTO_SSH_USER@MAGENTO_HOST \
"curl -s -k MAGENTO_BASE_URL/rest/V1/ENDPOINT -H 'Authorization: Bearer $TOKEN'"
`
Composer:
`bash
sshpass -p 'MAGENTO_SSH_PASS' ssh -o StrictHostKeyChecking=no MAGENTO_SSH_USER@MAGENTO_HOST \
"echo MAGENTO_SUDO_PASS | sudo -S -u MAGENTO_WEB_USER bash -c 'cd MAGENTO_WEB_ROOT && php COMPOSER_PATH COMMAND 2>&1'"
`
---
全面健康检查
`bash
sshpass -p 'MAGENTO_SSH_PASS' ssh -o StrictHostKeyChecking=no MAGENTO_SSH_USER@MAGENTO_HOST "
echo '=== 版本 ===' && echo MAGENTO_SUDO_PASS | sudo -S -u MAGENTO_WEB_USER MAGENTO_PHP MAGENTO_WEB_ROOT/bin/magento --version 2>&1
echo '=== 模式 ===' && echo MAGENTO_SUDO_PASS | sudo -S -u MAGENTO_WEB_USER MAGENTO_PHP MAGENTO_WEB_ROOT/bin/magento deploy:mode:show 2>&1
echo '=== 服务 ===' && echo MAGENTO_SUDO_PASS | sudo -S systemctl is-active apache2 nginx mariadb mysql redis-server opensearch php8.3-fpm php8.4-fpm 2>/dev/null
echo '=== 负载 ===' && uptime
echo '=== 内存 ===' && free -h | grep Mem
echo '=== 磁盘 ===' && df -h MAGENTO_WEB_ROOT | tail -1
echo '=== OpenSearch ===' && curl -s MAGENTO_OS_URL/_cluster/health 2>/dev/null | python3 -c 'import sys,json; d=json.load(sys.stdin); print(d[\"status\"])'
echo '=== Redis ===' && redis-cli ping && redis-cli info keyspace
echo '=== 定时任务 ===' && mysql -uMAGENTO_DB_USER -pMAGENTO_DB_PASS MAGENTO_DB_NAME -e 'SELECT status,COUNT(*) FROM cron_schedule WHERE scheduled_at>DATE_SUB(NOW(),INTERVAL 2 HOUR) GROUP BY status;' 2>&1
echo '=== 错误 ===' && tail -3 MAGENTO_WEB_ROOT/var/log/exception.log 2>/dev/null | grep -c CRITICAL || echo 0
" 2>&1
` ---
缓存
状态:
`bash
sshpass -p 'MAGENTO_SSH_PASS' ssh -o StrictHostKeyChecking=no MAGENTO_SSH_USER@MAGENTO_HOST \
"echo MAGENTO_SUDO_PASS | sudo -S -u MAGENTO_WEB_USER MAGENTO_PHP MAGENTO_WEB_ROOT/bin/magento cache:status 2>&1"
` 清空全部:
``bash
sshpass -p 'MAGENTO_SSH_PASS' ssh -o StrictHostKeyChecking=no MAGENTO_SSH_USER@MAGENTO_HOST \
"echo MAGENTO_SUDO_PASS | sudo -S