(单/双)服务器部署django+vue项目只有一点不同。
ssh工具选什么都可以(putty,xshell,Windowspowershell),自行选择。
一.配置python3环境
一般下载的源码包都下载在/usr/local/src目录下
编译安装在/usr/local/目录下(可以根据个人习惯改变)
1.更新系统软件包
执行命令: yum update -y
2.安装软件管理包和可能使用的依赖
- 执行命令: yum -y groupinstall “Development tools”
- 执行命令: yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
3.下载python源码压缩包
-
cd进入/usr/local/src目录下(cd /usr/local/src)
-
上传或者下载python源码压缩包
第一种方式:在线下载使用wget下载,去python官网找到源码压缩包下载链接,直接wget 下载链接下载,例如:wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
不过因为python官网在国外,下载速度非常慢,推荐第二种上传。第二种方式:本地上传
本地下载好源码压缩包后,使用xftp或者命令行上传。
xftp就不说了,傻瓜式操作。说一下命令行上传:
百度云python3.6.6源码压缩包
百度云python3.7.5源码压缩包
mac可以使用自带终端,windows可以右击windows徽标,打开windows PowerShell。
命令格式为:第一个是本地文件的路径/文件名, 例如 ./index.tar.gz 、 index.html 、 bg.png 等 第二个是要上传到的服务器的位置 例如 root@0.0.0.0:/var/www scp path/filename userName@sseverName:path 如果是要下载服务器的文件到本地 则调换两个位置就可以 scp userName@sseverName:path path/filename 输入命令后回车,会提示yes/no,选yes,然后会让你输入密码, 输入密码然后回车就可以了。
4.解压安装python
解压python源码压缩包,解压命令为 tar zxvf +压缩包
切换到解压目录
cd ./ Python-3.7.5
预编译指定安装位置
./configure -prefix=/usr/local/python3
编译安装
make && make install
建立软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 #为python3创建软连接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 #为pip3创建软连接
以上步骤完成后分别输入python3和pip3查看是否安装并且添加环境变量成功。
4、uWSGI安装
uwsgi也是服务器软件,管理http请求,但是性能不咋滴就把它作为服务器内部中转服务了
通过pip安装
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple uwsgi
为了能在终端的任何位置都能使用uwsgi,为其创建软链接:
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
5、安装django
通过pip安装
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django
为了能在终端的任何位置都能使用django,为其创建软链接:
ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin
**6、配置Django + uWSGI **
上传自己的django项目到服务器,方法参考前面上传python源码压缩包方法
试运行自己的django项目,可能会出现以下报错:
(1)提示sqlite版本问题,如果你的项目没有用到sqlite,就将django项目中的
settings配置文件中引用sqlite数据库的两行注释掉或者进入sqlite报错文件中把
检查sqlite版本的函数删掉再或者就是升级sqlite版本(很麻烦)
(2)如果你用了restframeworkmongoengin又可能会出现引入模块问题。找到你服务器上的
python模块中的restframeworkmongoengin文件夹删掉,然后上传你本地的
restframeworkmongoengin文件(删除后上传,不要覆盖),一般都在
python/Lib/site-packages/下。
(3)allowhost问题,打开setting配置文件,将allowhosts=[]修改为allowhosts=['*']
(4)connection timeout 27017,没有配置mongodb数据库
假设django项目名为mysite,进入mysite文件夹,新建uWSGI的启动文件 (项目名称.xml):
示例:vi mysite.xml
将以下内容粘贴进去:(**centos复制粘贴又可能会出现首行少字情况**)
<uwsgi>
<socket>127.0.0.1:8899</socket><!-- 内部端口,自定义 -->
<chdir>/var/wwwroot/mysite</chdir><!-- 项目路径 -->
<module>mysite.wsgi</module><!--这是django项目中的wsgi文件,在mysite/mysite目录下-->
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>
7.配置nginx
切换到下载目录
cd /usr/local/src
下载源码包
一般linux最小化安装时,wget不会默认被安装。
(yum -y install wget )
wget http://nginx.org/download/nginx-1.6.1.tar.gz
解压源码包
tar zxvf nginx-1.6.1.tar.gz
切换到解压目录
cd nginx-1.6.1
编译前配置
./configure --prefix=/usr/local/nginx
如果没什么错误即可进行编译安装
make && make install
至此nginx就安装完了,可以执行下面命令启动它
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -s reload -----会重新加载配置文件,nginx服务不会中断
/usr/local/nginx/sbin/nginx -t ------t就是检查nginx配置检查
如果想让外网访问这个服务器,需要把本机端口80开放:
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
修改nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
全部删除(直接键盘输入dG可以全部删除)
将内容修改为
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;#监听80端口,可以设置多个server监听不同端口
server_name 127.0.0.1; #改为自己的域名,没域名修改为127.0.0.1
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8997; #端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT mysite.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /data/wwwroot/mysite/; #项目路径
}
location /static/ {
alias /data/wwwroot/mysitestatic/; #静态资源路径,如果没有静态文件可以不配置
}
}
}
8.运行项目
进入django目录下,执行
uwsgi -x mysite.xml(这里的xml文件是上面新建的文件)
如果后期项目修改了,需要杀死uwsgi的进程,重新运行uwsgi
ps -aux | grep uwsgi #查看uwsgi的进程
killall -9 uwsgi #杀死所有uwsgi进程
uwsgi -x mysite.xml #重新运行
进入nginx开启nginx服务
cd nginx安装目录的sbin目录下
./nginx -t //检查配置文件是否存问题
执行./nginx或者./nginx -s reload //让nginx重新加载配置文件
9.配置vue项目
上传vue项目并解压,记住路径.
打开nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
添加server:
server {
listen 8081;#监听8081端口,可以设置多个server监听不同端口
server_name 127.0.0.1; #改为自己的域名,没域名修改为127.0.0.1
charset utf-8;
location / {
include index index.html index.htm;
root vue项目路径
}
}
重新启动nginx
/usr/local/nginx/sbin/nginx -s reload