安装mysql(mariadb)
yum install mariadb-server mariadb -y #下载mysql systemctl start mariadb #启动mysql mysql -u root -p #登录mysql 这里没有设置密码直接回车 mysql --user=root -p #登录不上用这个试试
安装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
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)
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 #停止全部任务
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首页