操作系統是ubuntu
更新源
1 | apt-get update |
安裝 Nginx 和 uWSGI
1 | apt-get install nginx uwsgi uwsgi-plugin-python |
安裝 Python 相關環境
1 | apt-get install python-dev python-virtualenv python-pip |
這裏如果安裝不成功,可以分開安裝,試過一次,分開安裝才成功,原因目前以我的水平還發現不了,很遺憾。
安裝 MySQL
1 | apt-get install mysql-server mysql-client libmysqld-dev |
安裝 MySQL 的過程中需要輸入密碼
安裝 PHP
1 | apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5-mysql |
配置 Django 及多站點支持
這裏假設我的網站目錄爲 /www ,每個用戶有自己一個獨立的文件夾(這裏使用兩個用戶名作爲示例,分別爲 test1 和 test2 )
前面的操作步驟爲簡單起見,只新建一個站點,文件夾名稱爲 test1
建立目錄
1 2 3 4 | mkdir /www mkdir /www/test1 mkdir /www/test1/media mkdir /www/test1/static |
這裏建立的 media 和 static 目錄分別用來存放該 Django 項目的 media 和 static 文件。
用 virtualenv 創建虛擬環境並新建測試項目
1 2 3 4 5 | cd /www/test1 virtualenv env source env /bin/activate pip install Django django-admin.py startproject django_test |
這裏在 /www/test1/env 目錄下新建了一個虛擬環境並激活,安裝了 Django 並新建了一個項目,名稱爲 django_test 。
1 2 3 4 5 | 注: 創建並進入環境:mkvirtualenv env1 退出環境:deactivate 進入已存在的環境或者切換環境:workon env1或者env2 刪除環境: rmvirtualenv env1 |
配置 Nginx
在 Nginx 的 sites-available 下創建一個新的配置文件
1 | vim /etc/nginx/sites-available/test1 |
文件內容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | server { listen 80; server_name test1.yourdomain.com; access_log /var/log/nginx/test1 .access.log; error_log /var/log/nginx/test1 .error.log; location / { uwsgi_pass unix: ///tmp/test1 .sock; include uwsgi_params; } location /media/ { alias /www/test1/media/ ; } location /static/ { alias /www/test1/static/ ; } } |
接下來將 sites-available 文件夾中剛纔添加的文件 ln 到 sites-enabled 文件夾中
1 | ln -s /etc/nginx/sites-available/test1 /etc/nginx/sites-enabled/ |
配置 uWSGI
接下來是配置 uWSGI,同樣在 uWSGI 的目錄下創建一個新的配置文件
1 | vim /etc/uwsgi/apps-available/test1 .ini |
文件內容如下
1 2 3 4 5 6 7 8 9 10 11 | [uwsgi] vhost = true plugins = python socket = /tmp/test1 .sock master = true enable -threads = true processes = 4 wsgi- file = /www/test1/django_test/django_test/wsgi .py virtualenv = /www/test1/env chdir = /www/test1/django_test touch -reload = /www/test1/django_test/reload |
注意:文件內容中的 django_test 爲剛纔創建的 Django 的項目名稱
然後將 apps-available 中的配置文件 ln 到 apps-enabled 文件夾中
1 | ln -s /etc/uwsgi/apps-available/test1 .ini /etc/uwsgi/apps-enabled/ |
重啓 Nginx 和 uWSGI
1 2 | service uwsgi restart service nginx restart |
接下來訪問你在上面綁定的 server_name 域名就可以看見 It worked! 的界面了。
注意:每次更新代碼後需要執行 service uwsgi restart 修改方能生效,或者通過上面配置的 touch-reload 文件來檢測改動更新代碼。
DJANGO應用部署
首先進入/www/test1/django_test目錄,然後創建django app。
1 2 | cd /www/test1/django_test django-admin.py startapp appname |
這樣在django_test目錄下就會有一個appname目錄。
就可以編輯裏面的views.py文件。同時編輯一下/django_test下的urls.py文件,然後用自己定義的URL和視圖方法,就可以正常訪問自己的應用了。