Django 部署(Apache下)


前言:

因為需要在服務器下運行python腳本,所以需要搭建Django服務器。所以將自己的學習過程也記錄下來,方便日后查閱。

本文環境如下:

   Ubuntu 16.04  python2.7

   Apache2.4

   Django1.8

正文:

下面是ubuntu上的部署詳細步驟:

1. 安裝 apache2 和 mod_wsgi

sudo apt-get install apache2
 
# 如果是Python 2 執行如下
sudo apt-get install libapache2-mod-wsgi
 
# 如果是Python 3 執行如下
sudo apt-get install libapache2-mod-wsgi-py3

2. 確認安裝的apache2版本號

apachectl -v

結果如下:

root@ygh:/var/www/mysite# apachectl -v
Server version: Apache/2.4.18 (Ubuntu)
Server built:   2016-04-15T18:00:57

3. 測試apache

打開瀏覽器輸入,127.0.0.1

顯示Apache安裝成功。

4、如果沒有安裝Django環境,安裝過程如下:

如果是學習,可以選擇目前的 Django 1.8.x 來進行,是個穩定版本

4.1. 用 pip 來安裝

4.1.1 需要先安裝pip

(1). ubuntu: 

sudo apt-get install python-pip

(2). Fedora:

yum install python-pip

利用 pip 安裝 Django

sudo) pip install Django
或者 (sudo) pip install Django==1.8.16 或者 pip install Django==1.10.3

我自己使用的命令是:pip install Django==1.8.16

終端上輸入 python ,點擊 Enter,進行 python 環境

 

>>> import django
>>> django.VERSION
(1, 8, 16, 'final', 0)
>>> 
>>> django.get_version()
'1.8.16'

 

如果運行后看到版本號,就證明安裝成功了

5.創建django工程

Apache下的項目一般會放在/var/www/下,如果你想自己修改目錄,需要修改配置文件,因為自己為了簡化操作,沒有修改。

cd /var/www/

sudo django-admin.py startproject mysite

一般使用 django-admin startproject mysite 也可以創建工程,看個人電腦的情況而定,兩個命令可以都試一下。

6. 測試django工程

cd mysite

采用8000端口,並在本地運行:

sudo python manage.py runserver 8000

瀏覽器測試

7.更改端口

因為需要將Apache和Django進行綁定,所以需要將端口更改為它們共有的。

sudo vi /etc/apache2/ports.conf

添加如下:

NamevirtualHost *:8888
Listen 8888

表示VirtualHost *:8888的虛擬主機監聽8888端口

7.1. 添加網站配置文件

sudo vi /etc/apache2/sites-available/mysite.conf
<VirtualHost *:8888>      
    DocumentRoot /var/www/mysite/mysite      
    <Directory /var/www/mysite/mysite>          
        Order allow,deny          
        Allow from all      
    </Directory>      
  
WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
</VirtualHost> 

8. 更改django工程

sudo vi /var/www/mysite/mysite/wsgi.py

添加如下:

import sys
sys.path.append("/var/www/mysite/")

9. 配置生效

sudo a2ensite mysite.conf

有時候需要不使能配置

  sudo a2dissite mysite.conf

然后需要 apache服務重啟

sudo service apache2 restart
或
sudo service apache2 reload

10. 登錄測試

127.0.0.1:8888

11. 創建app測試
cd /var/www/mysite/

python manage.py startapp blog

sudo vi blog/views

插入如下代碼:

from django.shortcuts import render

from django.http import HttpResponse

# Create your views here.
def index(request):
    return HttpResponse("hello ygh")

然后修改網絡地址文件

sudo vi mysite/urls.py
from django.conf.urls import url
from django.contrib import admin 

from blog import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', views.index),
]

瀏覽器測試

這樣就將Django和Apache綁定,可以部署到服務器上了。

=====================================================

2017.3.21補充:

因為項目需要,在Apache的默認文件夾/var/www/不方便項目的遷移,要將其他文件下項目部署到服務器上,所以解決了取消默認文件夾的問題,解決方案如下:

首先進入配置文件:

 

gedit /etc/apache2/apache2.conf

 

然后修改如下內容:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>
改為如下內容:
<Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
    #Require all denied
</Directory>

在其下添加如下內容:

<Directory /opt/deep_ocr/python/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
/opt/deep_ocr/python/是我自己的目錄,修改完成,這時可以指定/opt/deep_ocr/python/為你的項目目錄。
完成!

                                      by still、


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM