一,安裝軟件管理包和可能使用的依賴
yum -y groupinstall "Development tools"
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
二,下載和配置Pyhton3.7.0
1.下載Pyhton3.7.0到/usr/local 目錄并解壓
cd /usr/local
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
tar -zxvf Python-3.7.0.tgz
2.進(jìn)入 Python-3.7.0路徑,編譯安裝到指定路徑,依次執(zhí)行以下命令
cd /usr/local/Python-3.7.0
./configure --prefix=/usr/local/python3
make
make install
3.安裝完成之后 建立軟鏈接 添加變量 方便在終端中直接使用python3
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3
4.Python3安裝完成之后pip3也一塊安裝完成,不需要再單獨(dú)安裝,同樣給pip3建立軟鏈接
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
5.查看python3與pip3安裝情況

三,安裝virtualenv ,方便不同版本項(xiàng)目管理。
1.安裝virtualenv
pip3 install virtualenv
2.建立軟連接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
3.安裝成功在根目錄下建立兩個文件夾,主要用于存放env和網(wǎng)站文件的。
mkdir -p /data/env
mkdir -p /data/web
4.進(jìn)入到/data/env/下,創(chuàng)建指定版本的虛擬環(huán)境,創(chuàng)建完虛擬環(huán)境后進(jìn)入/data/env/pyweb/bin里啟動虛擬環(huán)境
virtualenv --python=/usr/bin/python3 pyweb
source activate #啟動虛擬環(huán)境
deactivate #退出虛擬環(huán)境
5.出現(xiàn)(pyweb),說明是成功進(jìn)入虛擬環(huán)境。

四.本地項(xiàng)目遷移到服務(wù)器
1.Django項(xiàng)目配置修改
我們需要把原先的Django項(xiàng)目進(jìn)行修改才能更好地進(jìn)行項(xiàng)目遷移工作,首先需要修改的是 settings.py 文件。
由于項(xiàng)目上線之后不能讓用戶看到后臺的運(yùn)行邏輯,所以我們要把 DEBUG 改成 False ,把 ALLOWED_HOSTS 寫成‘*’,這樣是為了允許從不同主機(jī)進(jìn)行訪問。

由于linux中如果不加這句可能會出現(xiàn)文件找不到的情況,所以我們要把模板的路徑進(jìn)行拼接。

2.項(xiàng)目環(huán)境打包
首先我們需要把Django環(huán)境進(jìn)行打包。在pycharm里面Terminal根路徑中輸入pip freeze >packge.txt,把當(dāng)前項(xiàng)目的環(huán)境依賴包導(dǎo)出到packge.txt文件中


3.通過FileZilla把本地項(xiàng)目上傳到服務(wù)器對應(yīng)的/data/web/文件夾里面

4.進(jìn)入虛擬環(huán)境然后進(jìn)入項(xiàng)目路徑安裝packge.txt里的依賴包。
pip3 install -r packge.txt

安裝mysqlclient時出現(xiàn)OSError: mysql_config not found錯誤,時因?yàn)樵蚴莑inux需要mysql相關(guān)的一些依賴包,安裝以下依賴
yum install mysql-devel gcc gcc-devel python-devel
再重新執(zhí)行一下:pip3 install -r packge.txt
五.安裝和配置mariadb
1.下載mariadb
yum install -y mariadb mariadb-server
systemctl start mariadb #啟動mariadb
systemctl enable mariadb #開機(jī)啟動mariadb
2.設(shè)置mariadb的root初始密碼
mysql -u root -p #進(jìn)入mysql
#第一次進(jìn)入提示輸入密碼,直接按回車,進(jìn)去后設(shè)置初始密碼
set password=password('newpassword') #設(shè)置初始密碼為newpassword
show databases; #查詢?nèi)繑?shù)據(jù)庫
create database snbank; #創(chuàng)建snbank數(shù)據(jù)庫
use snbank; #進(jìn)入snbank數(shù)據(jù)庫
SHOW VARIABLES LIKE 'character%'; #查詢字符集
3.配置mariadb字符集,防止中文亂碼
修改的配置文件位于 /etc/my.cnf.d目錄下的client.cnf文件:
在[client]字段里加入
default-character-set=utf8
修改的配置文件位于 /etc/my.cnf.d目錄下的server.cnf文件:
在[mysqld]字段里加入
character-set-server=utf8
SHOW VARIABLES LIKE 'character%'; #查詢字符集,修改后的結(jié)果是:

六.安裝和配置uwsgi
1.安裝uwsgi
注意:uwsgi要安裝兩次,先在系統(tǒng)里安裝一次,然后進(jìn)入對應(yīng)的虛擬環(huán)境再安裝一次
pip3 install uwsgi #退出虛擬環(huán)境deactivate
給uwsgi建立軟鏈接,方便使用
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
2.配置uwsgi
①XML格式的配置文件
我們網(wǎng)站項(xiàng)目路徑是 /data/web/snbank/,在項(xiàng)目根目錄下創(chuàng)建snbank.xml文件,輸入如下內(nèi)容:
<uwsgi>
<socket>127.0.0.1:8997</socket> <!-- 內(nèi)部端口,自定義 -->
<chdir>/data/web/snbank/</chdir> <!-- 項(xiàng)目路徑 -->
<module>snbank.wsgi</module> <!-- mysite為wsgi.py所在目錄名-->
<processes>4</processes> <!-- 進(jìn)程數(shù) -->
<daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>
#啟動uwsgl
uwsgi -x snbank.xml
#uwsgi有沒有啟動成功,可以用下面的命令查看
ps -ef|grep uwsgi
#如果想重啟uwsgi,先使用下面的命令殺掉進(jìn)程,再啟動uwsgi
killall -9 uwsgi
七.安裝和配置nginx
1.安裝nginx
1.進(jìn)入home目錄,下載nginx
cd /home/
wget http://nginx.org/download/nginx-1.13.7.tar.gz
2.解壓下載的nginx
tar -zxvf nginx-1.13.7.tar.gz
3.進(jìn)入解壓后的nginx-1.13.7文件夾,編譯安裝nginx:
./configure
make
make install
4.nginx一般默認(rèn)安裝好的路徑為/usr/local/nginx在/usr/local/nginx/conf/中先備份一下nginx.conf文件,以防意外。
cp nginx.conf nginx.conf.bak
進(jìn)入nginx.conf,把原來的內(nèi)容刪除,直接加入以下內(nèi)容:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name www.django.cn; #改為自己的域名,沒域名修改為127.0.0.1:80
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8997; #端口要和uwsgi里配置的一樣
uwsgi_param UWSGI_SCRIPT snbank.wsgi; #wsgi.py所在的目錄名+.wsgi
uwsgi_param UWSGI_CHDIR /data/web/snbank/; #項(xiàng)目路徑
}
location /static/ {
alias /data/web/snbank/static/; #靜態(tài)資源路徑
}
}
}
5.進(jìn)入/usr/local/nginx/sbin/目錄
執(zhí)行./nginx -t命令先檢查配置文件是否有錯,沒有錯就啟動nginx:
./nginx #啟動nginx
./nginx -s reload #重啟nginx
八.啟動項(xiàng)目
在瀏覽器輸入ip地址
