MrDoc安装手册
简易运行
部署指南
Docker 部署 MrDoc(推荐)
Docker 镜像部署
Docker Compose 部署
Linux 部署 MrDoc
使用 Nginx + uWSGI 部署 MrDoc
一键部署脚本(已停止维护)
宝塔面板「Python 项目管理器1.9」部署
官方 Docker 镜像部署
Windows 部署 MrDoc
使用 Waitress 部署
Windows 部署面板
更新升级说明
系统依赖库说明
开源版>专业版数据迁移步骤
原生部署转 Docker 部署
配置指南
配置文件说明
自定义数据库配置
文集生成 PDF 文件的配置
全文搜索配置
Docker 下使用 MySQL 数据库
MySQL 数据库支持 emoji 的配置
使用 Nginx 托管静态文件资源
使用 Nginx 开启 SSL / 设置 HTTPS
使用 Nginx 配置反向代理/绑定域名
Nginx 处理本地视频播放
自定义 uWSGI 配置
常见问题
提示SQLite3版本错误怎么办?
管理员忘记密码怎么办?
如何进行站点数据备份/站点迁移?
开源版数据导出与导入
专业版数据导出与导入
报错:SyntaxError: invalid sysntax
MySQLdb._exceptions.OperationalError: (1366, "Incorrect string value:)
宝塔面板「Python项目管理器」虚拟环境使用问题
如何对站点数据进行备份?
查看日志/日志存储位置
HTTPS 下登录、发布、上传等POST请求报403错误
故障排查
开源版与专业版对比
打赏赞助记录
专业版咨询/购买
Published in MrDocPro.
-
+
home
部署指南
Linux 部署 MrDoc
使用 Nginx + uWSGI 部署 MrDoc
使用 Nginx + uWSGI 部署 MrDoc
> d 如果对 Linux 操作和使用不熟悉,对英文不熟悉或不会用翻译软件对系统的提示信息进行翻译和理解,请移步 [《Docker 部署》](https://doc.mrdoc.pro/doc/3958/) 本篇文档介绍在 `Linux` 下使用 `Nginx` + `uWSGI` 部署 `MrDoc`,同时使用 `systemctl` 工具来管理服务。 下述内容所涉及的基础环境和版本为: - Debian 10 - Python 3.7.3 - 用户目录:`/home/zmister/` 下述内容中,凡是涉及到`/home/zmister/`路径的,都可以将其修改为你自己系统上的路径。 ## 安装 uWSGI 使用 pip 命令安装 uWSGI: ``` pip3 install uwsgi ``` 安装之后提示命令找不到,可以尝试使用另一种安装方法: ``` sudo apt-get install uwsgi ``` 可能还需要安装 uWSGI 的 Python 插件: ``` sudo apt-get install uwsgi-python3 ``` ## 安装 Nginx ``` sudo apt-get install nginx ``` ## 拉取源码 首先我们将 MrDoc 的源码拉取至本地,使用 Git 命令: ``` git clone https://gitee.com/zmister/MrDoc.git ``` 或 ``` git clone https://github.com/zmister2016/MrDoc.git ``` 拉取完成之后,本地目录下存在一个 `MrDoc`的文件夹,这是 MrDoc 程序的主文件夹。 现在目录结构为: ``` └── zmister ├── MrDoc ``` ## 创建和激活虚拟环境 为了不对服务器上现存的环境造成影响,我们先新建一个虚拟环境: ``` python3 -m venv mrdoc_env ``` 现在的目录结构为: ``` └── zmister ├── MrDoc └── mrdoc_env ``` 创建完名为`mrdoc_env`的虚拟环境之后,我们激活这个虚拟环境: ``` source ./mrdoc_env/bin/activate ``` 现在,我们处在了`mrdoc_env`的虚拟环境之中: ``` (mrdoc_env) zmister@debian:~$ ``` ## 安装依赖库 在虚拟环境之下,我们首先把 MrDoc 依赖的Python第三方库安装好: ``` pip3 install -r ./MrDoc/requirements.txt ``` ## 初始化数据库 > 如果你有使用其他数据库的需求,请修改`MrDoc/config/config.ini`文件中的数据库相关配置信息,在此默认使用 Django 自带的 Sqlite3 数据库。 进入到 MrDoc 主目录: ``` cd ./MrDoc ``` 生成数据库迁移: ``` python3 manage.py makemigrations ``` 执行数据库迁移: ``` python3 manage.py migrate ``` 创建管理员账号: ``` python3 manage.py createsuperuser ``` 按照提示依次输入用户名、电子邮箱、密码即可。 ## 配置部署文件 现在,我们在`/home/zmister/`目录下新建一个名为`mrdoc_deploy`的文件夹,用于存放部署的相关文件: ``` mkdir /home/zmister/mrdoc_deploy ``` 现在的目录结构为: ``` └── zmister ├── MrDoc ├── mrdoc_deploy └── mrdoc_env ``` ### uWSGI 配置文件 在`mrdoc_deploy`目录下新建一个名为`uwsgi_params`的文件: ``` nano uwsgi_params ``` 将下述内容写入`uwsgi_params`文件中: ``` uwsgi_param QUERY_STRING $query_string; uwsgi_param REQUEST_METHOD $request_method; uwsgi_param CONTENT_TYPE $content_type; uwsgi_param CONTENT_LENGTH $content_length; uwsgi_param REQUEST_URI $request_uri; uwsgi_param PATH_INFO $document_uri; uwsgi_param DOCUMENT_ROOT $document_root; uwsgi_param SERVER_PROTOCOL $server_protocol; uwsgi_param REQUEST_SCHEME $scheme; uwsgi_param HTTPS $https if_not_empty; uwsgi_param REMOTE_ADDR $remote_addr; uwsgi_param REMOTE_PORT $remote_port; uwsgi_param SERVER_PORT $server_port; uwsgi_param SERVER_NAME $server_name; ``` 在`mrdoc_deploy`目录下新建一个名为`mrdoc_uwsgi.ini`的文件: ``` nano mrdoc_uwsgi.ini ``` 将下述内容写入`mrdoc_uwsgi.ini`文件中: ``` [uwsgi] # Django-related settings socket = :8008 # the base directory (full path) chdir = /home/zmister/MrDoc virtualenv = /home/zmister/mrdoc_env # Django s wsgi file module = MrDoc.wsgi:application wsgi-file = MrDoc/wsgi.py # process-related settings # master master = true # maximum number of worker processes processes = 1 threads = 2 # ... with appropriate permissions - may be needed # chmod-socket = 664 # clear environment on exit plugins = python3 vacuum = true python-autoreload = 1 ``` ### Nginx 配置文件 继续在`mrdoc_deploy`目录下新建一个名为`mrdoc_nginx.conf`的文件: ``` nano mrdoc_nginx.conf ``` 将下述内容写入`mrdoc_nginx.conf`文件中: ``` server { listen 80; server_name 此处填入你的域名; charset UTF-8; access_log /var/log/nginx/mrdoc_access.log; error_log /var/log/nginx/mrdoc_error.log; client_max_body_size 75M; location / { include /home/zmister/mrdoc_deploy/uwsgi_params; uwsgi_pass 127.0.0.1:8008; uwsgi_read_timeout 60; } location /static { expires 30d; autoindex on; add_header Cache-Control private; alias /home/zmister/MrDoc/static; } location /media { alias /home/zmister/MrDoc/media; } } ``` ### 进程管理配置 进程管理有很多种工具,比如 Supervisor 等,在此推荐使系统自带的 systemctl。如果使用其他的进程管理工具,请参阅其使用文档。 在`mrdoc_deploy`目录下新建一个名为`mrdoc.service`的文件: ``` nano mrdoc.service ``` 将下述内容写入`mrdoc.service`文件中: ``` [Unit] Description=MrdocApp After=syslog.target [Install] WantedBy=multi-user.target [Service] WorkingDirectory=/home/zmister/MrDoc ExecStart=uwsgi --ini /home/zmister/mrdoc_deploy/mrdoc_uwsgi.ini User=zmister Restart=always StandardError=syslog ``` ## 添加进程管理 ``` sudo systemctl enable /home/zmister/mrdoc_deploy/mrdoc.service ``` ## 创建 Nginx 站点软链接 创建一个`mrdoc_nginx.conf`文件的软链接,将其链接到 Nginx 的 `sites-enabled` 目录下: ``` sudo ln -s /home/zmister/mrdoc_deploy/mrdoc_nginx.conf /etc/nginx/sites-enabled/mrdoc_nginx.conf ``` ## 启动 MrDoc 服务 最后使用`systemctl`命令启动 MrDoc: ``` sudo systemctl start mrdoc.service ``` 即实现了使用 Nginx + uWSGI 部署 MrDoc。
州的先生
July 6, 2022, 6:10 p.m.
Forward the document
Save to Collection
Last
Next
Scan the QR code with your phone
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
Word document
PDF document
PDF document (print)
share
link
type
password
Update password
Validity period