笔者购买了阿里云的服务器,将django项目部署到云主机,项目地址如下:http://120.79.59.136/
1.安装python3.6
官网下载:python3.6,然后用scp命令上传到服务器
上传到服务器后,用tar -xvf Python-3.6.5.tgz命令进行解压
解压完成后,用命令cd /Python-3.6.5 进入目录
进行编译安装,在编译安装前我们要安装一些依赖库,否则可能报错,
yum install vim wget gcc gcc+ zlib-devel openssl-devel -y
用命令:./configure --prefix=/usr/local/python36 --enable-shared --with-ssl 到指定目录
然后用make && make install进行编译安装
对安装好的python3.6进行配置环境变量
用vim /etc/profile进入配置文件,按i进入编辑模式,到最后一行添加:
PATH=$PATH:/usr/local/python36/bin/
然后Esc:wq保存退出
使用source /etc/profile重新加载环境变量
这个时候我们输入python3,进行测试,可能会报错,无法进入环境,报错信息如下:
python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file:
这在错误原因,是centos系统默认加载/usr/lib,/lib下面库文件,python默认安装到非此类文件夹。不过可以通过添加库配置信息
步骤如下:
-> cd /etc/ld.so.conf.d
->vim python3.conf
->编辑 添加库文件路径 /usr/local/python36/lib
->退出保存
->运行ldconfig
到这里,再输入python3,就可以进入python环境了。
2.安装Apache2.4(这里推荐用源码安装,yum直接安装的缺少apxs文件,可能会出问题,也可能是我不会。。。)
下载所需软件源码包,一共有4个配置的相关包
Apache.
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(或者点击这里下载apr和apr-Util其他版本)
pcre:http://jaist.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz (点击这里下载其他版本)
apache:点击这里下载
下载完之后,依然用scp命令上传至服务器
先安装相关依赖:yum -y install gcc gcc++ zlib zlib-devel
然后用命令不断解压安装,和前面类似
1、安装apr
cd apr-1.5.2#进入解压的软件包目录里面编译安装
./configure--prefix=/usr/local/apr/
make && make install
2、安装apr-Util
cd apr-1.5.4#进入解压的软件包目录里面/编译安装
./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/
make && make install
3、安装pcrel
cd pcre-8.40#进入解压的软件包目录里面编译安装
./configure--prefix=/usr/local/pcre/
make && make install
4、安装Apache
cd httpd-2.4.25#进入解压的软件包目录里面编译安装
./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
这个时候apache2.4安装完毕了,我们要进行测试是否安装成功
cd /usr/local/apache24/bin/进入apache目录
用命令./apachectl start 开启apache24服务
如果你是在自己的电脑配置,没有问题,会显示It works.
如果你是部署在阿里云等云服务器上,可能会报一个与你的ip公有地址的错
因为apache不知道你的服务器地址
这个时候我们需要用命令 cd /usr/local/apache24/conf/
然后vim httpd.conf文件,在其中添加 ServerName 120.79.59.xxx #你的服务器地址
这个时候 cd /usr/local/apache24/bin/用命令./apachectl start启动,就成功启动
在浏览器中访问120.79.xxx.xxx 就可以看到It works!
3.编译安装mod_wsgi
mod_wsgi是将apache和django进行关联
下载mod_wsgi
#wget https://codeload.github.com/GrahamDumpleton/mod_wsgi/tar.gz/4.5.24
从github下载下来的文件是4.5.24,解压后就是mod_wsgi-4.5.24
#tar zxvf 4.5.24#cd mod_wsgi-4.5.24
使用python3.6编译,一定是python3.6,不然后面会报错。
./configure --with-apxs=/usr/local/apache24/bin/apxs --with-python=/usr/local/python36/bin/python3.6
#make && make install
4.安装Django-1.11
pip3 install Django==1.11
5.配置httpd.conf和wsgi.py
1、修改你项目的setting.py文件,加入centos云主机的ip
ALLOWED_HOSTS = ['120.xx.xx.xx']
2.编辑wsgi.py文件#vim uploadwork/wsgi.py更改后的代码如下
import os, sys
from django.core.wsgiimport get_wsgi_application
sys.path.append('/usr/local/python36/bin/')#将python3的目录加入系统路径
sys.path.append('/opt/uploadwork/') #将项目想入系统路径
os.environ.setdefault("DJANGO_SETTINGS_MODULE","uploadwork.settings")
application = get_wsgi_application()
3.编辑httpd.conf文件#vim /usr/local/apache24/conf/httpd.conf在文件最后,
添加如下代码,注意其中的项目路径,修改成自己的即可
LoadModule wsgi_module modules/mod_wsgi.so
<VirtualHost *:80>
DocumentRoot "/opt/uploadwork"
WSGIScriptAlias /"/opt/uploadwork/uploadwork/wsgi.py"
Alias /static/ /opt/uploadwork/App/static/
<Directory /opt/uploadwork/App/static>
Require all granted
</Directory>
<Directory /opt/uploadwork>
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
6.测试,
到之前的apache启动目录下重启apache服务:./apachectl restart
在浏览器中输入你的公网ip进行访问
到这里应该无问题,无法访问的话注意在 /usr/local/apache24/logs下查看error.log文件,具体进行分析。
阿里云,腾讯云注意安全组的配置,开启相关端口。