Django部署第一個Windows項目到阿里雲服務器Ubuntu16.04

這是我的第一個Demo級別的Django項目,僅用到Python3.7.0+Django2.2.2+Mysql5.7

首先安裝阿里雲的環境

1.阿里雲安裝Python 3.7.0

1.1安裝編譯環境

sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev

1.2下載安裝包

wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

說不出話,學生機9.5/月網速慢,可以windows下載完直接傳過去,但是上傳也只有100k/s,不說了

1.3解壓

tar -xvzf Python-3.7.0.tgz

1.4 配置安裝位置

進入python3.7.0目錄,執行./configure --prefix=/usr/bin/python3.7

1.5編譯及安裝

sudo make && sudo make install

1.6設置python3.7.0版本爲默認python

sudo rm /usr/bin/python

 sudo ln -s /usr/bin/python3.7/bin/python3.7 /usr/bin/python

1.7驗證  直接輸入python

 

2.阿里雲安裝Django 

2.1升級pip3

進入到/usr/bin/python3.7/bin需要升級一下pip3方可使用,使用如下命令進行升級。

sudo /usr/bin/python3.7/bin/pip3 install –upgrade pip

上面這條可能會報錯,執行這條命令:pip install --upgrade pip

 

現在需要更改pip3配置

vim pip3

改下面圈起來的2個地方

輸入pip -V ,顯示是安裝在python3.7下,成功。

如下圖,就成功:

 

2.2接下來安裝Django

sudo /usr/bin/python3.7/bin/pip3 install Django

使用python3.7測試一下,發現也是安裝Django成功了。

 

3.阿里雲安裝Mysql

剛收到短信,就10元買了阿里的RDS,也就是雲Mysql。但是以後續費有點貴,還是自己在服務器上裝個,省錢。

3.1安裝mysql命令

sudo apt-get install mysql-server

sudo apt install mysql-client

sudo apt install libmysqlclient-dev

 

3.2.安裝成功後可以通過下面的命令測試是否安裝成功

sudo netstat -tap | grep mysql

 

3.3.現在已經啓動mysql,進入mysql

mysql -uroot -p123456

出現以下錯誤

mysql: [Warning] Using a password on the command line interface can be insecure.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 

解決方案:

①找到mysql的安裝目錄,我的是在/etc/mysql/mysql.conf.d ,該文件夾下有個mysqld.cnf文件,使用管理員權限編輯:sudo vim mysqld.cnf,然後在文件最後一行加入:skip-grant-tables ,然後保存退出(大概就是跳過驗證的意思吧)

root@dev:/etc/mysql/mysql.conf.d# vim mysqld.cnf

在文件最後一行加入:skip-grant-tables

 

②要重啓mysql服務

Service mysql restart

接下來用空密碼進入mysql管理命令行,切換到mysql庫,直接命令:mysql  回車即可進入mysql命令模式,然後就是修改下root密碼(其他用戶也一樣,只是權限不一樣),修改密碼語句如下:

root@dev:/etc/mysql/mysql.conf.d# mysql

mysql> update mysql.user set authentication_string=password('密碼') where user='root' and Host ='localhost';

Query OK, 1 row affected, 1 warning

 

然後刷選配置,使之立即生效:

mysql> flush privileges;

接着退出mysql命令行模式;

mysql> quit;

Bye

 

④下一步便是把剛纔我們改的mysqld.cnf文件,把剛纔加入的那一行註釋或者刪除:skip-grant-tables ,保存退出。

⑤然後就可以用mysql -u root -p 登錄了。

 

3.4Window Navicat連接liunx Mysql

①默認安裝的mysql沒有外部訪問權限,所以需要開啓訪問權限

grant [權限] on [數據庫名].[表名] to ['用戶名']@['web服務器的ip地址'] identified by ['密碼']; "%" 表示所有    10.0.0.1這樣格式的ip地址 10-0-0-1

root@dev:/etc/mysql/mysql.conf.d# mysql -uroot -proot

mysql>grant all on *.* to 'root'@'%' identified by '密碼';

mysql> flush privileges;

 

②root@dev:/etc/mysql/mysql.conf.d# vim mysqld.cnf

將bind-address=127.0.0.1註釋掉

特別注意:阿里雲服務器開放3306端口! 通過添加安全組規則,開放3306端口

 

至此,環境搭建完畢。現在需要把windows的Django部署到linux。

4.部署

1.修改django項目一些配置setting.py

Debug改不改都可以,因爲我們的項目是自己的,不怎麼對外。

DEBUG是調試模式,開發推薦DEBUG=True,而項目上線必須DEBUG=Flase

 

ALLOWED_HOSTS=['*']必須改,*任何表示該機器的地址都可以訪問當前項目

如果允許被其他機器訪問的話,啓動服務時,必須使用以下方式:

 python manage.py runserver 0.0.0.0:端口號

 

2.生成依賴包

pip -r freeze > requirements.txt

3.將windows項目上傳到linux

 

4.進入項目文件夾,安裝依賴包

pip install -r requirements.txt

5.將windows的數據庫的表導入到linux對應的數據庫表上

我這裏採用了navicat

6.修改mysql的錯誤

運行的時候會出現以下錯誤

是因爲Mysql5.7版本不兼容問題

 

解決方案:

進入/usr/bin/python3.7/lib/python3.7/site-packages/django/db/backends/mysql目錄

將python安裝路徑下的base.py的 if version 註釋掉:

vim base.py

將python安裝路徑下的operations.py的146行的decode改爲encode

vim operations.py  

 

7.運行

進入項目中,

輸入python  manage.py runserver 0.0.0.0:端口號

我這裏是端口號給了80,直接輸入ip地址就可以訪問。

 

5.終於完成了,開心

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章