CentOS7下部署Django项目(完整版)

部署过程中所用到的所有安装包:

下载地址:https://pan.baidu.com/s/1RJ1ONxMkzHI7Int2ezb8yw  提取码:yl9r

 

python3.6+mysql5.6+redis3.2+uwsgi+nginx+celery

 

一、安装python3.6

①安装依赖

yum -y groupinstall "Development tools"

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ unixODBC unixODBC-devel -y

②下载安装包:https://www.python.org/downloads/release/python-368/

③上传到Linux上并解压

tar -zxvf Python-3.6.8.tgz

cd Python-3.6.8

④编译

./configure --prefix=/usr/local/python3

⑤安装

make && make install

⑦建立软链接

ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3

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

⑧查看python3与pip3版本

python3

pip3 -V

以上python3.6安装成功。

 

二、安装mysql5.6

1、下载

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

2、解压

tar -zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

3、移动安装目录

mv mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql

4、添加用户和组

groupadd mysql

useradd -g mysql mysql

5、安装mysql

①进入mysql目录:cd /usr/local/mysql

②把目录权限分配给mysql组下的mysql用户:chown -R mysql:mysql ./

③安装mysql:./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

安装mysql语句报错执行,出现/usr/bin/perl: bad interpreter: No such file or directory

执行:yum install -y perl perl-devel

如果还出现please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper

执行:yum install -y perl-Module-Install

6、编辑配置文件

①进入目录:cd /usr/local/mysql/support-files

②复制配置文件:cp my-default.cnf /etc/my.cnf

③添加系统服务、开机自启动:

先复制文件:cp mysql.server /etc/init.d/mysql

开机启动:chkconfig mysql on

④配置my.cnf:编辑文件:vi /etc/my.cnf,添加以下内容

复制代码
[mysql]
default-character-set=utf8

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock
symbolic-links=0
character-set-server=utf8
default-storage-engine=INNODB

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
复制代码

7、添加环境变量

①编辑文件:vi /etc/profile

②添加以下两行环境变量:

export PATH=/usr/local/mysql/bin:$PATH

③设置环境变量生效:source /etc/profile

④软连接:ln -fs /usr/local/mysql/bin/mysql /usr/bin

8、启动mysql

service mysql start

9、修改密码

①mysql刚安装完毕没有密码进入mysql命令行:mysql -uroot -p

②查询mysql用户:select User, Host, Password FROM mysql.user;

③修改root密码:update mysql.user set password=password('password') where User="root";

④刷新权限:flush privileges;

10、添加远程访问权限

①登录mysql:mysql -uroot -ppassword

②使用mysql:use mysql;

③为root添加远程权限,%号表示允许任何ip访问数据库:grant all privileges on *.* to root@"%" identified by "password";

④刷新权限:flush privileges;

⑤重启mysql:service mysql restart

11、关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

或者:

systemctl stop firewalld

systemctl disable firewalld

以上mysql5.6安装完成。

12、建数据库,导入数据库文件

①先登录mysql -uroot -ppassword

②创建数据库:create database tesudrm_zjenergy charset=utf8;

③退出数据库,执行导入数据库文件操作:mysql -uroot -ppassword tesudrm_zjenergy < tesudrm_zjenergy.sql

等待执行成功。(注意:tesudrm_zjenergy.sql文件要事前准备好)

13、导出数据库

mysqldump -uroot -ppassword tesudrm_zjenergy > tesudrm_zjenergy.sql

 

三、安装redis3.2.1

1、首先安装依赖环境gcc

yum -y install gcc automake autoconf libtool make

注:运行yum时出现/var/run/yum.pid已被锁定,PID为xxxx的另一个程序运行的问题解决

rm –f /var/run/yum.pid

2、安装tcl8.6.1-src.tar.gz

①下载:wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz

②解压:tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/

③进入安装目录:cd /usr/local/tcl8.6.1/unix/

④安装:

./configure

make && make install

3 下载redis-3.2.1.tar.gz

下载地址:http://download.redis.io/releases/  选择redis-3.2.1.tar.gz

或者:wget http://download.redis.io/releases/redis-4.0.1.tar.gz

4 解压

tar zxvf redis-3.2.1.tar.gz

5 切换目录

cd redis-3.2.1

6 执行

make MALLOC=libc

7 安装到指定目录

make PREFIX=/usr/local/redis install

8 安装好redis后,对make做测试

执行:make test

9 查看cd /usr/local/redis/bin

 

10、配置redis

redis端口号或启动有默认配置。但一般我们都会通过手动配置完成

①回到根目录找到解压文件中的reids.conf

 

将配置文件复制到安装文件的目录下:cp redis.conf /usr/local/redis

②自定义配置redis

进入对应的安装目录:cd /usr/local/redis

修改配置文件redis.conf:vi redis.conf

redis.conf中配置默认必须修改以下三处:

bind 127.0.01  注释掉:

daemonize no  修改为 daemonize yes:

requirepass 设置密码(可以不设置,设置之后,登录时需要密码):

 以上redis.conf文件配置完成。

11、redis设置开机自启动

 linux开机会执行/etc/init.d目录中的文件

①复制文件

cp /opt/redis-3.2.1/utils/redis_init_script /etc/init.d/redis

②编辑文件

vi /etc/init.d/redis

只需修改四个地方:

添加:#chkconfig: 2345 90 10

修改地址:EXEC=/usr/local/redis/bin/redis-server      说明:redis文件夹所在的redis-server所在路径

修改地址:CLIEXEC=/usr/local/redis/bin/redis-cli       说明:redis文件夹所在的redis-cli所在路径

修改地址:CONF="/usr/local/redis/redis.conf"             说明:redis启动所用的配置文件所在路径

③授予权限

chmod 755 /etc/init.d/redis

④启动测试

/etc/init.d/redis start

⑤设置开机启动

chkconfig redis on

12、测试连接reids

以上redis安装完成。

13、redis启动与关闭

service redis start

service redis stop

 

四、上传项目安装项目依赖

1、上传项目到/opt/pro目录下

 2、安装依赖

①在线安装

cd /opt/pro/TSDRM

pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

 以上是有网情况下安装。如果没网,采用以下离线安装方式。

②离线安装

首先在我们的/opt目录下放入离线安装包package(安装包里有)与项目依赖文件requirements.txt(安装包里有)

(本地下载离线安装包:pip3 download -d /opt/package -r /opt/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/)

然后执行:

pip3 install --no-index --find-links=/opt/package -r /opt/requirements.txt

如:

等待安装完成。

查看依赖:pip3 list:

 以上依赖安装完成。但是cx_oracle需要自己手动安装。如下:

uwsgi记得做软连接:ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

 

3、安装python-libvirt模块(云平台)

下载libvirt-python安装包:https://pypi.org/project/libvirt-python/6.8.0/#files

上传以及解压安装包(注意版本):

安装kvm环境:yum install -y libvirt-devel

安装模块:

cd libvirt-python-6.8.0

python3 setup.py install

查看:安装成功。

 

五、cx_oracle5.3版本安装(如果不需要安装可以跳过此步骤)

①下载安装包

instantclient-sdk-linux.x64-11.2.0.4.0.zip

instantclient-basic-linux.x64-11.2.0.4.0.zip

下载地址:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

cx_Oracle-5.3.tar.gz

下载地址:https://pypi.org/project/cx-Oracle/5.3/#files

 ②解压

unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip

unzip instantclient-basic-linux.x64-11.2.0.4.0.zip

tar -xzvf cx_Oracle-5.3.tar.gz

③配置环境变量

编辑文件:vi /etc/profile

添加:(注意路径:在哪个目录下解压:这里在/opt/pro/cs目录下进行解压)

export ORACLE_HOME=/opt/pro/cs/instantclient_11_2
export LD_LIBRARY_PATH=/opt/pro/cs/instantclient_11_2:$LD_LIBRARY_PATH

设置生效:source /etc/profile

④创建快捷键

进入 /opt/pro/cs/instantclient_11_2 目录,执行以下命令:ln -s libclntsh.so.11.1 libclntsh.so

⑤安装cx_oracle

cd cx_Oracle-5.3

执行:python3 setup.py install

测试:python3 -c "import cx_Oracle"

如果没有报错,则安装成功。

 

六、安装nginx

1、安装依赖

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

2、下载nginx

wget -c https://nginx.org/download/nginx-1.10.3.tar.gz

3、创建nginx用户

useradd nginx -s /sbin/nologin -M

4、解压

tar -zxvf nginx-1.10.3.tar.gz

5、生成编译文件

cd nginx-1.10.3

./configure

6、编译

make

7、安装

make install

查看nginx安装目录:whereis nginx

9、进入nginx程序目录

cd /usr/local/nginx

10、监测语法

/usr/local/nginx/sbin/nginx -t

11、启动nginx

cd /usr/local/nginx/sbin

./nginx

监测端口:netstat -lntup|grep 80

监测进程:ps -ef | grep nginx

12、访问nginx

如果不能正常访问,查看错误日志cat /etc/local/nginx/logs/error.log报错: “/root/nginx/html/favicon.ico“ failed (13: Permission denied)

解决:

vi /usr/local/nginx/conf/nginc.conf

添加:user root;

然后重启nginx即可正常访问。

(参考:https://blog.csdn.net/u014176174/article/details/108529458)

 

13、nginx关闭与重启

cd /usr/local/nginx/sbin

./nginx -s stop 关闭

./nginx -s reload 重启

14、启用systemctl start nginx.service(Failed to start nginx.service:unit not found报错解决)

①在/root/etc/init.d/目录下新建文件,文件名为nginx:touch /etc/init.d/nginx

②编辑文件:vi /etc/init.d/nginx

③加入一下内容:

复制代码
#!/bin/sh
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server

# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/nginx.pid

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {

    [ -x $nginx ] || exit 5

    [ -f $NGINX_CONF_FILE ] || exit 6

    echo -n $"Starting $prog: "

    daemon $nginx -c $NGINX_CONF_FILE

    retval=$?

    echo

    [ $retval -eq 0 ] && touch $lockfile

    return $retval

}


stop() {

    echo -n $"Stopping $prog: "

    killproc $prog -QUIT

    retval=$?

    echo

    [ $retval -eq 0 ] && rm -f $lockfile

    return $retval

}



restart() {

    configtest || return $?

    stop

    start

}


reload() {

    configtest || return $?

    echo -n $"Reloading $prog: "

    killproc $nginx -HUP

    RETVAL=$?

    echo

}

force_reload() {

    restart

}


configtest() {

  $nginx -t -c $NGINX_CONF_FILE

}



rh_status() {

    status $prog

}


rh_status_q() {

    rh_status >/dev/null 2>&1

}

case "$1" in

    start)

        rh_status_q && exit 0
        $1
        ;;

    stop)


        rh_status_q || exit 0
        $1
        ;;

    restart|configtest)
        $1
        ;;

    reload)
        rh_status_q || exit 7
        $1
        ;;


    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;


    condrestart|try-restart)

        rh_status_q || exit 0
            ;;

    *)

        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2

esac
复制代码

④用命令进入此目录

cd /etc/init.d

⑤依此执行以下命令

chmod 755 /etc/init.d/nginx

chkconfig --add nginx   (注意add前面是两个短横线-)

⑥测试:使用systemctl start nginx.service开启nginx

报错:

 查看错误:systemctl status nginx.service

解决错误:

更改为./nginx方式启动

kill掉./nginx启动的进程,然后再换成systemctl start nginx.service方式启动即可

 

七、配置uwsgi、nginx,

1、配置uwsgi.ini

①在/opt/pro/script目录下创建uwsgi.ini文件:touch /opt/pro/script/uwsgi.ini

②添加内容:vi /opt/pro/script/uwsgi.ini

复制代码
[uwsgi]
http-socket = 192.168.1.63:8080  # 改成你自己服务器ip
# 项目目录
chdir=/opt/pro/TSDRM/
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 指定项目的application
module=TSDRM.wsgi
# 指定sock的文件路径
socket=/opt/pro/script/uwsgi.sock
# 启用主进程
master=true
# 进程个数
workers=5
pidfile=/opt/pro/script/uwsgi.pid
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=1800
# 设置缓冲
post-buffering=1024
# 设置日志目录
daemonize=/opt/pro/script/uwsgi.log
复制代码

注意项目的名称和路径,按照以上方式操作,只需要修改IP:

③启动uwsgi

cd /opt/pro/script

执行:uwsgi --ini uwsgi.ini

启动成功。

可以使用ps -ef | grep uwsgi命令查看:

uwsgi开启成功。

停止uwsgi:uwsgi --stop uwsgi.pid(必须在/opt/pro/script目录下执行,因为在uwsgi.ini中指定了uwsgi.pid路径)

2、配置nginx的配置文件

vi /usr/local/nginx/conf/nginx.conf(注意nginx配置文件路径是否正确)

复制代码
user root;
worker_processes 1; error_log /usr/local/nginx/logs/error.log warn; pid /usr/local/nginx/logs/nginx.pid; events { worker_connections 1024; } http { include /usr/local/nginx/conf/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /usr/local/nginx/logs/access.log main; sendfile on; keepalive_timeout 65; server { listen 80; server_name 192.168.1.63; access_log /usr/local/nginx/logs/access.log main; charset utf-8; gzip on; gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; # 指定项目路径uwsgi location / { include uwsgi_params; uwsgi_pass unix:/opt/pro/script/uwsgi.sock;                    uwsgi_send_timeout 1800;
uwsgi_connect_timeout
1800; uwsgi_read_timeout 1800; } # 指定静态文件路径 location /static/ { alias /opt/pro/TSDRM/static/; index index.html index.htm; } } }
复制代码

以上配置完成,按照以上方式操作,只需要修改IP:

开启nginx:systemctl start nginx.service

可以使用ps -ef | grep nginx命令查看:

nginx开启成功。

停止nginx:systemctl stop nginx.service

 

八、静态文件

settings.py文件中写入静态文件物理路径(已经写了):

SITE_ROOT=os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')

STATIC_ROOT = os.path.join(SITE_ROOT,'static')

 

①收集静态文件:在项目目录下执行:python3 manage.py collectstatic

②注销掉物理路径:# STATIC_ROOT,#SITE_ROOT

③添加静态文件访问逻辑路径:STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

④重新启动nginx与uwsgi

 

九、访问项目

成功访问。

注意:如果不能正常访问项目,则nginx配置的有问题或者是uwsgi配置的有问题:查看nginx错误日志:cat /usr/local/nginx/logs/error.log,uwsgi错误日志:cat /opt/pro/script/uwsgi.log。

 

十、安装supervisor启动celery后台进程

1、 先创建日志文件

touch /opt/pro/script/log/beat.log

touch /opt/pro/script/log/celerylog.log

touch /opt/pro/script/log/flower.log

如下:

2、安装supervisor

①在线安装supervisor

pip3 install supervisor -i https://pypi.tuna.tsinghua.edu.cn/simple/

②离线安装supervisor

本地下载以下2个安装包:

https://pypi.org/project/meld3/2.0.0/#files

https://pypi.org/project/supervisor/4.0.1/#files

下载之后上传服务器并解压,进入目录里,进行安装:python3 setup.py install(注意:这里先安装meld3,安装成功之后再安装supervisor)

3、做软连接

ln -s /usr/local/python3/bin/echo_supervisord_conf /usr/bin/echo_supervisord_conf

ln -s /usr/local/python3/bin/supervisorctl /usr/bin/supervisorctl

ln -s /usr/local/python3/bin/supervisord /usr/bin/supervisord

4、生成配置文件

cd /usr/local/python3/bin/

执行:echo_supervisord_conf > /etc/supervisord.conf

5、修改配置文件

vi /etc/supervisord.conf

加入以下开启worker、beat、flower的命令:

复制代码
[program:celery.worker]  
command=python3 manage.py celery -A TSDRM worker -l info     # 开启worker
directory=/opt/pro/TSDRM/

numprocs=1
stdout_logfile=/opt/pro/script/log/celerylog.log             # celerylog日志文件,前面我们已经创建好了
stderr_logfile=/opt/pro/script/log/celerylog.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
priority=16

[program:celery.beat]  
command=python3 manage.py celery -A TSDRM beat -l info       # 开启beat
directory=/opt/pro/TSDRM/

numprocs=1
stdout_logfile=/opt/pro/script/log/beat.log                  # beat日志文件
stderr_logfile=/opt/pro/script/log/beat.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
priority=17

[program:celery.flower]
command=python3 manage.py celery -A TSDRM flower -l info     # 开启flower
directory=/opt/pro/TSDRM/

numprocs=1
stdout_logfile=/opt/pro/script/log/flower.log                # flower日志文件
stderr_logfile=/opt/pro/script/log/flower.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
priority=18
复制代码

6、启动supervisord

supervisord -c /etc/supervisord.conf

7、查看supervisord进程信息

ps -ef | grep supervisord

发现进程已开启。那么我们查看celery进程信息

ps -ef | grep celery

发现worker、beat、flower都开起了。

然后使用192.168.1.63:5555查看flower:web页面正常访问,那么我们的celery开启成功。

 

问题:worker不能正常开启:执行开启worker的命令报错:

(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

解决:

cd /usr/local/redis/bin

./redis-cli -a tesunet

执行命令:config set stop-writes-on-bgsave-error no

(参考:https://blog.csdn.net/qq_37674858/article/details/85066374)

 

十一、安装wkhtmltopdf

1、安装环境

yum install libXrender libXext fontconfig -y

2、下载wkhtmltopdf安装包

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz

3、解压

tar vxf wkhtmltox-0.12.3_linux-generic-amd64.tar.xz 

4、复制

cp wkhtmltox/bin/wk* /usr/local/bin/

5、做软连接

ln -fs /usr/local/bin/wkhtmltopdf /usr/bin

6、测试是否安装成功(如果不能连接外网,执行此项会报错,可以直接在项目中下载报表进行测试)

wkhtmltopdf http://www.baidu.com ./test.pdf

 下载到本地,打开查看:

发现是乱码的,需要安装下面的simsun.ttc字体。

 

6、安装simsun.ttc

把windows的C:\Windows\Fonts中的simsun.ttc:

复制到 linux系统的/usr/share/fonts路径下

 

 再执行测试:wkhtmltopdf http://www.baidu.com ./test.pdf

无问题,安装成功。

 

测试项目中的下载功能:点击<巡检报告>中的下载,查看报表是否正常

打开报表,查看无问题。

 

 

 

十二、项目开启脚本

创建脚本文件:touch /opt/pro/script/manage_tsdrm

授予权限:chmod 755 /opt/pro/script/manage_tsdrm

编辑脚本写入一下内容:vi manage_tsdrm

复制代码
#! /bin/sh
# chkconfig: 345 85 15
# 上面一行注释:哪些Linux级别需要启动manage_teacher(3,4,5);启动序号(85);关闭序号(15)。
# description: manage script is the teacher daemon.
# Author: luotianshuai
# 指定项目目录
PROJECT_DIR="/opt/pro/TSDRM"
# 指定脚本目录在哪里
SCRIPTS_DIR="/opt/pro/script"
# 描述
DESC="TSDRM"
# 名称
NAME="TSDRM"
# 脚本名称
SCRIPT_FILENAME="manage_tsdrm.sh"
# 脚本目录名称
SCRIPTNAME=`pwd`/$SCRIPT_FILENAME


# PID
PID="uwsgi.pid"

# 启动函数
d_start(){
    
    # 终止现有celery
    ps auxww | grep 'celery' | awk '{print $2}' | xargs kill -9
    # 终止现有supervisord
    ps auxww | grep 'supervisord' | awk '{print $2}' | xargs kill -9

    # 每次在执行此脚本时,都会在项目目录下生成以下两个pid文件,需要删除
    rm -rf /opt/pro/TSDRM/celerybeat.pid /opt/pro/TSDRM/worker.pid /opt/pro/TSDRM/flower.pid

    # 进入到项目目录
    cd $SCRIPTS_DIR
    # 判断这个PID是否存在
    echo -e "\n\033[34m$NAME项目启动中........\033[0m"
    # 如果不存在执行
    uwsgi --ini uwsgi.ini
    killall nginx
    systemctl start nginx.service

    #cd $PROJECT_DIR
    #python3 manage.py celery multi start worker -A TSDRM -l info --logfile=/opt/pro/script/log/celerylog.log&&\
    #python3 manage.py celery multi start beat -A TSDRM -l info --logfile=/opt/pro/script/log/beat.log&&\
    #python3 manage.py celery multi start flower -A TSDRM  -l info --logfile=/opt/pro/script/log/flower.log

    # 开启supervisord后台进程:worker、beat、flower
    supervisord -c /etc/supervisord.conf

    echo -e "\n\033[32m$NAME 项目启动完成........\033[0m"
    exit 0
}

# 关闭函数
# 关闭项目
d_stop(){
    # 终止现有celery
    ps auxww | grep 'celery' | awk '{print $2}' | xargs kill -9
    # 终止现有supervisord
    ps auxww | grep 'supervisord' | awk '{print $2}' | xargs kill -9

    # 每次在执行此脚本时,都会在项目目录下生成以下两个pid文件,需要删除
    rm -rf /opt/pro/TSDRM/celerybeat.pid /opt/pro/TSDRM/worker.pid /opt/pro/TSDRM/flower.pid

    # 进入脚本目录
    cd $SCRIPTS_DIR
    # 判断这个pid文件是否存在
    if [ ! -f "uwsgi.pid" ];then
        # 这个项目已经关闭了
        echo -e "\n\033[33m$NAME 项目已经关闭了请先启动\033[0m"
    fi
    echo -e "\n\033[34m$NAME 项目关闭中........\033[0m"
    echo -e "\nStop $DESC: $NAME"
    # 如果没有关闭
    uwsgi --stop uwsgi.pid
    # 是否停掉Nginx根据实际需要来操作~~!因为Nginx有对静态文件缓存[注意]
    killall nginx
    systemctl stop nginx.service

    echo -e "\n\033[32m$NAME 项目关闭完成........\033[0m"
}

d_restart(){
d_stop
sleep 1
d_start
}

case "$1" in
start)
echo -e "\nstarting $DESC: $NAME"
d_start
;;
stop)
echo -e "\nStop $DESC: $NAME"
d_stop
;;
restart)
echo -e "\nRestart $DESC: $NAME"
d_restart
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
exit 3
;;
esac
复制代码

cd /opt/pro/script

开启项目:./manage_tsdrm start

关掉项目:./manage_tsdrm stop

重启项目:./manage_tsdrm restart

 

 十三、开启CommServ服务器的winrm服务

在CS服务器下的cmd窗口依次执行以下命令:

winrm quickconfig

winrm e winrm/config/listener

winrm set winrm/config/service/auth @{Basic="true"}

winrm set winrm/config/service @{AllowUnencrypted="true"}

winrm get winrm/config

 

开启之后,检查灾备基础框架中的红色区域数据是否正常显示,如不显示,查看<组件管理>中的组件<windows资源监控>,排查问题,解决问题。

 

posted @   困了就睡觉觉  Views(1042)  Comments(0Edit  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示