pycharm部署django項目到雲服務器的詳細流程
前言
大傢想一想,如果要在一臺電腦上運行python程序需要些什麼工具呢?
顯而易見,我們需要在電腦上安裝python應用,配置python環境等等。那麼如果我們需要在雲服務器上運行python程序的話要怎麼做呢?相信大傢已經想到瞭,就是照葫蘆畫瓢,在雲服務器上做相同的工作就好瞭。
1-下載python3.8壓縮包
1.1 操作系統
centos7.9 64位
1.2 下載python3.8 安裝包
使用如下命令下載python 3.8:
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
如果提示-bash: wget: 未找到命令,需要先使用yum安裝wget,命令如下:
yum -y install wget
安裝完成後在secure fx可以查看解壓包的位置
2-解壓縮安裝包
2.1 通過以下命令解壓縮下載的文件:
tar zxf Python-3.8.0.tgz
2.2 輸入cd / 然後再輸入ls 可得到如下結果:
說明已經解壓成功
3-安裝依賴工具
因為編譯 Python 源代碼需要依賴於很多工具,所以得先準備一下,依次執行以下命令:
yum update -y yum groupinstall -y ‘Development Tools' yum install -y gcc openssl-devel bzip2-devel libffi-devel
4-安裝python3.8
4.1 進入解壓包解壓後的文件位置:
在centos中輸入:cd /Python-3.8.0
4.2 配置安裝路徑:
執行如下命令:
1 ./configure prefix=/usr/local/python3 –enable-optimizations
–enable-optimizations是優化選項(LTO,PGO 等)加上這個 flag 編譯後,性能有 10% 左右的優化,但是這會明顯的增加編譯時間。
溫馨提示:–enable-optimizations 該語句可能導致之後安裝報錯:Could not import runpy module 個人建議最好將其刪除
原因是:在低版本的gcc版本中帶有–enable-optimizations參數時會出現上面問題
gcc 8.1.0修復此問題
4.3 開始安裝:
./configure命令執行完畢之後創建一個文件 Makefile, 供下面的make命令使用,執行make install之後就會把程序安裝到我們指定的文件夾中去。
2 make && make install
如果出現瞭Could not import runpy module 先檢查有沒有按我上面說的刪除–enable-optimizations,再者就是應該是安裝依賴工具的時候出錯瞭
如果出現如下錯誤,則接著看下面的解決方法
Error Downloading Packages
文章轉自https://www.cnblogs.com/twobrother/p/11577636.html
解決方法如下:
yum出現Error downloading packages錯誤
錯誤表現方式:
yum可以list,可以clean cache,但是無法安裝,錯誤提示:
Downloading packages:
Error downloading packages:
libevent-devel-2.0.21-4.el7.x86_64: [Errno 5] [Errno 2] 沒有那個文件或目錄
libevent-2.0.21-4.el7.x86_64: [Errno 5] [Errno 2] 沒有那個文件或目錄
錯誤出現原因:
安裝python3修改軟鏈接,沒有完全修改導致
[root@duke ~]# mv /usr/bin/python /usr/bin/python2.6.6 [root@duke ~]# ln -s /usr/local/bin/python3.6 /usr/bin/python [root@duke ~]# vi /usr/bin/yum
將文件頭部的
#!/usr/bin/python
改成
#!/usr/bin/python2.6.6
改過之後發現yum可以list,可以clean cache,但是無法安裝。
錯誤解決:
把下載器中的python也修改對應的版本
[root@duke ~]# vi /usr/libexec/urlgrabber-ext-down
將文件頭部的
#!/usr/bin/python
改成
#!/usr/bin/python2.6.6
5-修改python2軟鏈接
軟鏈接其實就相當於我們常用的電腦主機的快捷方式
阿裡雲服務器的centos中會自帶一個python2.7.5,而默認的python路徑也是python2.7.5,如果要用到我們剛才安裝的pyhton3.8的話就要修改軟鏈接。
我們首先查看一下 Python 可執行文件的位置:
which python
然後切換到相應的目錄:
cd /usr/bin
查看相關的python信息:
ls -la python*
發現當我們執行python 命令時,系統指向python 2,然後python 2指向python 2.7,所以系統默認使用的python版本仍然是python 2。
首先將python 改名為 python.bak
mv python python2.bak
再次查看python相關信息:
6-修改yum配置文件
進入目錄/usr/bin,查看有關yum的文件:
ls -la yum*
使用vi 進入文本編輯器(如果有多個yum配置文件,都要進去修改):
vi yum
點擊i進入編輯模式之後將#!/usr/bin/python 改為#!/usr/bin/python2,按ESC退出編輯模式,輸入:wq!保存修改退出。
同樣進入文件 /usr/libexec/urlgrabber-ext-down 做同樣修改。
7-配置python
3、pip3軟鏈接
7.1配置python3軟鏈接
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python ls -la python*
配置後結果
7.2 配置pip3軟鏈接
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip ls -la pip*
因為python3中是自帶pip3的,如果沒有的話執行如下步驟就行瞭
1.安裝源
yum -y install epel-release
2.安裝pip
yum install python-pip
3.對安裝好的pip進行升級
pip install –upgrade pip (註意是兩個短橫線~~)
如果你打完代碼後,再次查看軟鏈接情況發現它在閃爍的話,說明沒有鏈接成功。
這個時候大部分原因是鏈接的路徑有問題,不清楚centos文件路徑的同學可以下載securefx來直觀地瞭解文件位置,其中要創建軟鏈接要遵守這個規則 ln -s [源文件] [軟鏈接文件]
8-檢驗配置結果
在服務器中輸入 python –version和pip -V
結果如下:
到瞭這一步的話,你的python環境已經在服務器上搭建完成瞭,接下來就是將我們的django項目上傳到服務器中。
9-上傳並部署Django項目
9.1 將Django打包上傳到SecureCRT
先吧自己的Django項目整成壓縮包,然後在 SecureFx中新建一個名為Sever的文件夾,將壓縮包丟進去,就像這樣
依次執行下列語句獲取rar解壓方法
wget http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz tar -xf rarlinux-x64-5.3.0.tar.gz cd rar make
rar x test.rar //解壓 test.rar 到當前目錄
為瞭後面方便更改代碼,這裡我們辛苦一點在Pycharm中同步部署我們的Django項目
步驟如下:
1、在“工具(Tools)”菜單中找到“部署(Deployment)”選項,選擇子菜單中的“配置(Configuration…)”選項。
2、在部署(Deployment)窗口中點擊加號(+)按鈕,設置服務器配置的名稱和類型(選擇SFTP)
3、在配置界面的“連接(Connection)”設置中,分別添加:服務器IP地址、端口(默認22)、服務器中存放源碼的目錄以及登錄服務器的賬號名稱與密碼
提示:完成配置之後,點擊“測試SFTP連接(Test SFTP connection…)”按鈕進行服務器連接測試,保證配置正確
4、然後,切換到“映射(Mappings)”的設置,選擇本地源碼所在目錄以及服務器上傳源碼的目錄。
5、在選項設置中,我們選擇自動將修改內容上傳服務器的操作,這裡我們可以選擇“明確的保存動作(On explicit save action)”。也就是說當我們按下快捷鍵“Ctrl+S”時,系統會自動上傳修改內容到服務器。
6、好瞭,到這一步你的Pycharm就已經和雲服務器連接起來瞭,你可以在本地修改代碼以及在終端運行代碼後會自動同步至雲服務器上。
好瞭,經過上面這麼繁瑣的操作後,你已經完成瞭80%瞭,加油,勝利快到瞭。
9.2 安裝Django
pip3 install django
安裝好瞭後進入python,輸入下圖語句可以查看django的版本
9.3 安裝uwsgi
pip3 install uwsgi
安裝成功後輸入uwsgi是這個樣子
給uwsgi建立軟鏈接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
9.4 配置Django項目
本博主使用到的項目已經是連接到Mysql中並且建立好數據庫的瞭,不懂怎麼連接與配置mysql的同學可以新開一個網頁去搜一下,在這裡我就不做過多的說明瞭。
9.4.1數據庫遷移
這個步驟博主遇到的錯誤非常之多,希望你們可以一次遷移成功吧。
首先要到我們的服務器存放的路徑下,我的服務器存放的路徑是 cd /Server/GroupProject
然後依次運行
python manage.py makemigrations python manage.py migrate
因為我之前遇到的問題太多,我現在也記不太起來瞭,主要是1054 1366這幾個錯誤,遇到瞭也不要慌CSDN都能找到解決方法,總得來說報錯一般是你在一開始建立數據庫的時候沒有設置中文,而你卻在建表的時候設置瞭中文,這個時候如果你的Django裡邊有中文字段的話就會報錯,所以說如果你想要讓數據庫全中文支持的話,最好重新建一個數據庫的同時設置中文,這樣就基本不會有問題瞭。
附上建庫同步設置中文方法:
mysql:CREATE DATABASE 數據庫名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
再不行的話試試這樣:
vi /etc/my.cnf
文本添加內容
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server=utf8_general_ci character-set-server=utf8 init-connect=‘SET NAMES utf8'
另外,不要忘記在pycharm主項目中的setting中添加這個,目的是所有ip都可以訪問。
9.4.2 安裝nginx
安裝解壓包 wget http://nginx.org/download/nginx-1.13.7.tar.gz
解壓 tar -zxvf nginx-1.13.7.tar.gz
依次執行以下命令:
cd nginx-1.13.7 ./configure make make install
註意:nginx一般默認安裝好的路徑為/usr/local/nginx
配置nginx
vim /etc/nginx/nginx.conf
添加以下內容
9.5 運行Django項目
好瞭到瞭這個時候你已經可以通過ip來打開我們的Django項目瞭。
博主的實例是一個Django自帶的admin後臺,可以方便直觀地檢測我們項目是否正常運行。
首先進入項目路徑 cd /Server/GroupDjango
然後輸入 python manage.py runserver 0.0.0.0:8000
註意!! 這裡的python指的是之前我們軟鏈接指向的路徑,我這裡是用python指向python3.8這個應用的,如果報錯的話,可以回去看看軟鏈接設置的對不對。
最後,成功運行後的結果如下
我們可以通過http:// 服務器ip地址:8000/admin/來訪問admin後臺
如果還需要
到此這篇關於pycharm部署django項目到雲服務器的詳細流程的文章就介紹到這瞭,更多相關pycharm部署django到雲服務器內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 教你如何快速在CentOS7中安裝Nginx
- centos+nginx+uwsgi部署django項目上線
- Centos環境部署django項目的全過程(永久復用)
- centos8安裝nginx1.9.1的詳細過程
- Linux上搭載Nginx負載均衡配置使用案例詳解