更新系統軟件源css
sudo apt-get update
python
pip3安裝
mysql
sudo apt install python3-pip
nginx
安裝virtualenvwrappergit
pip3 install virtualenvwrapper
redis
修改.bashrc,最後面添加如下代碼:sql
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
數據庫
source /usr/local/bin/virtualenvwrapper.sh
vim
從新加載配置瀏覽器
source ~/.bashrc
建立虛擬環境
mkvirtualenv 虛擬環境名
進入虛擬環境
workon 虛擬環境名
退出虛擬環境
deactivate
安裝mysql
sudo apt-get install mysql-server
安裝mysql驅動 sudo apt-get install libmysqlclient-dev
設置mysql容許遠程訪問,方便使用navicat導入數據.首先編輯文件/etc/mysql/mysql.conf.d/mysqld.cnf
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
註釋掉bind-address = 127.0.0.1: #容許遠程鏈接
進入mysql,修改root密碼
mysql>set password for root@localhost = password('123');
建立普通用戶
create user 'username'@'%' IDENTIFIED BY 'password';
給普通用戶賦權
grant all on *.* to username@'%';
刷新
flush privileges;
退出
exit
重啓mysql
service mysql restart
安裝redis
sudo apt-get install redis-server
修改redis配置
使用redis的訪問帳號
sudo vi /etc/redis/redis.conf
#取消註釋requirepass
requirepass 密碼
容許遠程訪問
#註釋bind
# bind 127.0.0.1
重啓redis
sudo /etc/init.d/redis-server restart
桌面建立新目錄Project
mkdir Project
在項目中建立項目依賴包文件
pip freeze > package.txt
上傳項目到Project,或者進入Project使用git克隆
scp -r 本地項目目錄 root@服務器IP:/root/Project
git clone 項目地址
安裝依賴包
pip install -r package.txt
進入項目修改settings文件
將mysql帳號密碼修改爲服務器的
修改ALLOWED_HOSTS = ['*']
# 測試以前先將項目用到數據導入數據庫,否則確定報錯
測試可否正常運行,而後瀏覽器訪問服務器地址
python3 manage.py runserver 0.0.0.0:80
安裝uwsgi
sudo pip3 install uwsgi
在manage.py同級目錄下建立uwsgi.ini文件
vim uwsgi.ini
編輯內容以下
[uwsgi] #若是單獨使用uwsgi來部署Django項目時,就用這一行。 http=0.0.0.0:80 #若是使用nginx+uwsgi來部署Django項目時,就用這行。 # socket=127.0.0.1:8080 # 和nginx鏈接的端口 #你項目的完整路徑。 chdir=/root/Project/MyProject #給socket文件賦權限,這裏不用管。 # chmod-socket=664 #啓用主線程。 master=true processes=4 threads=2 #指定日誌文件(會自動建立)。這個很重要,若是uwsgi出現錯誤,能夠經過日誌文件來查錯。 logto=uwsgi.log #指定進程號文件(會自動建立)。這個也很重要,若是要重啓和關閉uwsgi,則須要這個文件,裏面記錄了進程號。 pidfile=uwsgi.pid #指定wsgi文件。在與settings.py同級目錄中會有一個wsgi.py文件。 module=MyProject.wsgi:application
保存退出後啓動uwsgi,若是報錯請查看日誌文件
uwsgi --ini uwsgi.ini
安裝nginx
sudo apt-get nginx
進入/etc/nginx/備份nginx.conf
sudo cp nginx.conf nginx.conf.bak
刪除nginx.conf,從新建立nginx.conf,內容以下:
events { worker_connections 1024; # 不用管 } http{ server { listen 80; #這個端口用來監聽瀏覽器的請求。 server_name 0.0.0.0; # 不用管,若是有域名能夠填上域名。 charset UTF-8; #日誌文件。若是nginx出現問題,均可以經過日誌文件來查錯。 access_log /var/log/nginx/MyProject_access.log; error_log /var/log/nginx/MyProject_error.log; client_max_body_size 75M; location / { include uwsgi_params; # 使用uwsgi服務器。 uwsgi_pass 127.0.0.1:8080; # 把瀏覽器發來的請求轉發到8001端口,而uwsgi也正在監聽8001端口,因此就實現了nginx與uwsgi的通訊。 uwsgi_read_timeout 30; #連接超時時間 } location /static/{ # 處理靜態文件,處理連接是以/static/開頭的請求。 alias /usr/DjangoProject/MyProject/static/; # 項目靜態文件的絕對路徑。 } } }
最後
修改uwsgi.ini文件,把http=0.0.0.0:80註釋掉,使用socket=127.0.0.1:8080
輸入:uwsgi -d --ini uwsgi.ini # 啓動uwsgi服務器。-d表示在後臺運行。這樣就不會佔用當前窗口了。
輸入:/etc/init.d/nginx start # 啓動nginx
瀏覽器訪問