centos6.5+Django+mysql+nginx+uwsgi环境配置教程

发布时间:2021-01-17编辑:脚本学堂
本文介绍了centos6.5下配置Django+mysql+nginx+uwsgi环境的方法,需要的朋友参考下。

1、nginx安装。
这里采用nginx-1.6.0,建立一个shell/ target=_blank class=infotextkey>shell脚本然后执行。
 

复制代码 代码示例:
#!/bin/bash 
nginx_version="nginx-1.6.0" 
yum -y install gcc gcc-c++ pcre pcre-devel openssl openssl-devel 
cd soft 
tar zxvf $nginx_version".tar.gz"  
cd $nginx_version 
./configure   --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_stub_status_module --with-http_ssl_module 
make 
make install 
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak 
/usr/local/nginx/sbin/nginx  -c /usr/local/nginx/conf/nginx.conf 
echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local 
cd .. 
rm -rf $nginx_version 

iptables的设置:
 

复制代码 代码示例:
iptables -F 
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
iptables -A INPUT -i lo -j ACCEPT 
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
iptables -P INPUT DROP 
service iptables save 

2.mysql的安装,在这里mysql使用的是5.6.14,新建一个shell脚本
 

复制代码 代码示例:
#!/bin/bash 
mysql_version="mysql-5.6.14" 
yum -y install vim  libevent*  libtool* autoconf* libstd* ncurse* bison* openssl* 
cd soft 
tar zxvf cmake-2.8.12.1.tar.gz 
cd cmake-2.8.12.1 
./configure && make && make install 
cd .. 
rm -rf cmake-2.8.12.1 
tar zxvf $mysql_version".tar.gz" 
cd $mysql_version 
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_myisam_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci 
make && make install 
groupadd mysql 
useradd -g mysql mysql 
chown -R mysql:mysql /usr/local/mysql 
cd /usr/local/mysql 
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --ldata=/var/lib/mysql 
cp support-files/mysql.server /etc/init.d/mysql 
chkconfig mysql on 
chmod 755 /etc/init.d/mysql 
service mysql start 
echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile 
echo "export PATH" >> /etc/profile 
source /etc/profile 
mysqladmin -u root password 123456 
cd - 
cd .. 
rm -rf $mysql_version 

3.开始安装django,这里使用的是django最新稳定版1.6.5
安装必要的软件包
 

复制代码 代码示例:
yum groupinstall "Development tools" 
yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel python-devel libxml2  libxml2-devel  python-setuptools  zlib-devel wget openssl-devel pcre pcre-devel sudo gcc make autoconf automake 

安装pip软件
 

复制代码 代码示例:
wget http://pypi.python.org/packages/source/p/pip/pip-1.0.2.tar.gz --no-check-certificate   
tar xvfz pip-1.0.2.tar.gz    
cd pip-1.0.2   
python setup.py  install   

pip --version  查看pip是否安装 
安装uwsgi
 

复制代码 代码示例:
pip install uwsgi 
uwsgi --version 

新建web.py文件,内容如下:
 

复制代码 代码示例:
def application(env, start_response): 
    start_response('200 OK', [('Content-Type','text/html')]) 
    return "Hello World" 

然后在终端运行:
uwsgi --http :8001 --wsgi-file test.py 
在浏览器内输入:http://127.0.0.1:8001,看是否有“Hello World”输出。
安装django
pip install django 

django-admin.py startproject demosite 
cd demosite 

python manage.py runserver 0.0.0.0:8002 
在浏览器内输入:http://127.0.0.1:8002,检查django是否运行正常。

配置uwsgi
在/ect/目录下新建uwsgi9090.ini,添加如下配置:
 

复制代码 代码示例:
[uwsgi] 
socket = 127.0.0.1:9090 
master = true         //主进程 
vhost = true          //多站模式 
workers = 2           //子进程数 
reload-mercy = 10      
vacuum = true         //退出、重启时清理文件 
max-requests = 1000    
limit-as = 512 
buffer-sizi = 30000 
pidfile = /var/run/uwsgi9090.pid    //pid文件,用于下面的脚本启动、停止该进程 
daemonize = /website/uwsgi9090.log 

设置uwsgi开机启动,在/ect/init.d/目录下新建uwsgi9090文件,内容如下:
 

复制代码 代码示例:
#! /bin/sh 
# chkconfig: 2345 55 25 
# Description: Startup script for uwsgi webserver on Debian. Place in /etc/init.d and 
# run 'update-rc.d -f uwsgi defaults', or use the appropriate command on your 
# distro. For centos/redhat run: 'chkconfig --add uwsgi' 
  
### BEGIN INIT INFO 
# Provides:          uwsgi 
# required-Start:    $all 
# Required-Stop:     $all 
# Default-Start:     2 3 4 5 
# Default-Stop:      0 1 6 
# Short-Description: starts the uwsgi web server 
# Description:       starts uwsgi using start-stop-daemon 
### END INIT INFO 
  
# Author:   licess 
# website:  http://lnmp.org 
  
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
DESC="uwsgi daemon" 
NAME=uwsgi9090 
DAEMON=/usr/bin/uwsgi 
CONFIGFILE=/etc/$NAME.ini 
PIDFILE=/var/run/$NAME.pid 
SCRIPTNAME=/etc/init.d/$NAME 
  
set -e 
[ -x "$DAEMON" ] || exit 0 
  
do_start() { 
    $DAEMON $CONFIGFILE || echo -n "uwsgi already running" 

  
do_stop() { 
    $DAEMON --stop $PIDFILE || echo -n "uwsgi not running" 
    rm -f $PIDFILE 
    echo "$DAEMON STOPED." 

  
do_reload() { 
    $DAEMON --reload $PIDFILE || echo -n "uwsgi can't reload" 

  
do_status() { 
    ps aux|grep $DAEMON 

  
case "$1" in 
 status) 
    echo -en "Status $NAME: n" 
    do_status 
 ;; 
 start) 
    echo -en "Starting $NAME: n" 
    do_start 
 ;; 
 stop) 
    echo -en "Stopping $NAME: n" 
    do_stop 
 ;; 
 reload|graceful) 
    echo -en "Reloading $NAME: n" 
    do_reload 
 ;; 
 *) 
    echo "Usage: $SCRIPTNAME {start|stop|reload}" >&2 
    exit 3 
 ;; 
esac 
  
exit 0 
 

设置uwsgi开机启动
 

chkconfig --add uwsgi9090  
chkconfig uwsgi9090 on 

修改nginx的conf文件
 

复制代码 代码示例:
server { 
        listen       80; 
        server_name  localhost; 
         
        location / {             
            include  uwsgi_params; 
            uwsgi_pass  127.0.0.1:9090;              //必须和uwsgi中的设置一致 
            uwsgi_param UWSGI_SCRIPT demosite.wsgi;  //入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录 
            uwsgi_param UWSGI_CHDIR /demosite;       //项目根目录 
            index  index.html index.htm; 
            client_max_body_size 35m; 
        } 
    } 

service uwsgi9090 start 
在浏览器输入:http://127.0.0.1,恭喜你可以看到django的“It work”了~

安装mysql-python
 

复制代码 代码示例:
pip install mysql-python 

测试django与mysql的连接性

在项目中运行python manage.py shell 
 
然后:
 

复制代码 代码示例:
from django.db import connection 
cursor=connection.cursor()

至此,整个安装过程完成。