• linux 常用服务器部署


    安装mysql(mariadb)

    yum install mariadb-server mariadb -y  #下载mysql
    systemctl start mariadb  #启动mysql
    mysql -u root -p   #登录mysql   
    这里没有设置密码直接回车
    
    mysql --user=root -p #登录不上用这个试试
    View Code

    安装python3

    下载Python源码地址
    下载地址:https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
    安装python 库环境
    
    yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
    
    下载,解压安装源码包
    tar -xvzf Python-3.6.2.tgz 
     cd   Python-3.6.2
    编译3步曲
        configure是一个脚本文件,告诉gcc编译器,(/opt/python369)Python3即将安装到哪里,对开发环境检查
    ./configure --prefix=/opt/python369
        make
        生成Python3 可执行程序
    make install
        第2部第3部合成一步
    make && make install
    配置 PATH
        vim /etc/profile
        将解压出来的python3 可执行文件加入到 path
    PATH = "/opt/python369/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
        source /etc/profile
    豆瓣源下载django
        注意Python版本与Django版本
    
    pip3  install  -i  https://pypi.doubanio.com/simple/ django==1.11.25
    创建Django项目
        创建项目
    django-admin startproject dj1
        创建app01
    django-admin startapp app01
        setting 中注册app01
    ALLOWED_HOSTS = ["*"]
        启动 服务
    python3 manage.py runserver 0.0.0.0:9000
        访问
    
    linux主机ip:9000/

    virtualenv虚拟环境

    不同工程依赖的开发环境不同,建立互相隔离的环境
    #指定清华源下载pip的包
    pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
    创建独立运行环境-命名
    virtualenv  --python=python3  venv1
    进入虚拟环境
    source venv/bin/activate
    安装第三方包
    (venv)Myproject: pip3 install -i   https://pypi.doubanio.com/simple django==1.9.8
    #此时pip的包都会安装到venv环境下,venv是针对Myproject创建的
    
    创建项目。。。
    创建app。。。
    退出venv环境
    deactivate命令
    原理:
    复制一分Python到virtualenv环境
    命令source venv/bin/activate进入一个virtualenv环境时,
    virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
        echo $PATH
    /opt/venv1/bin:/opt/python369/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
    View Code

    uwsgi

    是什么
        wsgi  是网关接口 ,一种协议
    uwsgi   实现wsgi的接口协议,c语言编写支持多进程
    安装uwsgi
    pip3 install -i https://pypi.doubanio.com/simple uwsgi
    配置文件(项目目录下创建uwsgi.ini)
    
        [uwsgi]
    #使用nginx连接时使用
    #socket=0.0.0.0:8000
    
    #这里是socket参数,上线是不会这么用的,对后端不安全,使用socket是安全的,这里是调试
    http=0.0.0.0:8000
    
    #不用nginx直接当做web服务器使用
    #http=0.0.0.0:9000
    
    #项目目录绝对路径(也就是crm第一层绝对路径)
    chdir=/opt/luffy_crm
    
    # crm第二层相对路径,找到第二层下的wsgi
    # module=luffy_crm.wsgi
    
    #wsgi文件路径,在项目底下
    wsgi-file=Ace_crm/wsgi.py
    
    #填写虚拟解释器第一层目录,2*cpu数量+1
    home=/opt/luffy_crm/venv_crm
    
    # 定义uwsgi运行的进程数量
    processes=3
    #threads=2
    master=True
    vacuum=True
    #pidfile=uwsgi.pid
    #daemonize=uwsgi.log
    启动
    uwsgi --ini ./uwsgi.ini
    查看启动的日志
    uWSGI running as root, you can use --uid/--gid/--chroot options
    *** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
    *** uWSGI is running in multiple interpreter mode ***
    spawned uWSGI master process (pid: 14466)
    spawned uWSGI worker 1 (pid: 14468, cores: 1)
    spawned uWSGI worker 2 (pid: 14469, cores: 1)
    spawned uWSGI worker 3 (pid: 14470, cores: 1)
    spawned uWSGI http 1 (pid: 14471)
    View Code

    supervisor

    supervisor 是基于 python 的任务管理工具,用来自动运行各种后台任务
    1。安装supervisor
    
    yum install -y supervisor
    2.生成supervisor 配置文件
    echo_supervisord_conf > /etc/supervisord.conf
    配置例子
        supervisord.conf配置文件参数解释
    [program:xx]是被管理的进程配置参数,xx是进程的名称
    [program:xx]
    command=启动uwsgi命令
    autostart=true       ; 在supervisord启动的时候也自动启动
    startsecs=10         ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
    autorestart=true     ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
    startretries=3       ; 启动失败自动重试次数,默认是3
    user=tomcat          ; 用哪个用户启动进程,默认是root
    priority=999         ; 进程启动优先级,默认999,值小的优先启动
    redirect_stderr=true ; 把stderr重定向到stdout,默认false
    stdout_logfile_maxbytes=20MB  ; stdout 日志文件大小,默认50MB
    stdout_logfile_backups = 20   ; stdout 日志文件备份数,默认是10
    ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
    stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
    stopasgroup=false     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
    killasgroup=false     ;默认为false,向进程组发送kill信号,包括子进程
    3.找到uwsgi绝对路径
    注意:这里是在虚拟环境下
    (venv_crm) [root@localhost venv_crm]# which uwsgi
    /opt/luffy_crm/venv_crm/bin/uwsgi
        /opt/luffy_crm/Venv_CRM/bin/uwsgi
    4.uwsgi.ini绝对路径
    /opt/luffy_crm/uwsgi.ini
        /opt/luffy_crm/uwsgi.ini
    因此 启动uwsgi 命令的绝对路径是
    /opt/luffy_crm/venv_crm/bin/uwsgi --ini  /opt/luffy_crm/uwsgi.ini
    将supervisor 配置写入到 /etc/supervisord.conf
        #supervisord.conf配置文件参数解释
    [program:s666]
    command=/opt/luffy_crm/venv_crm/bin/uwsgi --ini  /opt/luffy_crm/uwsgi.ini
    autostart=true       ; 在supervisord启动的时候也自动启动
    startsecs=10         ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
    autorestart=true     ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
    stopasgroup=true     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
    killasgroup=true     ;默认为false,向进程组发送kill信号,包括子进程
        #supervisord.conf配置文件参数解释
    [program:s666]
    command=/RE/luffy_crm/Venv_crm/bin/uwsgi --ini /RE/luffy_crm/uwsgi.ini
    autostart=true       ; 在supervisord启动的时候也自动启动
    startsecs=10         ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
    autorestart=true     ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
    stopasgroup=true     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
    killasgroup=true     ;默认为false,向进程组发送kill信号,包括子进程
    5.最后启动supervisor,完成uWSGI启动django
    
    supervisord -c /etc/supervisord.conf #启动supervisor
    supervisorctl -c /etc/supervisord.conf restart my  #重启my项目
    supervisorctl -c /etc/supervisord.conf [start|stop|restart] [program-name|all]
    6.检查进程信息
    ps -ef | grep supervisor  #检查supervisor是否存在进程,是否启动
    ps -ef | grep uwsgi     #检查uwsgi是否启动
    7.进入supervisor 任务管理终端
    
    supervisorctl -c /etc/supervisord.conf
    
    (venv_crm) [root@localhost luffy_crm]# supervisorctl -c /etc/supervisord.conf 
    s666                             RUNNING   pid 15329, uptime 0:06:19
    supervisor>   ##supervisor 交互式命令
    
    statu  #查看状态
    start  s666  #start 进程名称启动进程
    stop all  #停止全部任务
    View Code

    niginx

    1.下载
    wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
    2.检查环境依赖
    yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
    
        如果忘记检查环境依赖  1 删除文件 nginx-1.12.0
                                
    4.安装3部曲
        3解压
     tar -zxvf nginx-1.12.0.tar.gz 
        4.编译安装,状态检测,安装目录
    ./configure --prefix=/opt/nginx112/
        make && make install 
    5.启动nginx
     sbin目录找到nginx启动
    
    cd sbin
    ./nginx #启动
    ./nginx -s stop #关闭
    ./nginx -s reload #重新加载
    6.添加进path
    7.输入ip可以查看nginx首页
    View Code
  • 相关阅读:
    达到XML简单的动态配置
    初步swift语言学习笔记9(OC与Swift杂)
    【COCOS2DX-对28游戏开发】 Cocos2d-x-3c 道路设计 CocosBase CocosNet CocosWidget
    无法识别的属性“targetFramework”。请注意属性名称区分大小写。
    IIS6.0服务器搭建网站无法访问解决方法
    IIS7授权错误:“无法验证对路径的访问”的解决方法
    如何在IIS6,7中部署ASP.NET网站
    IIS的安装与配置
    VS2010如何生成release文件
    发布网站
  • 原文地址:https://www.cnblogs.com/sunny666/p/13695413.html
Copyright © 2020-2023  润新知