1. 程式人生 > >阿里雲部署Django詳細過程

阿里雲部署Django詳細過程

一.Centos7下部署django專案

1.關閉 iptables 和 selinux(此步驟是為了不影響專案的上傳,iptables 與selinux是美國安全域性研發的一種安全機制,會阻止檔案的上傳)

# su - root

# service iptables stop

# setenforce 0

# vi /etc/sysconfig/selinux修改SELINUX=disable

2.新增本地 host DNS

# vi /etc/hosts

127.0.0.1    django.example.com

3.安裝 python3.6.5 源及依賴包

# yum install epel-release -y

# yum groupinstall "Development tools" -y

# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel zx-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel -y

4.編譯安裝 python3.6.5 以及 pip package manager

# wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz --no-check-certificate

# tar xf Python-3.6.5.tar.xz

# cd Python-3.6.5

# ./configure --prefix=/usr/local --with-ensurepip=install --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"

# make && make altinstall

5.安裝 virtualenv

# pip3.6 install virtualenv

6.配置 Django virtualenv

# mkdir -p /var/www/html/django

# cd /var/www/html/django

# virtualenv -p /usr/local/bin/python3.6 .py3env(.py3env是django執行的虛擬環境,此資料夾可以自己命名)

7.開啟 virtualenv python3 環境

# source .py3env/bin/activate

8.在此環境安裝 Django 相關模組

# pip install django pymysql

9.安裝 apache package(這裡應該注意,安裝apache伺服器應該在虛擬機器上安裝,不應該在virtualenv python3 環境,否則django專案只能在此環境下執行)

#deactivate

# yum install httpd httpd-devel -y

10.安裝 mod_wsgi for python3(這裡應該在virtualenv python3 環境下安裝)

#source .py3env/bin/activate

# pip install mod_wsgi

11.配置 apache 配置檔案

# vi /etc/httpd/conf/httpd.conf

 

末行新增:

LoadModule wsgi_module "/usr/lib64/httpd/modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so"

# vi /etc/httpd/conf.d/django.conf(在此步驟,需要更改一些檔案)

Alias /static /var/www/html/django/static<Directory /var/www/html/django/static>Require all granted</Directory>

<Directory /var/www/html/django/myproject>

 <Files wsgi.py>

   Require all granted

 </Files></Directory>

WSGIPythonHome "/var/www/html/django/.py3env"

Listen 8080<VirtualHost *:8080>

ServerName django.example.com

WSGIDaemonProcess myproject python-path=/var/www/html/django/.py3env/lib/python3.6/site-pachagesWSGIScriptAlias / /var/www/html/django/myproject/wsgi.py

</VirtualHost>

12.重啟 apache 並設定開機自啟動

# systemctl restart httpd

# systemctl enable httpd

13.保證 virtualenv python3 環境開啟,確保專案在此環境下執行

# source /var/www/html/django/.py3env/bin/activate

 

14.將專案中的靜態檔案收集

#python manage.py collectstatic

15。修改wsgi入口檔案

# vi myproject/wsgi.py(此處,應把myproject改為自己專案,)

 

16.資料庫表生成

# python manage.py makemigrations

# python manage.py migrate

17.新增ALLOWED_HOSTS

# vi myproject/settings.py

ALLOWED_HOSTS = ['django.example.com'](django.example.com是一個域名,可以改為自己的IP,也可以改為*,即所有網址都可以訪問)

18.修改專案屬主和許可權

# chmod -R 755 /var/www/html

# chown -R apache:apache /var/www/html

 

二.Centos7安裝MySQL8.0

https://blog.csdn.net/su_xingyu/article/details/80287740

 

三.Apache部署django專案,連線MySQL資料庫設定

 

centos中專案連線mysql資料庫進行遷移時,提示需要安裝mysqlclient,
如果直接pip install mysqlclient時會報錯,此時需要先安裝yum install mysql-devel,
pip install mysqlclient,另外,在你的專案中的__init__.py檔案中需要新增
import pymysql
pymysql.install_as_MySQLdb()