centos6.9 运行nginx+uWSGI+django+mysql服务器一整套配置


(搬瓦工服务器实测(全程为root用户))

python3安装:
编译器安装:
yum -y install gcc
依赖包安装:
yum -y install bzip2-devel sqlite-devel openssl-devel readline-devel xz-devel xz-devel tk-devel gdbm-devel
下载python包:
1、yum insatall wget
3、tar -zxvf Python-3.6.4.tgz
4、cd Python-3.6.4
编译安装:
5、./configure –prefix=/usr/local/python36 (加上 –prefix=/usr/local/python36 是指定路径,不指定默认路径 /usr/local/)
6、make & make install
安装virtualenv pip3 install virtualenv
(参考python笔记中的virtualenv建立指定python3版本的虚拟环境)

SSH模块:(用于github通过ssh下载django项目源码)
1、ssh-****** -t rsa -C "[email protected]"
2、连续回车三次
3、公钥私钥生成完毕,存放在对应目录(会有显示)
4、复制 id_rsa.pub 中的内容至github或其他需要的地方即可
5、git clone 项目

安装mysql:
0、查看有没有安装过:
        yum list installed MySQL* (有存在要卸载yum remove MySQL*)
        rpm -qa | grep mysql*
        查看有没有安装包:
        yum list mysql*

1、安装客户端
 yum -y install mysql

2、安装服务器端
yum -y install mysql-server  mysql-devel

3、数据库字符集设置:
配置文件/etc/my.cnf中加入default-character-set=utf8

4、启动 MySQL 服务:
service mysqld start或者/etc/init.d/mysqld start

5、设置开机启动:
添加开机启动:chkconfig --add mysqld;
开机启动:chkconfig mysqld on;
查看开机启动设置是否成功chkconfig --list | grep mysql* mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭停止:

6、停止 MySQL 服务: 
service mysqld stop

7、修改mysql预置密码(不改密码无法直接用密码登陆,不要忘记mysql语句最后要加“;”)
先开启mysql服务(service mysqld start)
mysql>use mysql;
mysql>update user set password=password("123456") where user="root";
mysql>flush privileges;
mysql>exit

8、忘记密码怎么办:
service mysqld stop;
mysqld_safe --user=root --skip-grant-tables;
这一步骤执行的时候不会出现新的命令行,你需要重新打开一个窗口执行下面的命令
mysql -u root;
use mysql ;
update user set password=password("123456") where user="root";
flush privileges;
如果需要外网可以访问需要再做如下设置:
授权用户可以从远程登陆
grant all PRIVILEGES on *.* to [email protected]'%'  identified by 'pwd123';
flush privileges ;

9、远程访问,开放防火墙的端口号 MySQL
一般开发测试我直接把防火墙关闭,生产的开发对应端口即可:
su root
service iptables stop #关闭防火墙
service iptables status #验证是否关闭
chkconfig iptables off #关闭防火墙的开机自动运行
chkconfig –list | grep iptables #验证防火墙的开机自动运行
vim /etc/sysconfig/selinux # 禁用selinux,将SELINUX=disabled

10、Linux MySQL 的几个重要目录
        数据库目录 /var/lib/mysql/
        配置文件 /usr/share /mysql(mysql.server命令及配置文件)
        相关命令 /usr/bin(mysqladmin mysqldump等命令)
        启动脚本 /etc/rc.d/init.d/(启动脚本文件mysql的目录)

11、删除 MySQL  数据库
        如果使用的是 yum 安装的 mysql,需要删除的话,就使用如下命令:
        yum -y remove mysql*
        然后将 /var/lib/mysql文件夹下的所有文件都删除干净,最后再重新执行上面的安装步骤。

12、创建数据库
mysql -u root -p 启动数据库
create database name;

此时 python manage.py migtate 可能会报错:
?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'
如下设置即可解决:
centos6.9 运行nginx+uWSGI+django+mysql服务器一整套配置

接下来

nginx 安装:
1、yum install epel-release
2、yum install nginx

3、在项目目录创建first.conf文件,添加内容(目录名自己改

server {
    listen      80;
    server_name www.ziqiangxuetang.com;
    charset     utf-8;
 
    client_max_body_size 75M;
 
    location /media  {
        alias /path/to/project/media;
    }
 
    location /static {
        alias /path/to/project/static;
    }
 
    location / {
        uwsgi_pass  127.0.0.1:8088;
        include     /etc/nginx/uwsgi_params;
    }
}
4、将first.conf软连接到 /etc/nginx/sites-enabled/ 路径
ln -s ~/path/to/your/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/mysite_nginx.conf

5、测试配置语法问题
service nginx configtest 或 /path/to/nginx -t

6、重启 nginx 服务器:
service nginx reload
service nginx restart



uWSIG部分:

1、yum install python-devel
2、pip install uwsgi

3、项目路径创建uwsgi.ini目录名自己改
vi uwsgi.ini
[uwsgi]
socket = 127.0.0.1:8088
chdir = /home/guitar_fs
wsgi-file = firstpro/wsgi.py
daemonize = /root/project/hello/uwsgi.log
processes = 2
threads = 4
vacuum = true

4、启动uwsgi
uwsgi --ini uwsgi.ini

5、遇到端口占用
a:按照端口查询
lsof  -i  :8002
b:按照应用查询
ps aux | grep uwsgi (按照uwsgi查询)
c:杀死端口
kill -9 端口号


以上,成功之后,就可以直接在任何联网设备输入服务器ip访问我们的网站了