使用Vagrant(Ubuntu16.04)创建Django x Apache x mod_wsgi的环境

如果在Apache或Nginx等WEB服务器上运行Python,需要使用WSGI机制。虽然WSGI机制看起来很简单,但我还没有详细调查过。由于要使用WSGI机制,相比PHP有点麻烦。但是一旦掌握,准备工作几乎没有差别。在本帖中,我们将在Vagrant的Ubuntu16.04上使用Django和Apache来运行WEB应用程序。这次我们将使用已经安装的Python3.5来进行设置,不需要安装Pyenv。

环境 –

    • Windows10

 

    • Vagrant 1.9.3

 

    • Ubuntu16.04

 

    • Python 3.5.2

 

    Apache/2.4.18 (Ubuntu)

Vagrantfile的配置设置

我将使用Ubuntu 16.04的虚拟机(ubuntu/xenial64)。

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/xenial64"
  config.vm.network "forwarded_port", guest: 80, host: 9090, host_ip: "127.0.0.1"
end

启动 Vagrant 并登录

$ vagrant up
$ vagrant ssh

安装Apache2

$ sudo apt-get update
$ sudo apt-get install -y vim apache2 apache2-dev

安装mod_wsgi

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

安装Django并创建应用程序

$ sudo apt-get install -y python3-pip
$ sudo pip3 install --upgrade pip
$ sudo pip3 install django
$ mkdir /vagrant/django
$ cd /vagrant/django
$ django-admin startproject mysite

Apache2的配置

创建django.conf文件

我创建了一个新的/etc/apache2/sites-available/django.conf文件。

<VirtualHost *:80>
  WSGIDaemonProcess mysite python-home=/usr python-path=/vagrant/django/mysite
  WSGIScriptAlias / /vagrant/django/mysite/mysite/wsgi.py process-group=mysite
  <Directory /vagrant/django/mysite/mysite>
    <Files wsgi.py>
      Require all granted
    </Files>
  </Directory>
</VirtualHost>

WSGI的每个参数大致如下。如果有任何不清楚或出现错误的情况,需要努力阅读这个详细的手册。

    WSGIDaemonProcessのpyhton-homeは、下記で確認できる。
 $ python3
 >>> import sysconfig
 >>> sysconfig.get_config_var('prefix')
'/usr'
    • python-pathは、Djangoプロジェクトのルートフォルダのパス。

 

    WSGIScriptAliasは、最初の/が、アプリケーションのベースとなるURLパス。/の場合はWEB ROOTになる。2番目の部分は、WSGI fileの場所。

启用django.conf。

禁用默认设置,并启用django.conf。

$ sudo a2dissite 000-default
$ sudo a2ensite django

我将重新启动Apache2。

$ sudo systemctl restart apache2
广告
将在 10 秒后关闭
bannerAds