开始学习python,使用django + nginx + uwsgi + mysql + html 来搭建一个Web服务器。
一、python环境安装
因为使用的是腾讯云的虚拟主机(centos7.2),已经装有python2.7.5,为了方便管理环境,使用virtualenv来创建自己的python环境。
cd ~
mkdir python
cd python/
sudo yum -y install gcc gcc-c++ kernel-devel
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar xf Python-3.6.4.tgz
cd Python-3.6.4/
./configure --prefix=/usr/local/python-3.6.4 --enable-shared LDFLAGS="-Wl,--rpath=/usr/local/python-3.6.4/"
make
sudo make install
sudo ln -sv /usr/local/python-3.6.4/bin/python3 /usr/bin/python3
sudo ln -s /usr/local/python-3.6.4/bin/virtualenv /usr/bin/virtualenv3
cd /etc/ld.so.conf.d
sudo vim python3.conf
sudo echo /usr/local/python-3.6.4/lib > python3.conf
ldconfig
sudo ldconfig
cd ~/python
virtualenv3 ENV
source ENV/bin/activate(deactivate)
pip install --upgrade pip setuptools whell
pip install wheel
二、Django
cd ~/python
source ENV/bin/activate
sudo pip install Django
mkdir project
cd project/
django-admin startproject demo
cd demo
python manage.py runserver 0.0.0.0:8000
sudo yum install libmysqlclient-dev
sudo yum install mysql
sudo yum install mysql-devel
sudo pip install mysqlclient
mysql -h 172.16.0.5 -P 3306 -u root -p
三、uwsgi
cd ~/python
source ENV/bin/activate
pip install uwsgi
uwsgi --ini uwsgi.ini
uwsgi --stop uwsgi.pid
uwsgi --reload uwsgi.pid
ini文件方式
[uwsgi]
#使用nginx连接时使用
socket=127.0.0.1:8000
#直接做web服务器使用
#http=0.0.0.0:8000
#项目目录
chdir=/xxxxxx/project/demo
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=demo/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=/xxxxxx/uswgi.log
四、nginx
sudo yum install nginx
nginx -s stop
sudo vi /etc/nginx/nginx.conf
sudo nginx
/etc/nginx/nginx.conf
http {
..........
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
#将所有的参数转到uwsgi下
include uwsgi_params;
#uwsgi的ip与端口
uwsgi_pass 127.0.0.1:8000;
}
.........
}
}