注意的地方
- Linux 的一些代码不能识别tab 键,不能识别一些"奇怪的空格"
- 复制代码时,把注释和所有的空格代码后面的空格删掉(可能有点难,毕竟空格看不见,没关系,后面会介绍如何排错)
环境
- CentOS7.5(腾讯云服务器)
- Python3.6
- Django2.0
- Mysql5.7
- Apache2.4
开始
- 准备一个全新的 CentOS 7.5(我给服务器重装了系统)
- 安装 Python 环境 a. 到官网下载 Python 的源码安装包(一定要源码的)
b. 利用软件(我这里用FlieZilla, 也可以用 Xftp)把 Python 安装包上传到服务器上
c. 解压 Python 安装包
cd /opt/
tar -xvf Python-3.6.5.tgz
d.安装依赖
yum install vim wget gcc gcc+ zlib-devel openssl-devel -y
e.编译/安装 Python
cd Python-3.6.5/
./configure --prefix=/usr/local/python36 --enable-shared --with-ssl
make && make install
f.配置环境变量
vim /etc/profile
PATH=$PATH:/usr/local/python36/bin/ //最后一行加上这句话,保存后退出
source /etc/profile
cd /etc/ld.so.conf.d
vim python3.conf
/usr/local/python36/lib
保存后退出
运行 ldconfig
Python 环境安装结束 !!!
- 安装 Apache2.4 a.下载下面的安装包 Apr:http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz Apr-Util:http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz pcre:http://jaist.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz apache:http://httpd.apache.org/download.cgi
b. 把这几个安装包上传到服务器(opt 目录下)
c. 安装依赖
yum -y install gcc**
yum -y install gcc++ zlib zlib-devel
c. 解压/编译/安装
tar -xvf apr-1.5.2.tar.gz
cd apr-1.5.2/
./configure --prefix=/usr/local/apr/
make && make install
回到 opt 目录 cd /opt
tar -xvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4/
./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/
make && make install
回到 opt 目录 cd /opt
tar -xvf pcre-8.39.tar.gz
cd pcre-8.39/
./configure --prefix=/usr/local/pcre/
make && make install
回到 opt 目录 cd /opt
tar -xvf httpd-2.4.37.tar.gz
cd httpd-2.4.37/
./configure --prefix=/usr/local/apache24/ --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/
make && make install
apache 安装完毕
检测是否安装成功
cd /usr/local/apache24/bin/
./apachectl start
如果你是在自己的电脑配置,没有问题,会显示It works.
但是如果你在服务器上配置,还需要修改一些东西
cd /usr/local/apache24/conf/
vim httpd.conf
ServerName 192.xxx.xxx.xxx #你的服务器地址
之后再回到 Apache 目录,启动 Apache
cd /usr/local/apache24/bin/
./apachectl start
- 编译安装mod_wsgi
wget https://codeload.github.com/GrahamDumpleton/mod_wsgi/tar.gz/4.5.24
tar zxvf 4.5.24
cd mod_wsgi-4.5.24
./configure --with-apxs=/usr/local/apache24/bin/apxs --with-python=/usr/local/python36/bin/python3.6
make && make install
5.安装Mysql5.7(不需要数据库的可以跳过)
安装教程,点我
6.把项目上传到服务器(我把项目放在/opt目录下)
- 安装Django
pip3 install Django==2.0
- 配置httpd.conf和 wsgi.py
a、修改你项目的setting.py文件
ALLOWED_HOSTS = ["*"]
b.编辑wsgi.py文件,在项目中的wsgi.py文件,更改后的代码如下(注意代码的路径)
import os, sys
from django.core.wsgi import get_wsgi_application
sys.path.append('/usr/local/python36/bin/')
sys.path.append('/opt/jiekoufuwu')
os.environ.setdefault("DJANGO_SETTINGS_MODULE","jiekoufuwu.settings")
application = get_wsgi_application()
c.编辑httpd.conf文件
vim /usr/local/apache24/conf/httpd.conf
在最后加上以下代码(注意路径,是你的项目路径)
LoadModule wsgi_module modules/mod_wsgi.so
<VirtualHost *:80>
DocumentRoot "/opt/jiekoufuwu"
WSGIScriptAlias / "/opt/jiekoufuwu/jiekoufuwu/wsgi.py"
<Directory /opt/jiekoufuwu/static>
Require all granted
</Directory>
<Directory /opt/jiekoufuwu>
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
- 数据库迁移
python manage.py makemigrations
python manage.py migrate
- 重新启动Apache
cd /usr/local/apache24/bin/
./apachectl restart
- 测试
因为项目只涉及到后端的接口,所以在apache没有配置静态文件,所以看不到完整的页面,只能获取接口数据
不彩的彩蛋
在配置Apache文件时,如果运行过程中出现问题,可以用Django自带的web服务器运行项目,这样就可以显示错误的日志(Apache也有日志,但是我觉得日志不够详细),很有可能的错误在字符上,linux不能识别tab或者其他的空格