python + mysql + nginx + uwsgi + django
一、安装python 和配置python虚拟环境
1、准备
yum install -y curl policycoreutils-python openssh-server openssl-devel wget lrzsz readline-devel libffi-devel zlib* gcc gcc+ gcc-c+
2、python
cd /usr/local/src/
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
tar -xzvf Python-3.6.8.tgz
cd Python-3.6.8/
./configure --prefix="/usr/local/python36"
make
make install
ln -s /usr/local/python36/bin/python3 /usr/bin/python3
vim /etc/profile
export PATH=$PATH:/usr/local/python36/bin
source /etc/profile
3、虚拟环境
pip3 install virtualenv
pip3 install virtualenvwrapper
python3 -m pip install -U pip
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pbr
source /etc/profile
mkvirtualenv django_project
二、mysql 安装
1、准备
(1)检查本地是否有安装 mysql,如果有就先卸载
rpm -qa | grep mysql
rpm - e --nodeps mysql…
(2)检查 mysql 用户组和用户是否存在,如果没有则创建,-r系统账户
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
groupadd mysql
useradd -r mysql -g mysql -s /bin/false
-s /bin/false 表示禁止用 mysql 用户身份登录系统
2、下载安装
yum -y install perl perl-devel autoconf libaio
cd /usr/local/src/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
tar -xzvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C …
cd …
mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql
chown -R mysql:mysql ./mysql/
chmod -R 755 mysql/
vim /etc/my.cnf
cd mysql/bin/
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir==/usr/local/mysql/
cp …/support-files/mysql.server /etc/init.d/mysqld
vim /etc/my.cnf
3、启动 mysql 服务并设置开机自启
systemctl start mysqld
yum install -y mariadb-server
systemctl start mariadb.service
systemctl enable mariadb.service
systemctl enable mysqld
4、登录修改密码
/usr/local/mysql/bin/mysql -u root -p
alter user root@localhost identified by ‘*****’;
show databases;
use mysql;
update user set host = ‘%’ where user = ‘root’;
FLUSH PRIVILEGES;
5、配置环境变量
vim /etc/profile
# mysql env
export MYSQL_HOME=/usr/local/mysql
export PATH= MYSQL_HOME/bin
source /etc/profile扫描二维码关注公众号,回复: 9423278 查看本文章
三、nginx 安装
1、安装 pcre
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
cd /usr/local/src/
wget https://jaist.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
tar -xzvf pcre-8.42.tar.gz
cd pcre-8.42/
./configure --prefix=/usr/local/pcre
make
make check
make install
/usr/local/pcre/bin/pcre-config --version
2、安装 nginx
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.9.9.tar.gz
tar -xzvf nginx-1.9.9.tar.gz
cd nginx-1.9.9/
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.42
make && make install
/usr/local/nginx/sbin/nginx -v
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
3、说明
配置文件:/usr/local/nginx/conf/nginx.conf
默认的网页文件:/usr/local/nginx/html
检查配置文件正确性:/usr/local/nginx/sbin/nginx -t
启动:/usr/local/nginx/sbin/nginx
重载配置文件:/usr/local/nginx/sbin/nginx -s reload
重启:/usr/local/nginx/sbin/nginx -s reopen
停止:/usr/local/nginx/sbin/nginx -s stop
强制关闭:pkill nginx
4、开启 80 端口
firewall-cmd --list-all
firewall-cmd --query-port=80/tcp
firewall-cmd --permanent --add-port=80/tcp
systemctl restart firewalld.service
5、开机自启
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl enable nginx.service
systemctl start nginx.service
文件字段说明:
[Unit] 服务说明
Description 描述服务
After 描述服务类别
[Service] 服务运行参数的设置
Type=forking 后台运行的形式
ExecStart 为服务的具体运行命令
ExecReload 重启命令
ExecStop 停止命令
PrivateTmp=true 表示给服务分配独立的临时空间
注意:[Service] 的启动、重启、停止命令全部要求使用绝对路径;
[install] 运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
四、新建 django 环境
1、创建 django 项目
mkdir /data/workspace
cd /data/workspace/
workon django_project
pip install django=2.1.4 或者 pip install --index https://mirrors.ustc.edu.cn/pypi/web/simple/ django==2.1.4
pip install pymysql
django-admin startproject dj_test
vim ./dj_test/settings.py
ALLOWED_HOSTS = [’*’]
import pymysql
pymysql.install_as_MySQLdb()
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘dj_test’,
‘HOST’: ‘127.0.0.1’,
‘USER’: ‘root’,
‘PASSWORD’: ‘hujinq123’,
‘PORT’: ‘3306’
}
}
2、开启 8000 端口
firewall-cmd --list-all
firewall-cmd --query-port=8000/tcp
firewall-cmd --permanent --add-port=8000/tcp
systemctl restart firewalld.service
五、安装配置 uwsgi
1、安装 uwsgi
pip3 install uwsgi
2、新建 uwsgi 配置文件
mkdir /etc/uwsgi.d
vim /etc/uwsgi.d/dj_test.ini
[uwsgi]
#plugins = python36u
master = true
protocol = uwsgi
socket = 127.0.0.1:8000
wsgi-file = /data/workspace/dj_test/dj_test/wsgi.py
home = /data/virtualenvs/django_project
chdir = /data/workspace/dj_test
buffer-size = 8192
enable-threads= true
close-on-exec = true
注意:dj_test.ini 的权限不能是root的,要么就搞一个 nobody,要么 就 uwsgi 用户;
普通启动:uwsgi --ini /etc/uwsgi.d/dj_test.ini
3、开机自启设置
vim /lib/systemd/system/uwsgi.service
[Unit]
Description=HTTP Interface Server
After=syslog.target
[Service]
KillSignal=SIGQUIT
ExecStart=/usr/local/python36/bin/uwsgi --ini /etc/uwsgi.d/dj_test.ini
Restart=always
Type=notify
NotifyAccess=all
StandardError=syslog
[Install]
WantedBy=multi-user.target
systemctl enable uwsgi.service
六、配置修改汇总
1、mysql 配置
2、nginx 配置
ln -s /usr/local/nginx/conf/nginx.conf /etc/nginx.conf
vim /etc/nginx.conf
3、uwsgi 配置
配置文件是新建的,可以建多个
vim /etc/uwsgi.d/dj_test.ini