前一段时间在阿里云买了一个云服务器,尝试着部署了一下django项目。过程还算顺利,下面介绍介绍具体操作。
安装软件
我们第一步需要安装需要用到的软件,centos使用yum安装软件,在部署时需要用到的软件有MySQL、nginx、Python3.6。
MySQL安装
#下载mysql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
#安装mysql-community-release-e17-5.noarch.rpm
rpm -ivh mysql-community-release-e17-5.noarch.rpm
#安装mysql
yum install mysql-server
Python3.6安装
我们使用pyenv来管理我们的Python版本。因此,需要先安装pyenv。
安装pyenv之前要先安装好依赖的库文件。
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
接下来安装pyenv。
mkdir ~/.pyenv
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL -l
下面我们就可以使用pyenv来安装python了。
pyenv install 3.6.4
我们也可以使用pyenv来将3.6.4设置为默认版本。
pyenv global 3.6.4
nginx安装
#安装nginx需要的库
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
#安装nginx
yum install nginx
项目配置
配置uwsgi
将项目上传到云服务器上,上传可以使用WinSCP这个软件。
使用pip安装uwsgi库。
pip install uwsgi
在项目根目录下创建一个blog.ini文件。因为我的项目是一个博客,所以就创建了这样的一个文件名,你也可以修改文件名。接下来是重点,在文件中输入以下代码
[uwsgi]
#用户名,不要用root,你可以创建一个用户,在此处写上用户名。
uid = jin
http = 127.0.0.1:8001
chmod-socket = 666
#项目根目录
chdir = /home/blog/blog/
#wsgi.py文件相对根目录所在位置
wsgi-file = blog/wsgi.py
touch-reload = /blog/blog
py-auto-reload = 1
processes = 4
threads = 2
配置nginx
进入nginx所在目录: ‘cd /etc/nginx/conf.d’,此时目录中会有一个default.conf文件,删除该文件,创建新文件并编辑:’vim blog_nginx.conf’
server {
listen 80 default_server;
#此处写你的域名
server_name www.blog.com blog.com;
charset utf-8;
client_max_body_size 75M;
root /home/blog;
#静态资源
location /static {
alias /home/blog/blog_static;
}
location /media {
alias /home/blog/blog/media;
}
location / {
include /etc/nginx/uwsgi_params;
proxy_pass http://127.0.0.1:8001;
}
}
启动
启动mysql
systemctl start mysqld
启动nginx服务器
systemctl start nginx
启动uwsgi
进入刚才创建blog.ini的目录,终端输入’uwsgi blog.ini’。
此时在网站中输入你的域名,就能够看到你的项目了。
注意一点,django项目中静态资源的处理,可使用 ‘python manage.py collectstatic’命令。若想要结束uwsgi服务,可以使用’ps aux |grep uwsgi’查看进程,然后使用’kill -9 进程号’来结束uwsgi进程。
版权声明:本文为j123__原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。