詳解centos7+django+python3+mysql+阿里云部署項目全流程
(PS:本文假設(shè)你已經(jīng)在本地聯(lián)調(diào)好django和客戶端,只是需要將django部署到外網(wǎng))
購買阿里云服務(wù)器
到[阿里云官網(wǎng)],選擇輕量應(yīng)用服務(wù)器, 步驟如圖所示:



地域隨便選擇哪一個,鏡像的話,對比了CentOS,Debian,Ubuntu,我最終選擇了CentOS,因為流行嘛~配置的話,看項目本身了,我這里選擇的是1G內(nèi)存,20G硬盤最小配置,也夠用了。
配置python環(huán)境
進(jìn)入服務(wù)器
選擇好服務(wù)器并付費之后,點擊阿里云的控制臺-云計算基礎(chǔ)服務(wù)-輕量應(yīng)用服務(wù)器:
點擊CentOS服務(wù)器,進(jìn)入后,點擊右上角的遠(yuǎn)程連接,如圖所示:

安裝python3并與python2共存
CentOS 7.3 默認(rèn)安裝了python2.7.5 因為一些命令要用它比如yum 它使用的是python2.7.5。當(dāng)我們在命令行里輸入
python -V
就可以看到版本為2.7.5。
安裝python3
因為我們要安裝python3版本,所以python要指向python3才行,目前還沒有安裝python3,先備份,備份之前先安裝相關(guān)包,用于下載編譯python3
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
這幾個包必須得安裝,否則安裝python3時可能會出現(xiàn)各種錯誤.
運行下面兩個命令,進(jìn)行備份
cd /usr/bin mv python python.bak
安裝
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
解壓
tar -xvJf Python-3.6.3.tar.xz
切換進(jìn)入
cd Python-3.6.3
編譯安裝
./configure prefix=/usr/local/python3 make && make install
安裝完畢,/usr/local/目錄下就會有python3了
實現(xiàn)python3和python2的共存
添加python3的軟鏈
rm /usr/bin/python ln -s /usr/local/python3/bin/python3 /usr/bin/python
這時候在執(zhí)行命令python -v和python2 -V,應(yīng)該就能看到python3和python2的版本了。
因為執(zhí)行yum需要python2版本,所以我們還要修改yum的配置,執(zhí)行:
vi /usr/bin/yum
把#! /usr/bin/python修改為#! /usr/bin/python2

同理
vi /usr/libexec/urlgrabber-ext-down
文件里面的#! /usr/bin/python 也要修改為#! /usr/bin/python2
安裝django項目中需要的python相關(guān)包
安裝python相關(guān)包需要用到python中的pip命令,比如我項目中需要的包有:
pip install Django pip install PyMySQL pip install Scrapy pip install beautifulsoup4 pip install bs4 pip install lxml pip install numpy pip install requests pip install simplejson pip install urllib3
注意:在執(zhí)行命令pip install mysqlclient時會報錯,這里需要特別強(qiáng)調(diào)下,不然在后面運行需要連mysql的django項目時,會報do you install mysqlclient?
解決方法如下:
sudo python -m pip install mysqlclient
此時python所有需要的包,都已經(jīng)安裝好
安裝mysql
下載mysql源安裝包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安裝mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm yum install mysql-devel
安裝MySQL
yum install mysql-community-server
啟動MySQL服務(wù)
systemctl start mysqld
查看MySQL的啟動狀態(tài)
systemctl status mysqld
開機(jī)啟動
systemctl enable mysqld
修改root本地登錄密碼
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p
set password for 'root'@'localhost'=password('!2Qw32sd');
注意:mysql5.7默認(rèn)安裝了密碼安全檢查插件(validate_password),默認(rèn)密碼檢查策略要求密碼必須包含:大小寫字母、數(shù)字和特殊符號,并且長度不能少于8位。否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤
配置默認(rèn)編碼為utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加編碼配置,如下所示:
[mysqld] character_set_server=utf8 init_connect='SET NAMES utf8'
導(dǎo)入django和mysql數(shù)據(jù)庫
導(dǎo)入django項目
由于我項目放在碼云上面,然后CentOS又自帶git,我的數(shù)據(jù)庫文件也比較小,所以也放在django項目中了,用git下載下來:
sudo su root mkdir project cd project git clone https://gitee.com/dafeige/django-restframework-demo.git
此時,我的數(shù)據(jù)庫文件路徑是:project/django-restframework-demo/tutorial/test_python.sql,由于需要將此sql文件導(dǎo)入到mysql數(shù)據(jù)中,需要給此文件加權(quán)限:
chmod 777 project/django-restframework-demo/tutorial/test_python.sql
導(dǎo)入sql數(shù)據(jù)庫文件
進(jìn)入數(shù)據(jù)庫
mysql -u root -p
導(dǎo)入sql文件
create database test_python; use test_python; source project/django-restframework-demo/tutorial/test_python.sql;
部署django工程
進(jìn)入到工程中
sudo su root cd project/django-restframework-demo/tutorial python manage.py runserver 0.0.0.0:80 &
最后面的”&”,這符號表示在后臺運行該進(jìn)程。這里的IP地址如果用公網(wǎng)IP
會運行不了,而用0.0.0.0則外網(wǎng)和127.0.0.1都能夠訪問。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于Django URL傳參 FORM表單傳數(shù)據(jù) get post的用法實例
今天小編就為大家分享一篇基于Django URL傳參 FORM表單傳數(shù)據(jù) get post的用法實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Pygame實戰(zhàn)之實現(xiàn)經(jīng)典外星人游戲
這篇文章主要介紹了通過Pygame實現(xiàn)經(jīng)典的外星人游戲的示例代碼,文中的代碼講解詳細(xì),對我們了解Pygame有一定的幫助,感興趣的同學(xué)可以試一試2022-01-01
tensorflow創(chuàng)建變量以及根據(jù)名稱查找變量
這篇文章主要為大家詳細(xì)介紹了tensorflow創(chuàng)建變量以及根據(jù)名稱查找變量,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03
python中matplotlib條件背景顏色的實現(xiàn)
這篇文章主要給大家介紹了關(guān)于python中matplotlib條件背景顏色的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

