首页 > 其他分享 >HttprunnerManager部署笔记

HttprunnerManager部署笔记

时间:2024-02-16 17:23:06浏览次数:26  
标签:部署 HttprunnerManager 笔记 devel nginx mysqld usr install --

组策略开放协议端口

TCP 8000 httprunner

TCP 80 nginx

TCP 15672 rabbitMQ2

TCP 5672 rabbitMQ

TCP 3306 mysql

TCP 22 SSH

镜像源

-i https://mirrors.aliyun.com/pypi/simple
-i https://pypi.tuna.tsinghua.edu.cn/simple
-i http://pypi.douban.com/simple/

修改镜像源(先安装python3.6.3并配置完软链再来改,不改镜像下载依赖会很慢)

pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple

依赖安装

Python3.6.3

前置编译环境(没有编译环境python在gcc编译时会报错)

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

Python3.6.3 华为云镜像

wget https://mirrors.huaweicloud.com/python/3.6.3/Python-3.6.3.tgz

下载到 /home 路径

解压命令

tar -xvzf Python.3.6.3.tgz

修改编译文件 /Modules/Setup,防止发生 _ssl 无法 import 问题

大概在205行,打开注释

# Socket module helper for socket(2)
_socket socketmodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and possibly edit the SSL variable:
SSL=/usr/local/ssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

进入Python3.6.3目录,执行命令安装

./configure --prefix=/usr/local/python3
make -j2
make install -j2

构建python3 软链

ln -sf /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -sf /usr/local/python3/bin/pip3 /usr/bin/pip3

升级一下pip3 至21.2.3版本

python3 -m pip install --upgrade pip==21.2.3

MySQL5.7部署

主目录

/usr/local/mysql57

进入主目录用wget 下载.rpm包

wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安装rpm源

yum localinstall mysql57-community-release-el7-8.noarch.rpm
yum install mysql-devel

安装mysql 服务(需要禁用gpg检测)

yum -y install mysql-community-server --nogpgcheck

启用mysql 服务

systemctl start mysqld

查看mysql 服务状态

systemctl status mysqld

如果为如下情况则启动成功

mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2024-02-15 22:26:37 CST; 2min 48s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 18168 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 18118 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 18172 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─18172 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/my...

设置开机启动

systemctl enable mysqld

修改mysql密码安全策略

vim /etc/my.cnf

在[mysqld] 中添加配置

server-id = 1
plugin-load = validate_password.so
validate_password_policy = LOW
validate_password_special_char_count = 1
validate_password_number_count = 1
validate_password_mixed_case_count = 1
validate_password_length = 4
validate-password = FORCE_PLUS_PERMANENT

character_set_server=utf8
init_connect='SET NAMES utf8'

记得重新启动下Mysql服务让配置生效

systemctl restart mysqld

修改root密码

grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p
set password for 'root'@'localhost'=password('Dxw200113937162'); 

可以退出重新登陆下看生效没

允许远程登陆

服务器登陆mysql并执行以下命令

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Dxw200113937162' WITH GRANT OPTION;
FLUSH PRIVILEGES;

可以用dbeaver远程连接测试一下看看行不行

httprunnermanager项目部署

主文件目录

/home/HttpRunnerManager-master

安装轮子(实测50版本的setuptools安装比较快,且不报错)

pip3 install wheel
pip3 install --upgrade setuptools==50.3.2

安装前置依赖

yum install gcc gcc-c++ python3-devel mariadb-devel libffi-devel openssl-devel

查看mariadb 有没有成功安装

yum list installed | grep mariadb

没有返回结果则没有正确安装,需要重新安装下(mysql_config not found 如果在安装httprunnermanager依赖时候报这个错)

yum install mariadb-devel --nogpgcheck

用 secureCRT 传输工具把github项目代码zip文件上传(rz 命令)

https://github.com/HttpRunner/HttpRunnerManager

进入项目解压目录,执行命令安装依赖

pip3 install -r requirement.txt

链接mysql数据库并执行构建数据库命令

CREATE DATABASE `HttpRunner` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

修改HttprunnerManager主文件目录下HttpRunnerManager里的settings.py文件的sql部分

# DEBUG = True
DEBUG = False

if DEBUG:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'HttpRunner',  # 新建数据库名
            'USER': 'root',  # 数据库登录名
            'PASSWORD': 'Dxw200113937162',  # 数据库登录密码
            'HOST': '120.46.78.246',  # 数据库所在服务器ip地址
            'PORT': '3306',  # 监听端口 默认3306即可
        }
    }
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),  # 静态文件额外目录
    )
else:
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'HttpRunner',  # 新建数据库名
            'USER': 'root',  # 数据库登录名
            'PASSWORD': 'Dxw200113937162',  # 数据库登录密码
            'HOST': '120.46.78.246',  # 数据库所在服务器ip地址
            'PORT': '3306',  # 监听端口 默认3306即可
        }
    }

修改完后回退到项目主目录,执行数据库迁移同步程序

python3 manage.py makemigrations
python3 manage.py migrate

安装uwsgi

先安装编译器

yum install -y gcc* pcre-devel openssl-devel

安装依赖

yum install python36-devel

升级GCC 版本

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash

永久升级(谨慎操作)

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

升级后安装uwsgi应该就不报错了,重新安装时遇到了GCC版本过低的问题

执行安装uwsgi

pip3 install uwsgi

安装完成后,去httprunner 主目录,写入uwsgi.ini的配置

[uwsgi]
#http= 0.0.0.0:8000
 
# Django-related settings
 
project = HttpRunnerManager-master
project1= HttpRunnerManager
base = /home
 
 
chdir = %(base)/%(project)
module = %(project1).wsgi:application
env = DJANGO_SETTINGS_MODULE = %(base)/%(project)/%(project1).settings
 
master = true
processes = 5
#daemonize = wsgi.log
 
socket = %(base)/%(project)/%(project1).sock
chmod-socket = 666
vacuum = true

写入后保存

安装Nginx

检查是否安装gcc

gcc -v

检查是否安装zlib

cat /usr/lib64/pkgconfig/zlib.pc

检查是否安装 pcre

pcre-config --version

安装插件依赖

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

在 /var/log 目录下建立目录 nginx 不然日志文件找不到目录要报错

构建nginx 的主目录 /usr/local/nginx 并进入

wget 下载nginx包

wget https://nginx.org/download/nginx-1.21.6.tar.gz

解压进入

tar xvf nginx-1.21.6.tar.gz
cd nginx-1.21.6

打开conf目录,备份nginx.conf

修改nginx.conf 的server部分添加配置

server {
    listen       80 default_server;     #默认监听端口
    listen       [::]:80 default_server;
    server_name  120.46.78.246;      #公网ip地址
 
    #root         /usr/share/nginx/html;
    root          /home/HttpRunnerManager-master;   #项目目录
 
    # Load configuration files for the default server block.
    include /etc/nginx/conf.d/*.conf;
 
        access_log /var/log/nginx/httprunnermanager_access.log; #增加正常日志
        error_log /var/log/nginx/httprunnermanager_error.log;  #增加异常日志
 
#增加静态文件目录
    location /static/ {
        root /home/HttpRunnerManager-master;
        }
     
    location /media/ {
        root /home/HttpRunnerManager-master;
    }
#连接到uwsgi
    location / {
        include         uwsgi_params;
        uwsgi_pass      unix:/home/HttpRunnerManager-master/HttpRunnerManager.sock;
    }
 
        error_page 404 /404.html;
    location = /40x.html {
    }
 
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

回退至nginx解压的目录,执行配置

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

编译 安装

make
make install

检查安装配置

/usr/local/nginx/sbin/nginx -V

正常输出

nginx version: nginx/1.21.6
built by gcc 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

检测配置文件语法

/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
# 以下命令进入到/usr/local/nginx/sbin/目录下再操作
./nginx -s reopen # 重启nginx
./nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx
./nginx -s stop #强制停止Nginx服务
./nginx -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务)
./nginx -c [配置文件路径] #为 Nginx 指定配置文件

启动uwsgi 服务

切换到项目主目录 跟 uwsgi.ini 同目录下 后台启动读取配置

uwsgi -d --ini uwsgi.ini

启动nginx服务

切换到nginx 的sbin下启动服务

cd /usr/local/nginx/sbin
./nginx

启动httprunnermanager服务

tornado.web 版本过高解决

pip3 uninstall tornado
pip3 install tornado==5.1.1

启动服务

python3 manage.py runserver 0.0.0.0:8000 &

nohup python3 manage.py runserver 0.0.0.0:8000 >hrun.log 2>&1 & HttpRunnerManager #后台启动命令

重启,先杀死进程,再重新启动服务

netstat -anp |grep 8000
kill -s 9 XXXX 进程号

出现了非debug模式下,前端静态资源未找到的问题,需要排查是否是uwsgi网关配置问题还是Nginx.conf配置不对,不能理解这个问题原因,已尝试大量方法解决,无效

20240216 05:25 里程碑节点 攻克以上问题

问题出在Httprunnermanager 的 django的静态资源搜寻上

修改 HttpRunnerManager/HttpRunner里的settting.py文件

注释掉里面的STATICFILES_DIRS参数

修改urls.py文件

添加以下参数

from django.views import static
from django.conf import settings
from django.conf.urls import url

urlpatterns[]里新增

url(r'^static/(?P<path>.*)$', static.serve,
      {'document_root': settings.STATIC_ROOT}, name='static'),

修改后保存即可

标签:部署,HttprunnerManager,笔记,devel,nginx,mysqld,usr,install,--
From: https://www.cnblogs.com/shadowmurloc-blog/p/18017298

相关文章

  • 【学习笔记】扫描线
    bilibili:BV1Mm411D7kr讲了一下。模板代码:面积并:#include<cstring>#include<iostream>#include<algorithm>#defineintlonglongusingnamespacestd;namespaceIO{template<typenameT>Tread(Tx){Tsum=0,opt=1......
  • springboot的web项目部署_前后端整合部署
    springboot的web项目部署[2]_前后端整合部署vite.config.ts  build:{   //build编译后存放静态文件的目录   outDir:"../renren-admin/src/main/resources/static",  ShiroConfig.javafilterMap.put("/**/*.html","anon");filterMap.put(&......
  • 读十堂极简人工智能课笔记03_遗传算法与进化
    1. 寻找正确答案1.1. 卡尔·西姆斯1.1.1. 计算机图形艺术家和研究者1.1.2. 演示过数字进化之创造性和新颖性的先驱1.1.3. 1994年1.1.3.1. 创造一批能游泳、走路、跳跃,甚至互相竞争的虚拟动物震惊了整个科学界1.1.3.2. 它们的人工大脑却是个极其复杂的网络,信息经由传......
  • Arduino学习笔记
    教程ArduinoUno单片机零基础入门学用Arduino@B站.太极创客ArduinoNano单片机2023年ArduinoNano教程@B站.唐老思Arduino核心板ArduinoNanoArduino第三方库ArduinoLibraryList......
  • [学习笔记]换根 DP 的常用处理方式
    [学习笔记]换根DP的常用处理方式换根DP,又称作二次扫描法,通常用于“对每个根求出树形DP的答案”。以每个点作为根节点进行一次树形DP的代价通常无法承受,因此我们会使用两次DFS:第一次DFS指定一个点为根节点,运行一次常规的树形DP。第二遍DFS进行换根DP,得到将根转移......
  • Python笔记09——Set(集合)
    九、集合9.1基础集合(set)是一个无序的不重复元素序列,可进行交、集、差等常见的集合操作。与序列的区别:无序,每次输出顺序随机;元素不重复;创建格式:parame={value01,value02,...}或者set(value)(创建空集合只能用set())创建集合示例set1={1,2,3,4}#直接使用......
  • gnuradio笔记[3]-播放音频并观测幅度谱
    摘要使用GNURadio观测音频文件的幅度谱并播放音频,将数据保存到wav文件.关键信息GNURadioCompanion:3.10.8.0(Python3.10.13)实现音频文件参数名称参数值音频组成信标信号+音乐文件信标波形正弦波信标频率800Hz信标幅度(Vpp)1000mV信标持续......
  • 【阅读笔记】边缘损耗率评价指标《A New Hardware-Efficient Algorithm and Reconfigu
    论文《ANewHardware-EfficientAlgorithmandReconfigurableArchitectureforImageContrastEnhancement》提到对对比度增强的图像进行客观评价,引用论文《ImageEnhancementforBacklight-ScaledTFT-LCDDisplays》中的边缘损耗率指标(Theedgelossrate)。原文:Contrast......
  • Delete a node from bst【2月15日学习笔记】
    点击查看代码//Deleteanodefrombst#include<iostream>structnode{intdata;node*left;node*right;};node*getnewnode(intx){node*temp=newnode;temp->data=x;temp->left=temp->right=NULL;returntem......
  • 容斥学习笔记
    容斥基本公式\(|\bigcup\limits_{i=1}^na_i|=\sum\limits_{T\subseteq[1,n]}-1^{|T|+1}|\bigcap\limits_{i\inT}a_i|\)min-max容斥\(\max_{i\inS}a_i=\sum\limits_{T\subseteqS}(-1)^{|T|+1}\min_{i\inT}a_i\)\(\min_{i\inS}a_i=\sum\limits_{T\su......