2016年7月8日 星期五

deploy django + mysql + ubuntu + apache

sudo apt-get update 
sudo apt-get upgrade

安裝 apache
sudo apt-get install apache2

安裝 Django less than 1.9
sudo apt-get install python3-pip
sudo python3 -m pip install "Django<1.9"

安裝 apache 模組 - wsgi
sudo apt-get install libapache2-mod-wsgi-py3

安裝 mysql 過程會設定 mysql root 密碼
sudo apt-get install mysql-server libapache2-mod-auth-mysql

安裝 mysql 官方 python-connector
到 mysql 下載 mysql-connector-python-py3_2.1.3-1ubuntu14.04_all.deb
sudo dpkg -i mysql-connector-python-py3_2.1.3-1ubuntu14.04_all.deb

測試登入 mysql
mysql -u root -p

mysql 設定檔 /etc/mysql/conf.d
修改資料庫編碼 文章連結

新增資料庫
mysql>create datebase db_name;

顯示所有資料庫
mysql>show datebases;

mysql 新增使用者與設定權限
以下為 mysql shell 內使用的命令
use mysql;
INSERT INTO user(host,user,password) VALUES('localhost','user_name',password('user_pwd'));
FLUSH PRIVILEGES;
GRANT ALL ON db_name.* TO 'user_name'@localhost IDENTIFIED BY 'user_pwd';
FLUSH PRIVILEGES;
以上為 mysql shell 內使用的命令

新增 django 專案
django-admin startproject my_proj

同步 django ORM model 到 mysql TABLE
cd my_proj
python3 manage.py makemigrations
python3 manage.py migrate

/etc/apache2/sites-available 下新增 my_proj.conf
<VirtualHost *:80>
 
    WSGIScriptAlias / /home/ubuntu/git_code/my_proj/my_proj/wsgi.py
    <Directory /home/ubuntu/git_code/my_proj/my_proj>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>

    Alias /static /home/ubuntu/git_code/my_proj/static
    <Directory /home/ubuntu/git_code/my_proj/static>
        Require all granted
    </Directory>
 
    WSGIDaemonProcess my_proj python-path=/home/ubuntu/git_code/my_proj:/usr/local/lib/python3.4/dist-packages
    WSGIProcessGroup my_proj
 
</VirtualHost>

套用 site 設定
sudo a2ensite my_proj.conf
sudo service apache2 reload

重啟 apache
sudo service apache2 restart

沒有留言: