• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Centos7环境下使用Apache部署Django项目实践

武飞扬头像
水流向天空
帮助1

2022年3月25日

本文采用腾讯云linux云服务器,安装Centos7.6操作系统

相关版本:Apache2.4.53  |  Python3.7.5  |  sqlite3.38  |  Django3.2.12  |  mod_wsgi4.9

相关操作均在shell命令行下root身份进行

Django项目路径:/root/Desktop/BoLiXueSheProject

1.升级sqlite3(Django2.4不支持低版本sqlite3)


#一定要在安装python3前升级,然后再编译安装python3时制定sqlite3路径,不然python3用的还是旧版本

  1.  
    cd     #切换至home目录
  2.  
    wget https://www.sqlite.org/snapshot/sqlite-snapshot-202203052020.tar.gz
  3.  
    tar zxvf sqlite-snapshot-202203052020.tar.gz
  4.  
    cd sqlite-snapshot-202203052020
  5.  
    ./configure --prefix=/usr/local/sqlite3     #建议安装至/usr/local/    此目录安装Python需用到
  6.  
    make && make install
  7.  
    cp sqlite3 /usr/bin/sqlite3
  8.  
    sqlite3 -version     #查看版本

2.安装python依赖

  1.  
    yum -y groupinstall "Development tools"
  2.  
    yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
  3.  
    yum install libffi-devel -y

3.安装python3.x


#高版本容易与Django等不兼容,建议使用python3.7以下
#注意centos 自带Python2    环境变量名python
#安装Python3应以python3命名
#安装路径:建议usr/local/python3

  1.  
    cd
  2.  
    wget https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz
  3.  
    tar -zxvf Python-3.7.5.tgz
  4.  
    cd /root/Python-3.7.5/


#安装环境配置

  1.  
    LD_RUN_PATH=/usr/local/lib ./configure LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include"  --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC
  2.  
    LD_RUN_PATH=/usr/local/lib make
  3.  
    make && make install


#建立软链接

  1.  
    ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
  2.  
    ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
  3.  
    #备用 alias python3="/usr/local/python3/bin/python3.7" 


#运行Django项目可能需要的python依赖

yum install -y python3-devel.x86_64

#安装需要的库文件

  1.  
    pip3 install django
  2.  
    pip3 install simpleui
  3.  
    pip3 install requests
  4.  
    pip3 install xlrd


#尝试使用Django server运行项目
#在腾讯云服务器防火墙页面检查所需端口是否开放,本步骤需检查80端口

  1.  
    iptables -I INPUT -p tcp --dport 80 -j ACCEPT     #打开防火墙的TCP80窗口
  2.  
    cd /root/Desktop/BoLiXueSheProject
  3.  
    python3 manage.py runserver 0.0.0.0:80
  4.  
    #查看相关信息
  5.  
    netstat -an|grep :80
  6.  
    netstat -ntlp
  7.  
    ip a

4.使用Apache作为Server


#安装apache依赖apr\apr-util\pcre

  1.  
    cd
  2.  
    wget https://dlcdn.apache.org//apr/apr-1.7.0.tar.gz
  3.  
    wget https://dlcdn.apache.org//apr/apr-util-1.6.1.tar.gz
  4.  
    wget https://boli.worksoeasy.cn/static/file/pcre2-10.39.tar.gz
  5.  
    tar -xzvf apr-1.7.0.tar.gz && cd ./apr-1.7.0
  6.  
    ./configure --prefix=/usr/local/apr
  7.  
    make && make install
  8.  
    cd
  9.  
    tar -xzvf apr-util-1.6.1.tar.gz && cd ../apr-util-1.6.1
  10.  
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
  11.  
    make && make install
  12.  
    cd
  13.  
    tar -xzvf pcre2-10.39.tar.gz && cd ../pcre2-10.39
  14.  
    ./configure
  15.  
    make && make install
学新通


#安装Apache2.4

  1.  
    cd
  2.  
    wget https://dlcdn.apache.org/httpd/httpd-2.4.53.tar.gz
  3.  
    tar -xzvf httpd-2.4.53.tar.gz && cd httpd-2.4.53
  4.  
    ./configure --prefix=/usr/local/apache
  5.  
    make && make install
  6.  
    #安装mod_wsgi, Apache不带mod_wsgi模块,用于和Django通讯
  7.  
    cd
  8.  
    wget https://files.pythonhosted.org/packages/b6/54/4359de02da3581ea4a17340d87fd2c5a47adc4c8e626f9809e2697b2d33f/mod_wsgi-4.9.0.tar.gz
  9.  
    ./configure --with-apxs=/usr/local/apache/bin/apxs --with-python=/usr/local/python3/bin/python3.7
  10.  
    make && make install


#修改/usr/local/apache/conf/httpd.conf
#注:
#django项目路径 /root/Desktop/BoLiXueSheProject
#manage.py路径 /root/Desktop/BoLiXueSheProject/manage.py
#wsgi.py路径 /root/Desktop/BoLiXueSheProject/BoLiXueSheProject/wsgi.py

  1.  
    Listen 80
  2.  
    LoadModule wsgi_module modules/mod_wsgi.so
  3.  
     
  4.  
    #ServerName 服务器IP:80
  5.  
     
  6.  
    #出于隐私 这里所有IP的第二位用***代替,域名部分用***代替
  7.  
    ServerName 175.***.28.89:80
  8.  
    WSGIPythonPath /root/Desktop/BoLiXueSheProject
  9.  
    WSGIScriptAlias / /root/Desktop/BoLiXueSheProject/BoLiXueSheProject/wsgi.py
  10.  
    Alias /static /root/Desktop/BoLiXueSheProject/static
  11.  
    <Directory /root/Desktop/BoLiXueSheProject/static>
  12.  
        Require all granted
  13.  
    </Directory>
  14.  
    <Directory /root/Desktop/BoLiXueSheProject/BoLiXueSheProject>
  15.  
        <Files wsgi.py>
  16.  
            Require all granted
  17.  
        </Files>
  18.  
    </Directory>
  19.  
    <Directory /root/Desktop/BoLiXueSheProject>
  20.  
        Require all granted
  21.  
    </Directory>
  22.  
    <VirtualHost *:80>
  23.  
        ServerName 175.***.28.89
  24.  
        WSGIScriptAlias / /root/Desktop/BoLiXueSheProject/BoLiXueSheProject/wsgi.py
  25.  
    </VirtualHost>
学新通

5.启动Apache


#开启相关文件及目录权限
#本示例需开启/root 目录权限 drwxrwxrwx

  1.  
    cd
  2.  
    sudo chmod ugo rwx root
  1.  
    #加载配置文件启动Apache
  2.  
    /usr/local/apache/bin/apachectl -k start -f /usr/local/apache/conf/httpd.conf && netstat -ntlp
  3.  
    #重启
  4.  
    /usr/local/apache/bin/apachectl -k restart && netstat -ntlp
  5.  
    #停止
  6.  
    /usr/local/apache/bin/apachectl -k stop && netstat -ntlp
  7.  
    #开机自启
  8.  
    systemctl enable httpd

6.启用HTTPS安全传输


#首先需要有域名,在腾讯云或其他地方申请CA证书,申请成功后下载证书文件,解压后放至Apache配置目录
#新建证书文件夹:/usr/local/apache/conf/sslcert
#内含文件:域名.key | 域名.crt | 域名.csr | root*.crt     其中域名.csr文件是认证机构生成的额外文件,用不上
#修改Apache配置文件/usr/local/apache/conf/httpd.conf
#去除ssl模块的注释,或新增一行加载ssl_module

LoadModule ssl_module modules/mod_ssl.so


#修改Apache配置文件/usr/local/apache/conf/extra/httpd-ssl.conf

#域名w******y.cn

  1.  
    ServerName www.w******y.cn:443
  2.  
    SSLCertificateFile "/usr/local/apache/conf/sslcert/w******y.cn.crt"
  3.  
    SSLCertificateKeyFile "/usr/local/apache/conf/sslcert/w******y.cn.key"
  4.  
    SSLCertificateChainFile "/usr/local/apache/conf/sslcert/root_bundle.crt"


#开放443端口    腾讯云服务器防火墙检查开放443端口

iptables -I INPUT -p tcp --dport 443 -j ACCEPT


#重启Apache

  1.  
    /usr/local/apache/bin/apachectl -k stop && netstat -ntlp
  2.  
    /usr/local/apache/bin/apachectl -k start -f /usr/local/apache/conf/httpd.conf && netstat -ntlp

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfgjcgh
系列文章
更多 icon
同类精品
更多 icon
继续加载