所以就來寫一個筆記記錄一下步驟。
事前準備:
主機: Ubuntu 12.04.3 x64
域名: 在這個範例為 coderobot.biz
首先為了方便起見,我會先安裝 fish shell
wget http://fishshell.com/files/2.1.0/linux/Ubuntu/fish_2.1.0-1~precise_amd64.deb sudo dpkg -i fish_2.1.0-1~precise_amd64.deb
安裝 django (1.6.1 版本)
pip install Django==1.6.1
安裝 apache2
sudo apt-get update sudo apt-get install apache2
安裝 wsgi 模組
sudo apt-get install libapache2-mod-wsgi
安裝 mysql,過程會要你設定 root 的密碼
sudo apt-get install mysql-server libapache2-mod-auth-mysql
初始化資料庫
sudo mysql_install_db
安裝 python 的 mysql 函式庫
sudo apt-get install python-mysqldb
完成軟體的安裝之後,現在要進行一些設定
1. 設定你的主機名稱
到 /etc/apache2/http.conf,輸入以下內容:
ServerName www.coderobot.biz
2. 配置虛擬主機
建立配置文件 /etc/apache2/sites-available/controlcenter
controlcenter 是可以自由命名的文件名稱
輸入以下內容
<VirtualHost *:80>
ServerName coderobot.biz
ServerAdmin admin@coderobot.com
WSGIScriptAlias / /var/www/controlcenter/django.wsgi
<Directory /var/www/controlcenter>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/controlcenter/static
<Directory /var/www/controlcenter/static>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
紅色的部分需要根據自己的情況輸入啟動虛擬主機
sudo a2ensite controlcenter
再來建立 django 的專案
切換到 /var/www 底下,並創建 django 專案
django-admin.py startproject controlcenter
切換到 /var/www/controlcenter 並建立 django.wsgi
輸入以下內容
# coding= utf-8 import os import sys os.environ['DJANGO_SETTINGS_MODULE'] = 'controlcenter.settings' path = '/var/www/controlcenter' if path not in sys.path: sys.path.append(path) import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()紅色的部分需要根據自己的情況輸入
重新啟動伺服器
sudo service apache2 restart
輸入網址,這時候你應該就可以看到 django 預設的頁面了
mysql 配置
將 /etc/mysql/my.cnf 裡面的 bind-address 那行註解
進入 mysql shell,新增給 django 使用的資料庫並新增使用者給遠端連線使用
紅色的部分需要根據自己的情況輸入create database controlcenter;
grant all on controlcenter.* to admin@'%' identified by 'PASSWORD';
grant all on controlcenter.* to admin@'localhost' identified by 'PASSWORD';
set password for 'user'@'%' = password('pass');
重新啟動 mysql 伺服器
sudo service mysql restart現在就可以從遠端連接資料庫了
(但為了增加安全性,應該維持只允許 local 連線,遠端則以 ssh 連進主機的資料庫)
編輯 /var/www/controlcenter/controlcenter/settings.py
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'controlcenter', 'USER': 'admin', 'PASSWORD': 'PASSWORD', 'HOST': '' } }紅色的部分需要根據自己的情況輸入,NAME 為資料庫名稱
初始化 django 的資料庫
python manage.py syncdb
最後,將 debug 模式取消
編輯 /var/www/controlcenter/controlcenter/settings.py
紅色的部分需要根據自己的情況輸入DEBUG = False
ALLOWED_HOSTS = ['.coderobot.biz']
重新啟動伺服器
sudo service apache2 restart
現在,我們已經將 apache、django和mysql都架起來並成功運行了!!