Ubuntu 18 部署 Apache2 + Python 3.6 + Django


记录下过程

安装Python3.6

正常情况下,Python3.6是自带的

$ sudo apt-get install python3.6

创建Python3虚拟环境

ubuntu自带Python2和Python3,默认情况下Python2的优先级高
需要虚拟一个Python3的环境

# 安装virtualenv
$ sudo apt-get install virtualenv

# 创建python3.6虚拟环境 -p指定python3.6解释器路径
$ virtualenv -p /usr/bin/python3.6  envPython3.6

# 激活Python3.6环境
$ cd envPython3.6
$ source bin/activate
#查看当前版本
$ python -V

如果不使用虚拟环境,也可提升Python3.6的优先级
#如果有多个Python3.x,调整Python3的优先级,使得3.6优先级较高

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2

#更改默认值,python默认为Python2,现在修改为Python3

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

#查看当前版本

$ python -V

sudo apt-get install libapache2-mod-wsgi-py3

创建一个Django应用

安装Django

# 在激活的Python3.6虚拟环境中
$ pip install Django

创建一个项目

$ django-admin startproject DjangoProj

DjangoProj为项目名,项目名需要为合法的 Python 包名,如不能为 1a 或 a-b等。

创建成功后,会有一个DjangoProj文件夹,里面包含manage.py文件

创建一个应用

# 在激活的Python3.6虚拟环境中
$  cd DjangoProj
$  python manage.py startapp firstApp

安装Apache2 和 mod_wsgi

$ sudo apt-get install apache2
$ sudo apt-get install libapache2-mod-wsgi-py3

配置文件

/etc/apahce2/sites-available文件夹下创建配置文件,如firstApp.conf

# firstApp.conf
<VirtualHost *:80>
    #如果有域名,可以配置域名;没有域名,可以配置ip地址
    ServerName  hello.com
    ServerAlias  abcName
    #管理员联系方式
    ServerAdmin helloAdmin@hello.com

    #指定项目路径
    WSGIDaemonProcess abcName  python-home=/home/ubuntu/envPython3.6/
    WSGIProcessGroup abcName
    
    # 配置wsgi.py脚本路径  在使用Django创建的项目目录下面
    WSGIScriptAlias /firstApp  /home/ubuntu/envPython3.6/DjangoProj/DjangoProj/wsgi.py
    
    <Directory /home/ubuntu/envPython3.6/DjangoProj/>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>

使用VS Code Remote SSH打开文件时,可能会遇到权限问题,可以用如下命令修改相应文件夹的权限
#变更所有者
$ sudo chown -R 当前用户名 /etc/apache2/sites-available/

修改wsgi.py

添加如下代码

import sys
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,PROJECT_DIR)

完整代码

import os

import sys
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,PROJECT_DIR)

from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoProj.settings')
application = get_wsgi_application()

激活配置文件

$ sudo a2ensite firstApp.conf
$ sudo systemctl reload apache2
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu是一个自由开源的操作系统,其中有很多的工具和服务可以用于搭建与开发Web应用。其中,常用的Web应用栈是使用Nginx作为Web服务器,UWSGI作为应用程序服务器,Django作为Web框架,MySQL作为关系型数据库。 要安装和配置这些服务,需要进行以下步骤: 1. 安装Ubuntu操作系统,可以选择最新版本的Ubuntu LTS或者最新的Ubuntu发行版。 2. 安装Nginx服务,并配置Nginx服务器来处理并转发HTTP请求。这里可以使用apt-get install命令来安装Nginx包。 3. 安装UWSGI服务,并配置UWSGI服务器来处理Django应用程序。这里可以使用pip install命令来安装UWSGI包。 4. 安装Django,并编写一个基本的Django应用程序。然后配置UWSGI服务器以运行Django应用程序。可以使用pip install命令来安装Django包。可以使用此教程 - https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html 5. 安装MySQL数据库服务,并配置MySQL服务器以使用Django应用程序。可以使用apt-get install命令来安装MySQL包。 6. 在Django应用程序中配置MySQL数据库连接参数,并创建 MySQL数据库及表。 7. 配置Nginx服务器以使用UWSGI服务器来处理Django应用程序。可以使用上面的教程来完成这一步骤。 8. 启动Nginx和UWSGI服务器,并测试Django应用程序是否可以访问。 在进行以上的步骤时,需要注意安全措施,防止 Web 应用程序被攻击和入侵。同时,也需要进行充分的测试,保证 Web 应用程序的稳定性和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值