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
原文地址:https://www.cnblogs.com/sunny666/p/13695413.html