Django安裝筆記-安裝
===
### 1. 安裝SSH server ([ubuntu SSH遠端安全連線安裝及設定](http://blog.udn.com/nigerchen/2262865))、文字編輯器
```
sudo apt-get install openssh-server
sudo apt-get install vim
```
### 2. 安裝Apache2
```
sudo apt-get install -y apache2 libapache2-mod-wsgi-py3
```
### 3. 安裝MySQL
```
sudo apt-get update
sudo apt-get install -y mysql-server
sudo mysql_secure_installation
```
### 4. 下載空專案,可參考[「學習日誌」架設-apache2-4-ssl-django2-wsgi-on-ubuntu-自簽環境](https://mks.tw/2668/%E3%80%8C%E5%AD%B8%E7%BF%92%E6%97%A5%E8%AA%8C%E3%80%8D%E6%9E%B6%E8%A8%AD-apache2-4-ssl-django2-wsgi-on-ubuntu-%E8%87%AA%E7%B0%BD%E7%92%B0%E5%A2%83)
```
git clone https://github.com/aken830806/django-empty-project.git
```
### 5. 安裝Python3
```
sudo apt-get -y install zlib* libssl-dev
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
xz -d Python-3.6.3.tar.xz
tar -xvf Python-3.6.3.tar
cd Python-3.6.3/
./configure --with-ssl
make
sudo make install
```
安裝Python3可能遇到的問題:
* [Ubuntu16.04LTS上安装Python3.6.3](https://blog.csdn.net/BruceLeeNumberOne/article/details/78398927)
* [python3 ssl module問題](https://stackoverflow.com/questions/41328451/ssl-module-in-python-is-not-available-when-installing-package-with-pip3)
* [no acceptable C compiler found in $PATH when installing python - Stack Overflow](https://stackoverflow.com/questions/19816275/no-acceptable-c-compiler-found-in-path-when-installing-python)
`sudo apt-get install -y build-essential`
### 6. 建立虛擬環境
```
sudo apt install -y virtualenv
virtualenv -p python3 venv //venv為虛擬環境名稱
```
* OSError: Command /root/flasky/venv/bin/python2 - setuptools pkg_resources pip wheel failed with error 2:
`reboot`
==以下pip皆在虛擬環境內安裝==
### 7. 安裝django2
```
pip install django
```
### 8. 安裝pymysql
這邊以Django2.2分為兩種裝法
1. Django < 2.2([python3+Django2.0.2環境下配置MySQL](https://blog.csdn.net/ins_s/article/details/79419274))
```
sudo apt-get install -y python3-mysqldb
pip install pymysql
```
**`Setting.py`加入**
```
import pymysql
pymysql.install_as_MySQLdb()
```
2. Django >= 2.2
```
sudo apt-get install -y libmysqlclient-dev
pip install mysqlclient
```
:::info
ubuntu 16.04安裝apache2+django2.2+mysqlclient有問題
:::
### 9. 安裝Pillow(Python Imaging Library)(可選)
```
pip install Pillow
```
*ImportError: cannot import name '_imaging'
```
sudo apt install python3-pil
```
### 10. 修改`settings.py`
```
ROOT_URLCONF = 'MyProject.urls'
WSGI_APPLICATION = 'MyProject.wsgi.application'
```
### 11. 修改`manage.py`
```
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MyProject.settings")
```
### 12. 修改`wsgi.py`
```
os.environ["DJANGO_SETTINGS_MODULE"] = "MyProject.settings"
sys.path.append('/home/<User_Name>/venv/env/lib/python3.6/site-packages')
```