本文提要
可運行Django應用程式的技術堆棧有很多樣的選擇,這裡採用的組合:- OS: Ubuntu Server 14.04
- Web Server: Apache + mod-wsgi
- Database: PostqreSQL或是SQLite
- Python: 3.4
- Django: 1.8
以下也假定已安裝好PostqreSQL Server,就不花巨大篇幅解釋這方面的設置,以及Apache或Python虛擬環境的詳細使用,這些寫在別處。這裡僅寫與Django直接相關的部分。
只是簡單的範例,應視實際情況做修改。
安裝必要套件
$ sudo apt-get update
$ sudo apt-get install python3-pip apache2 libapache2-mod-wsgi-py3
建立Python虛擬環境
$ sudo pip3 install virtualenv
$ mkdir ~/myproject
$ cd ~/myproject
$ virtualenv myprojectenv
$ source myprojectenv/bin/activate
pip install django
建立並設置新Django專案
django-admin.py startproject myproject .
修改myproject/settings.py
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
cd ~/myproject
./manage.py makemigrations
./manage.py migrate
./manage.py createsuperuser
./manage.py collectstatic
deactivate
離開虛擬環境,繼續其它設置工作。設置Apache
修改/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
# ...省略其它不相關內容
Alias /static /home/user/myproject/static
<Directory /home/user/myproject/static>
Require all granted
</Directory>
<Directory /home/user/myproject/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
# wsgi 3.4版,Daemon mode用以下2種寫法都可以。3.3版,要用第2種
WSGIDaemonProcess myproject python-home=/home/user/myproject/myprojectenv
# WSGIDaemonProcess myproject python-path=/home/user/myproject:/home/user/myproject/myprojectenv/lib/python3.4/site-packages
WSGIProcessGroup myproject
WSGIScriptAlias / /home/user/myproject/myproject/wsgi.py
</VirtualHost>
其它
在wsgi.py加入路徑,重要
import sys
sys.path.append("/home/user/myproject")
所append的這個目錄即manage.py的所在修改專案目錄的屬性,讓Web Server能順利在其中執行:
$ sudo chown -R www-data:www-data ~/myproject
若用SQLite
$ chmod 664 ~/myproject/db.sqlite3
若用PostgreSQL
$ apt-get install libpq-dev
然後記得先進入python虛擬環境中再安裝psycopg2。進入與離開虛擬環境的方式這裡就不重複寫了。
pip install psycopg2
若用Mezzanine商店模組Cartridge關於SHOP_CURRENCY_LOCALE設置
先用locale指令看一下變數,再依據自己的變數,在/etc/apache2/envvars加入如:
export LANG='zh_TW.UTF-8'
export LC_ALL='zh_TW.UTF-8'
最後將Apache Server重啟
$ sudo service apache2 restart
沒有留言:
張貼留言