apache2部署django以及静态文件
django中的runserver只是一個(gè)很簡(jiǎn)單的web服務(wù)器,在開發(fā)中是不建議使用的,django在官方中建議是使用apache2等web服務(wù)器來配置,并且django會(huì)把靜態(tài)文件交由apache2等來處理,django認(rèn)為這是一種高效的方法。其中最難理解的就是static files的配置,這里簡(jiǎn)單說一下。
我是在阿里云上的配置的服務(wù)器,系統(tǒng)是ubuntu16。
1 首先安裝apache2
sudo apt-get install apache2sudo apt-get install libapache2-mod-wsgi# 如果是Python 3,則將第二行替換為改行 sudo apt-get install libapache2-mod-wsgi-py32 然后執(zhí)行命令
sudo a2enmod wsgi(很多博客里都沒說到這一步,導(dǎo)致在啟動(dòng)apache時(shí),會(huì)提示Invalid Command WSGIScript)
(ubuntu的apache的配置文件在/etc/apache2下面)
3 這里我的工程是在/home/blog下面。首先新建一個(gè)配置文件
sudo vi /etc/apache2/sites-available/blog.conf然后輸入下面內(nèi)容
<VirtualHost *:80>ServerName www.wanghui.comServerAlias wanghui.comServerAdmin wzxwhd@126.comAlias /media/ /home/blog/media/Alias /static/ /home/blog/static/<Directory /home/blog/media>Require all granted</Directory><Directory /home/blog/static>Require all granted</Directory>WSGIScriptAlias / /home/blog/blog/wsgi.py<Directory /home/blog/blog><Files wsgi.py>Require all granted</Files></Directory> </VirtualHost>(在這里就要注意了:靜態(tài)文件的處理。在開發(fā)過程中,一般靜態(tài)文件都是放在app下面的static里,當(dāng)settings.py中的Debug=True時(shí),此時(shí)django會(huì)自己處理靜態(tài)文件,但是當(dāng)在部署階段時(shí),你需要在settings.py中加入:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')然后執(zhí)行
sudo python managy.py collectstatic這樣django會(huì)自動(dòng)把你的靜態(tài)文件拷貝到項(xiàng)目根目錄下的static文件夾里,并且你也無需擔(dān)心你的html路徑問題。
)
保存退出,然后
sudo vim /etc/apach2/envars將文件中的APACHE_RUN_USER 和 APACHE_RUN_GROUP改為合適的用戶名和組,這里不還,后面的靜態(tài)文件會(huì)有權(quán)限問題的!!
緊接著修改wsgi文件,/homg/blog/blog/wsig.py
import os PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) import sys sys.path.insert(0,PROJECT_DIR)這一步主要是為了讓apache知道你項(xiàng)目的位置。
4 設(shè)置目錄權(quán)限
一般目錄權(quán)限設(shè)置為 755,文件權(quán)限設(shè)置為 644?
項(xiàng)目位置在 /home/blog?
cd /home/ sudo chmod -R 644 blog sudo find blog -type d -exec chmod 755 {} \;5 啟動(dòng)服務(wù)
sudo a2ensite blog這樣就ok了
?
轉(zhuǎn)載于:https://www.cnblogs.com/wzxwhd/p/6290784.html
總結(jié)
以上是生活随笔為你收集整理的apache2部署django以及静态文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu-5794 A Simple Ch
- 下一篇: maven学习(六)——在别的项目中引用