CentOS Django生产环境配置

1. 安装python3.7

# 新建用户
	sudo adduser hujiaming
	sudo passwd hujiaming
# 安装git
	sudo yum install git
# 安装相关依赖
	yum -y groupinstall "Development tools"
	yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
	yum install libffi-devel -y
# yum 安装 nginx
	rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
	yum -y install nginx
# 进入用户环境
	cd /home/hujiaming
# 获取Python压缩包
	wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
	tar -xvJf  Python-3.7.1.tar.xz
# 编译安装
	mkdir /usr/local/python3 #创建编译安装目录
	cd Python-3.7.0
	./configure --prefix=/usr/local/python3
	make && make install
# 创建软链接
	ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
	ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
# 安装成功
	python3 -V
	pip3 -V
# 安装虚拟环境
	sudo yum install python-virtualenv -y
	mkdir /home/hujiaming/env && cd /home/hujiaming/env
	virtualenv haoji --python=python3

2. 安装MySQL

# 获得安装包并解压
	wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 
	rpm -ivh mysql-community-release-el7-5.noarch.rpm
# 安装MySQL
	sudo yum install mysql-server  # 其中出现两次确认,默认y
# 启动MySQL
	service mysqld restart
	mysql -u root  # 第一次没有密码,直接回车进入
# 配置root密码
	use mysql;
	update user set password=password('new password') where user='root';
	flush privileges;
# 创建用户以及用户表
	create database haoji default charset utf8 collate utf8_general_ci;
	create user haoji@localhost identified by '123456';
	grant all on haoji.* to haoji@localhost;
	flush privileges;

3. 安装redis

# 下载安装包
	cd /home/hujiaming
	wget http://download.redis.io/releases/redis-4.0.2.tar.gz
# 解压 安装
	tar xzf redis-4.0.2.tar.gz
	cd redis-4.0.2
	make && make install
# 配置初始化脚本启动redis
  # 将解压后的初始化脚本复制到/etc/init.d中,文件名为redis_端口号
	  cp /home/hujiaming/redis-4.0.2/utils/redis_init_script /etc/init.d/redis_6379
  # 建立以下两个文件夹
	  mkdir /etc/redis  # 存放redis的配置文件
	  mkdir -p /var/redis/6379  # 存放redis的持久化文件
  # 修改配置文件
	  cp /home/hujiaming/redis-4.0.2/redis.conf /etc/redis/6379.conf
	  cd /etc/redis/
	  vim 6379.conf
		  daemonize yes  # 使redis以守护进程的模式进行
		  pidfile /var/run/redis_6379.pid  # 设置redis的pid文件位置
		  port 6379  # 设置redis的监听端口
		  dir /var/redis/6379  # 设置持久化文件存放位置
	  vim /etc/init.d/redis_6379
		# 在开头第四行插入以下两句
		  # chkconfig: 2345 90 10 
		  # description: Redis is a persistent key-value database
# 设置开机执行redis脚本
	chkconfig redis_6379 on
# redis的启动和关闭
	service redis_6379 start
	service redis_6379 stop
# 停止redis
	redis-cli SHUTDOWN

4. 配置nginx和uwsgi

# 进入虚拟环境
	pip3 install -r requirements.txt  # 安装Django
	pip3 install uwsgi
# 给uwsgi建立软链接
	ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
# 在项目根目录下创建一个新文件haoji.xml
	<uwsgi> 
    <socket>127.0.0.1:8004</socket><!-- 内部端口,自定义 --> 
      <chdir>/home/hujiaming/haoji</chdir><!-- 项目路径 --> 
      <module>haoji.wsgi</module> 
      <processes>4</processes> <!-- 进程数 --> 
      <daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
    </uwsgi>
# 下载安装nginx
	yum install nginx nginx-server
	# wget http://nginx.org/download/nginx-1.14.1.tar.gz 建议自己编译安装
# 配置nginx
	vi /etc/nginx/nginx.conf
# 编辑此文件
	在http里面
	pstream django {
	    # server unix:///path/to/your/mysite/mysite.sock; # for a file socket
	    server 127.0.0.1:8004; # for a web port socket (we'll use this first)  # 此处的端口号一定要与前面规定的socket    = :8004的端口号一致
	}
	server {
	    listen      80;
	    server_name yourip;
	    charset     utf-8;
	
	    # max upload size
	    client_max_body_size 75M;   # adjust to taste
	
	    # Django media
	    location /media  {
	        alias /var/www/mysite/media;  # your Django project's media files - amend as required
	    }
	
	    location /static {
	        alias /var/www/mysite/static; # your Django project's static files - amend as required
	    }
	
	    # Finally, send all non-media requests to the Django server.
	    location / {
	        uwsgi_pass  django;
	        include     /var/www/mysite/uwsgi_params; # the uwsgi_params file you installed
	    }
	}
	# 退出编辑此文件
		vi /etc/rc.local
	# 编辑此文件,加入一句
		/usr/local/bin/uwsgi --ini /var/www/mysite/uwsgi.ini  # 开机就执行这条命令
# 启动nginx
	/usr/local/nginx/sbin/nginx -t
	/usr/local/nginx/sbin/nginx  # 如果没有提醒说明正常启动
# 项目uwsgi设置
	cd /home/hujiaming/haoji
	uwsgi -x haoji.xml  # 这个参数一定不要忘掉!
# 重启nginx
	/usr/local/nginx/sbin/nginx -s reload
# 完成
	在浏览器中输入ip:8080即可访问项目

5. 配置项目

# 设置settings文件
vim settings.py
	ALLOWED_HOST = ['*']
	STATIC_URL = '/static/'
	STATIC_ROOT = os.path.join(BASE_DIR, 'static')
	STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'),) 
# 设置路由文件
vim haoji/urls.py
	urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
# 在虚拟环境外和虚拟环境里面都添加阿里云sms项目
# 在虚拟环境中可能会不成功,可以使用下面的方法安装
	pip3 install aliyun-python-sdk-core-v3
	pip3 install aliyun-python-sdk-dysmsapi
# 安装pymysql
	pip3 install pymysql

5. 配置后台管理xadmin

# 使用pip安装
	pip install git+https://github.com/sshwsfc/xadmin.git@django2
# settings.py文件中的INSTALLED_APP中新增:
	'xadmin',
    'crispy_forms',
    'reversion',
# urls.py配置
	import xadmin
	xadmin.autodiscover()
	from xadmin.plugins import xversion
	xversion.register_models()
	urlpatterns += path(r'admin', xadmin.site.urls)# 同时注释掉已有的admin
# 同步数据库
	python manager.py makemigrations
	python manager.py migrate
# xadmin全局配置
	import xadmin
	from xadmin import views
	
	class BaseSetting(object):
	    # 主题修改
	    enable_themes = True
	    use_bootswatch = True

	class GlobalSettings(object):
	    # 整体配置
	    site_title = 'haoji后台系统'
	    site_footer = '好记haoji'
	    # menu_style = 'accordion'  # 菜单收起
	xadmin.site.register(views.BaseAdminView, BaseSetting)  # 全局注册
	xadmin.site.register(views.CommAdminView, GlobalSettings)  # 全局注册

6. Nginx日志可视化工具goaccess使用

# 安装所需依赖
	yum install glib2 glib2-devel GeoIP-devel  ncurses-devel zlib zlib-develyum install gcc -y
	yum -y install GeoIP-update
# 安装
	yum install goaccess -y
# 配置nginx.conf
    # 放到uwsgi_pass的最前面
	location ~  /log.html{
        alias /usr/local/nginx/html/log.html;
    }
    access_log /var/log/haoji/8080_access.log main;
# 使用命令建立websocket连接
	goaccess /var/log/haoji/8080_access.log -o /usr/local/nginx/html/log.html --real-time-html --time-format='%H:%M:%S' --date-format='%d/%b/%Y' --log-format=COMBINED

你可能感兴趣的:(操作教程,centos,django,xadmin)