- 新增商家/信息详情页电话拨打接口,支持每日额度限制与拨打日志记录 - 新增平台免责声明内容及协议接口,完善用户服务协议相关配置 - 新增农产品分类图标与上市角标展示,优化分类管理界面样式 - 新增全国行政区划工具类与城市选择组件,重构地区数据结构 - 新增SSH自检与部署脚本,完善项目部署流程
29 行
1.6 KiB
Python
29 行
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""第三步:远程部署(解压代码、导入数据库、清缓存、重建菜单、修权限)"""
|
|
import paramiko
|
|
cli = paramiko.SSHClient()
|
|
cli.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
cli.connect("8.137.181.63", 22, "root", "liyanxia@6688", timeout=20)
|
|
|
|
BASE = "/www/wwwroot/fenleixinxi.gzyakj.com.cn"
|
|
steps = [
|
|
("解压代码", f"cd {BASE} && tar -xzf /tmp/dep/code.tar.gz -C {BASE} && echo OK"),
|
|
("导入数据库", f"mysql -ufenleixinxi -pfenleixinxi --default-character-set=utf8mb4 fenleixinxi < /tmp/dep/db_full.sql 2>&1 | grep -v 'insecure' ; echo rc=$?"),
|
|
("校验表数量", "mysql -ufenleixinxi -pfenleixinxi -N -e \"SELECT COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA='fenleixinxi';\" 2>/dev/null"),
|
|
("清理runtime缓存", f"cd {BASE} && rm -rf runtime/cache/* runtime/temp/* && echo OK"),
|
|
("重建后台菜单", f"cd {BASE} && php think fc:menu 2>&1 | tail -20"),
|
|
("修正目录属主", f"chown -R www:www {BASE}/application {BASE}/public {BASE}/extend {BASE}/addons {BASE}/runtime && echo OK"),
|
|
("校验national_areas", f"ls -la {BASE}/application/extra/national_areas.json {BASE}/application/common/library/NationalArea.php"),
|
|
]
|
|
for title, cmd in steps:
|
|
_, out, err = cli.exec_command(cmd, timeout=300)
|
|
rc = out.channel.recv_exit_status()
|
|
o = out.read().decode("utf-8", "ignore").strip()
|
|
e = err.read().decode("utf-8", "ignore").strip()
|
|
print(f"===== {title} ===== rc={rc}\n{o}")
|
|
if e:
|
|
print("STDERR:", e[:800])
|
|
print("-" * 60)
|
|
cli.close()
|
|
print("DEPLOY DONE")
|