阿里雲部署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()