centos7+python3.6+django1.11+apache部署到阿里云

笔者购买了阿里云的服务器,将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文件,具体进行分析。

阿里云,腾讯云注意安全组的配置,开启相关端口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值