软件测试:linux平台部署nginx+mysql+web应用

- 第一步:购买腾讯云服务器
由于笔者电脑的双系统ubuntu网卡配置没有装好,VMWare的虚拟机是kali的,因此选择了租用腾讯云的服务器。这一步的可替代性很强,只要选择一个linux平台即可。需要注意的是腾讯云服务器是CentOS的,因此在终端命令上会有一定的区别。在这里插入图片描述

- 第二步:云服务器端环境配置

  • 利用终端ssh命令链接云服务器
    由于笔者是win10系统,cmd使用ssh命令需要额外下载,因此直接选择了git bash来连接。使用命令为:
    bash ssh root@82.156.15.56
    结果如下显示:
    在这里插入图片描述

  • 创建虚拟环境
    考虑到之后可能部署额外项目,因此需要单独给该项目准备一个独立的虚拟环境。本次部署项目为MrDoc,因此新建同名项目文件夹后在该目录下新建虚拟环境。(需要注意,腾讯云的服务器提供了python2和python3,在创建环境的时候最好明确地标注)
    virtualenv --no-site-packages --python=python3 venv
    创建完成之后会在venv目录下观察到以下文件:
    在这里插入图片描述

  • 安装mysql,nginix,uwsgi
    进入虚拟环境后开始安装需要的程序。首先是mysql:

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 
    rpm -ivh mysql-community-release-el7-5.noarch.rpm
    sudo yum install mysql-server
    

    安装完数据库之后我们需要修改MySQL的默认配置文件(主要是修改密码)

    cat /var/log/mysqld.log | grep password
    mysql -uroot -p 
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '********'
    

    完成mysql的安装配置之后,用类似的命令安装配置nginx和uwsgi:

    wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
    tar -zxvf nginx-1.12.0.tar.gz
    
    pip3 install uWSGI
    

- 第三步:项目部署

  • 拉取MrDoc源代码
git clone https://gitee.com/zmister/MrDoc.git
  • 配置MrDoc环境
    在之前建立的venv环境中安装MrDoc所需要的包
pip3 install -r ./MrDoc/requirements.txt
  • 运行数据库文件
    生成数据库迁移:
python3 manage.py makemigrations

执行数据库迁移

python3 manage.py migrate
  • 配置部署文件
    创建MrDoc的同级目录deploy,新建mrdoc_uwsgi.ini以及uwsgi_params,按照配置文档要求写入。
    在nginx/nginx.conf文件中,写入MrDoc的配置。

- 第四步:线上发布
目录转到nginx/sbin,执行nginx文件即可访问。
如果修改了nginx的配置文件,则需要执行:

./nginx -s reload

即可完成nginx的热装载。
- 遇到的问题
1.manage.py运行存在问题
出错原因为MrDoc默认使用的是sqllite,因此除了配置文件以外,其源代码中使用的也是sqllite的库函数,因此需要在manage.py文件中加入

import pymysql
pymysql.install_as_MySQLdb()

从而解决问题。
2.配置文件无法正常执行
原因是原MrDoc中的配置文件与笔者部署位置不同,在nginx.conf中配置的话需要对其中的location路径进行修改。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值