中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

將本地django項目上傳到apache的方法

發布時間:2020-09-02 11:01:24 來源:億速云 閱讀:166 作者:小新 欄目:編程語言

這篇文章主要介紹了將本地django項目上傳到apache的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

Django部署到Apache上,步驟如下

安裝必要的包

sudo apt-get update
sudo apt-get install python-pip apache2 libapache2-mod-wsgi

然后還要保證WSGI模塊在運行:

sudo a2enmod wsgi

配置Python虛擬環境

為了不要修改系統python,事實上我懷疑系統python和xampp的庫對不上有可能這樣可以解決

安裝工具:

sudo pip install virtualenv

進入我們的project目錄,新建環境:

virtualenv myprojectenv

進入虛擬環境安裝python包:

source myprojectenv/bin/activate

然后命令行應該會長這樣:

(myprojectenv)user@host:~/myproject$

安裝django和django rest_framework

pip install django==1.8
pip install djangorestframework==3.6.4

注意: django2開始就不支持python2了,所以要安裝低級一點的,但是如果djangorestframework不安裝低級一點的話會有匹配不上的

修改apache配置文件/etc/apache2/sites-available/000-default.conf

修改對于Django項目的路徑,這次我們使用守護進程模式,主要需要保留三行:WSGIDaemonProcess,WSGIProcessGroup,和WSGIScriptAlias

```sh
# 這是靜態文件配置
Alias /demos/todolist/static/ /root/web/demos/todolist/work/static/
#Order deny,allow
#Allow from all
Require all granted
<Files wsgi.py>
Require all granted
WSGIDaemonProcess python-home=/root/web/demos/todolist/tdlenv python-path=/root/web/demos/todolist
WSGIProcessGroup 
WSGIScriptAlias /demos/todolist /root/web/demos/todolist/todolist/wsgi.py process-group=
一個Django項目的結構一般是這樣的:
ProjectName
-- ProjectName
---- wsgi.py
-- AppName
---- static
```

注意有兩個名字一樣的文件夾,別搞混了

靜態文件配置:

第一行為Alias <URL Path> <FILE PATH>

<URL Path>的含義和上面一樣,從此http://hostname/<URL PATH>/就是訪問靜態文件夾<FILE PATH>的路徑

第二行為<Directory <FILE PATH> >,填的還是靜態文件夾的路徑

修改Django的代碼

wsgi.py,直接用生成的

setting.py

為了放到生產環境上,可以把DEBUG關了,同時ALLOWED_HOST要修改一下以便外界可以訪問:

```python
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
# ALLOWED_HOSTS = ['*'] # 不建議寫這個
ALLOWED_HOSTS = ['localhost', '127.0.0.1', 'your ip', 'your hostname'] # 一般寫這4個
```

靜態路徑需要修改

```python
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/
STATIC_URL = '/demos/todolist/static/'
``主要是要與Alias 里的`保持一致

在prod里調試

有很多時候本地服務器上可,到了server上就有bug,但是卻不知道是哪里的bug,這個時候需要打印一些必要的信息。

最簡單的方式就是將信息打印到stderr,這樣wsgi的log會記錄在Apache的error_log里:

import sysprint 
>> sys.stderr, message

關于Sqlite3的權限配置

這個問題下有比較全的情況,翻譯過來如下,對db.sqlite3數據庫來說:

確保Apache可以寫數據庫的父目錄
確保數據庫的完整路徑上的文件夾不以數字開頭
確保完整路徑上沒有db文件夾
確保/tmp文件夾在三個級別上都可寫
確保settings.py里寫的是完整路徑
確保路徑上沒有特殊字符

在WINDOWS上,路徑要寫成雙反斜杠

最后:

重啟Apache!!!!!!!!

每次修改python源碼也要重啟!!!!!不然WSGI會用原來的代碼!!

感謝你能夠認真閱讀完這篇文章,希望小編分享將本地django項目上傳到apache的方法內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泗水县| 贵德县| 文成县| 古丈县| 大邑县| 隆子县| 南宁市| 抚顺市| 廊坊市| 姚安县| 武夷山市| 永吉县| 临洮县| 台前县| 徐州市| 油尖旺区| 都江堰市| 乐昌市| 大埔县| 平罗县| 兰西县| 临清市| 陆川县| 新蔡县| 宾阳县| 德兴市| 黄冈市| 龙海市| 满城县| 阳原县| 德钦县| 望谟县| 望江县| 柏乡县| 普洱| 蓬溪县| 荆门市| 淄博市| 青海省| 将乐县| 巩留县|