222 lines
3.7 KiB
Markdown
222 lines
3.7 KiB
Markdown
|
|
# ECS 服务器 SSH 终端进入 Docker `integral-houtai` 重启 Webman
|
|||
|
|
|
|||
|
|
适用项目:池州雷蕾商贸 `czleilei240` 寄卖商城
|
|||
|
|
适用容器:`integral-houtai`
|
|||
|
|
适用域名:`https://leileiadmin.czchunfang.com`
|
|||
|
|
|
|||
|
|
## 先说结论
|
|||
|
|
|
|||
|
|
这套项目当前不是标准 ThinkPHP / `php think` 启动方式。
|
|||
|
|
|
|||
|
|
我已经核对过当前代码目录,实际应用文件只有:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
integral-resell/houtai/webman.bin
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
没有下面这些文件:
|
|||
|
|
|
|||
|
|
- `think`
|
|||
|
|
- `start.php`
|
|||
|
|
- `composer.json`
|
|||
|
|
|
|||
|
|
所以这套 `integral-houtai` 容器里,不能按 `php think` 命令去重启 Webman,正确方式是进入容器后执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
./webman.bin restart -d
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 一、SSH 登录 ECS
|
|||
|
|
|
|||
|
|
在本地终端执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ssh root@116.62.83.240
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果 SSH 端口不是默认 `22`,则执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ssh -p 22 root@116.62.83.240
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 二、进入容器
|
|||
|
|
登录服务器后,直接执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker exec -it integral-houtai sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
进入容器后,提示符会切换到容器内部环境。
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 五、在容器内重启 Webman
|
|||
|
|
|
|||
|
|
进入容器后执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
./webman.bin restart -d
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果你不确定当前目录,也可以写成:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /app
|
|||
|
|
./webman.bin restart -d
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 六、退出容器
|
|||
|
|
|
|||
|
|
执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
exit
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 七、查看日志确认是否启动成功
|
|||
|
|
|
|||
|
|
回到服务器宿主机终端后执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker logs -f --tail 100 integral-houtai
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
看到类似下面的字样,说明 Webman 已成功拉起:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
Webman start success
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
看完日志后按 `Ctrl + C` 退出。
|
|||
|
|
|
|||
|
|
## 八、验证接口是否恢复
|
|||
|
|
|
|||
|
|
可以在服务器上直接验证:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -I http://127.0.0.1:18085
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或者验证线上域名:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -I https://leileiadmin.czchunfang.com
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果要验证业务接口:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl -s "https://leileiadmin.czchunfang.com/api/order/goods?page=1&limit=1"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 九、完整操作示例
|
|||
|
|
|
|||
|
|
如果只是日常手动进入容器重启,整套命令如下:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ssh root@116.62.83.240
|
|||
|
|
docker exec -it integral-houtai sh
|
|||
|
|
pwd
|
|||
|
|
cd /app
|
|||
|
|
ls
|
|||
|
|
./webman.bin restart -d
|
|||
|
|
exit
|
|||
|
|
docker logs -f --tail 100 integral-houtai
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 十、为什么不是 `php think`
|
|||
|
|
|
|||
|
|
因为当前这套项目不是通过 ThinkPHP 命令入口运行的。
|
|||
|
|
|
|||
|
|
我核对到的实际情况是:
|
|||
|
|
|
|||
|
|
- 容器挂载的应用目录是 `/app`
|
|||
|
|
- 对应宿主机目录是 `/www/wwwroot/leileiadmin.czchunfang.com`
|
|||
|
|
- 应用启动文件是 `webman.bin`
|
|||
|
|
- 当前项目目录里不存在 `think` / `start.php`
|
|||
|
|
|
|||
|
|
所以如果你进入容器后执行类似:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
php think
|
|||
|
|
php think start
|
|||
|
|
php think restart
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
大概率会提示文件不存在或命令不可用。
|
|||
|
|
|
|||
|
|
## 十一、按实际操作整理的最短步骤
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
ssh root@116.62.83.240
|
|||
|
|
docker exec -it integral-houtai sh
|
|||
|
|
cd /app
|
|||
|
|
./webman.bin restart -d
|
|||
|
|
exit
|
|||
|
|
docker logs -f --tail 100 integral-houtai
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 十二、如果你一定要先验证容器里有没有 `think`
|
|||
|
|
|
|||
|
|
进入容器后可以手动检查:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd /app
|
|||
|
|
ls -la
|
|||
|
|
find /app -maxdepth 2 -name think -o -name start.php
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果没有结果,就说明这套容器内确实不是 ThinkPHP 命令模式。
|
|||
|
|
|
|||
|
|
## 十三、进入 Redis 容器
|
|||
|
|
|
|||
|
|
Redis 容器名是:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
integral-redis
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
进入容器执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker exec -it integral-redis sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果想直接连 Redis,也可以不进容器,直接在宿主机执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker exec -it integral-redis redis-cli
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 十四、清空 Redis 数据
|
|||
|
|
|
|||
|
|
进入 Redis 容器后,先连上 redis:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
redis-cli
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果需要密码,执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
redis-cli -a '你的Redis密码'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
清空当前数据库:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
FLUSHDB
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
清空所有数据库:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
FLUSHALL
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果要一条命令直接清空当前库,也可以在宿主机执行:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
docker exec -it integral-redis redis-cli -a '你的Redis密码' FLUSHDB
|
|||
|
|
```
|