centos7 minimal python2.7
centos7 minimal是精简版本,须要手动去配置一些设置。 1. 配置网络,设置固定ip ip能够自动获取,我这里设置成固定ip 2. 更新yum源 [root@localhost /]# cd [root@localhost ~]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm [root@localhost ~]# rpm -ivh epel-release-latest-7.noarch.rpm 检查是否添加到源列表: [root@localhost ~]# yum repolist 3. 安装vim [root@localhost ~]# yum install vim 4. 设置防火墙开启80,3306等须要的端口 高版本的centos系统防火墙默认是firewall,经过命令能够永久开放端口 [root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent 5. kill命令的扩展 [root@localhost ~]# yum install psmisc
1. mariadb或者mysql,这里选择mariadb [root@localhost /]# yum install mariadb mariadb-server [root@localhost /]# yum install mysql-devel 2. nginx 安装依赖包: [root@localhost /]# yum install gcc-c++ 安装nginx: [root@localhost /]# yum install nginx 3. python的一些组件 安装pip: [root@localhost /]# yum install python-pip 更新pip: [root@localhost /]# pip install --upgrade pip 安装虚拟环境: [root@localhost /]# pip install virtualenv 安装uwsgi: [root@localhost /]# yum install python-devel [root@localhost /]# pip install uwsgi 安装mysql连接工具: [root@localhost /]# pip install MySQL-python 4. 安装git [root@localhost /]# yum install git
1. 建立项目目录 [root@localhost /]# mkdir /www/ 2. 从远程仓库git [root@localhost /]# cd /www/ [root@localhost www]# git clone https://example.git 3. 配置数据库 [root@localhost www]# systemclt start mariadb [root@localhost www]# mysql_secure_installation 登陆mysql [root@localhost www] mysql -uroot -p 建立数据库 MariaDB [(none)]> create database db_name default character set utf8; 4. 建立虚拟环境并激活 [root@localhost /]# cd /www/ [root@localhost www]# virtualenv env --system-site-packages (这里虚拟环境要继承全局) [root@localhost www]# source env/bin/activate 5. 配置django环境 在虚拟环境下,安装所需的packages, 而后配置数据库等开发须要的内容。 6. 配置uwsgi 在manage.py文件同级目录下新建文件django_socket.ini为uwsgi配置文件。内容以下: [uwsgi] chdir = /www/site/ # 项目根目录路径 wsgi-file = /www/site/site/wsgi.py # wsgi文件路径 master = true vhost = true pythonpath = /www/env/lib/python2.7/site-packages # 虚拟环境路径 socket = 127.0.0.1:8077 processes = 4 threads = 2 log-maxsize = 500000 buffer-size = 32768 daemonize = /www/logs/uwsgi.log # log文件路径 7. 配置nginx 在/etc/nginx/conf.d/目录下新建nginx配置文件,site.conf(必须是.conf的后缀名),配置文件内容以下: server { listen 80; server_name 192.168.1.20; # 域名或者ip地址 root /www/site; location / { uwsgi_pass 127.0.0.1:8077; include uwsgi_params; uwsgi_param REMOTE_ADDR $HTTP_X_REAL_IP; } location = /50x.html { root html; } location /static/ { root /www/site; # 静态资源路径 } location /uploads/ { root /www/site; } } 以上配置基本完成了,接下来运行以下命令: [root@localhost site]# uwsgi --ini django_socket.ini [root@localhost site]# nginx -c /etc/nginx/nginx.conf [root@localhost site]# nginx -s reload 若是没有报错,就说明配置成功,在浏览器输入ip地址或者域名就能访问了。 8. 脚本启动服务器 方便起见,咱们能够设置脚本启动重启服务器,在/www/目录下新建shell脚本, 命名为update.sh, 内容以下: #!/bin/bash nginx_process=`ps aux|grep nginx|grep worker` if [ "$nginx_process" != "" ]; then killall -9 nginx fi uwsgi_process=`ps aux|grep uwsgi|grep django_socket` if [ "$uwsgi_process" != "" ]; then killall -9 uwsgi fi cd /www/site #/usr/bin/python manage.py collectstatic /usr/bin/uwsgi --ini django_socket.ini /usr/sbin/nginx -c /etc/nginx/nginx.conf /usr/sbin/nginx -s reload 修改文件权限: [root@localhost www]# chmod 755 update.sh 脚本启动配置完成,若是发布新版本以后记得执行该脚本才能生效。(若是报错为:nginx502那就再执行一次 - -) 9. 自动化配置 配置mysql开机启动: [root@localhost www]# systemclt enable mariadb 配置uwsgi+nginx开机启动: 因为已经设置经过脚本启动uwsgi和nginx,因此只须要将/www/update.sh这个脚本设置为开机启动就OK啦。配置以下: 打开/etc/rc.local,在最后一行添加: sh /www/update.sh 保存关闭。重启服务器以后有可能脚本没有被自动执行,缘由是/etc/rc.local是/etc/rc.d/rc.local的连接文件,所以,须要修改/etc/rc.d/rc.local的权限: [root@localhost root]# chmod 755 /etc/rc.d/rc.local
至此,整个部署就完成了。若有须要改进的地方,还请各位指出,互相学习交流。html