我用 多卡诺 在运行 Ubuntu 22.04 的 AWS EC2 实例上。
为了运行 Doccano,我使用doccano webserver --port 8000
.
但现在我想让 Doccano 在端口 80 上提供其网页服务。所以,我必须以 root 身份运行 Doccano。
在不知道 EC2 上的 root 密码的情况下,如何以 root 用户身份运行 doccano?
我试过
(doccanopy310) ubuntu@ip-172-30-33-321:~$ sudo doccano webserver --port 80
sudo: doccano: command not found
和
(doccanopy310) ubuntu@ip-172-30-33-321:~$ su
Password:
我不知道此 EC2 实例中的 root 密码。我没有任何 AWS 管理员权限:我只是获得了 IP + .pem 文件以通过 SSH 连接到它。
重现此问题的另一种方法是http.server
在 Python 3(或SimpleHTTPServer
Python 2)中使用:
python -m http.server 80
将产生:
(doccanopy310) ubuntu@ip-172-30-33-321:~$ sudo python -m http.server 80
sudo: python: command not found
答案1
红迪网用户a2吉普 指给我正确答案:需要指出doccano
或 的完整路径http.server
。可以使用该命令which
来查找完整路径。
示例doccano
:
(doccanopy310) ubuntu@ip-172-30-33-321:~$ which doccano
/home/ubuntu/anaconda3/envs/doccanopy310/bin/doccano
(doccanopy310) ubuntu@ip-172-30-33-321:~$ sudo /home/ubuntu/anaconda3/envs/doccanopy310/bin/doccano webserver --port 80
[2023-08-12 07:07:32 +0000] [47600] [INFO] [django_drf_filepond.apps::ready::61] App init: no django-storages backend configured, using default (local) storage backend if set, otherwise you need to manage file storage independently of this app.
[2023-08-12 07:07:32 +0000] [47600] [WARNING] [django_drf_filepond.apps::ready::69] Filepond app init: Creating file store directory </root/doccano/media>...
Starting server with port 80.
[2023-08-12 07:07:32 +0000] [47600] [INFO] Starting gunicorn 20.1.0
[2023-08-12 07:07:32 +0000] [47600] [INFO] Listening at: http://0.0.0.0:80 (47600)
[2023-08-12 07:07:32 +0000] [47600] [INFO] Using worker: sync
[2023-08-12 07:07:32 +0000] [47601] [INFO] Booting worker with pid: 47601
[2023-08-12 07:07:32 +0000] [47602] [INFO] Booting worker with pid: 47602
[2023-08-12 07:07:33 +0000] [47603] [INFO] Booting worker with pid: 47603
[2023-08-12 07:07:33 +0000] [47604] [INFO] Booting worker with pid: 47604
[2023-08-12 07:07:33 +0000] [47605] [INFO] Booting worker with pid: 47605
请注意,如果运行sudo /home/ubuntu/anaconda3/envs/doccanopy310/bin/doccano webserver --port 80
,则需要运行以下命令:
sudo /home/ubuntu/anaconda3/envs/doccanopy310/bin/doccano init
sudo /home/ubuntu/anaconda3/envs/doccanopy310/bin/doccano createuser --username admin --password pass
sudo /home/ubuntu/anaconda3/envs/doccanopy310/bin/doccano webserver --port 80
在另一个终端中:
sudo /home/ubuntu/anaconda3/envs/doccanopy310/bin/doccano task
否则无法与admin
用户建立联系。
示例http.server
:
(doccanopy310) ubuntu@ip-172-30-33-321:~$ which python
/home/ubuntu/anaconda3/envs/doccanopy310/bin/python
(doccanopy310) ubuntu@ip-172-30-33-321:~$ sudo /home/ubuntu/anaconda3/envs/doccanopy310/bin/python -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
91.12.100.231 - - [12/Aug/2023 06:52:21] "GET / HTTP/1.1" 200 -