本文章的前提是django項(xiàng)目調(diào)試已經(jīng)完成
環(huán)境配置
-
安裝nginx
sudo apt-get install nginx
-
安裝uwsgi
sudo apt-get install libpython3.6-dev
pip install uwsgi
數(shù)據(jù)庫修改字符集(方便插入中文)
修改mysql的配置文件
cd /etc/mysql/mysql.conf.d
sudo cp mysql.cnf mysql.cnf.bak # 修改前先備個(gè)份
sudo vim mysql.cnf
在[mysqld]下增加一句:
character_set_server = utf8
保存并重啟服務(wù)
sudo systemctl restart mysql.service #重啟服務(wù)
Nginx 配置
include /etc/nginx/sites-enabled/*;
-
配置文件
到/etc/nginx/sites-available 下寫配置文件
cd /etc/nginx/sites-available
復(fù)制新建一個(gè)站點(diǎn)配置文件
sudo cp default your.example.com.conf
sudo vim your.example.com.conf
開始配置
server { listen 80; server_name blog.19950314nina.top; charset utf-8; client_max_body_size 75M; location /static { # 注意靜態(tài)文件路徑配置 alias /home/guoxd/temp/myblog/; } location / { include /etc/nginx/uwsgi_params; # uwsgi_params的>位置, 否則域名無>法訪問, 一般與nginx默認(rèn)配置目錄同級 uwsgi_pass 127.0.0.1:8000; # 端口與uwsgi一致 } }因?yàn)槭嵌嗾?在這里再寫一個(gè)站點(diǎn)配置
sudo cp default your.example2.com.conf
sudo vim your.example2.com.conf
開始配置
server { listen 80; server_name bt.19950314nina.top; charset utf-8; client_max_body_size 75M; location /static { # 注意靜態(tài)文件路徑配置 alias /home/guoxd/temp/bt/; } location / { include /etc/nginx/uwsgi_params; # uwsgi_params的>位置, 否則域名無>法訪問, 一般與nginx默認(rèn)配置目錄同級 uwsgi_pass 127.0.0.1:8001; # 端口與uwsgi一致 } }創(chuàng)建存放靜態(tài)文件的文件夾,先創(chuàng)建好,接下來會(huì)用到
mkdir -p /home/guoxd/temp/bt
mkdir -p /home/guoxd/temp/myblog
到sites-enabled文件夾,創(chuàng)建軟連接,使配置生效
cd /etc/nginx/sites-enabled
sudo ln -s /etc/nginx/sites-available/your.example.com.conf your.example.com.conf
sudo ln -s /etc/nginx/sites-available/your.example2.com.conf your.example2.com.conf
-
Nginx的使用
sudo nginx -t #對nginx配置是否正確進(jìn)行測試
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful # 輸出這兩句,說明配置沒問題sudo nginx -s reload # 重啟服務(wù) 修改完配置,重啟后生效
到這里nginx里的站點(diǎn)配置完成
Uwsgi 配置
我在測試時(shí),兩個(gè)django項(xiàng)目的路徑
/home/guoxd/testpro/project2
/home/guoxd/testpro/project3
- uwsgi 配置文件
到項(xiàng)目目錄下新建一個(gè) uwsgi.ini 配置文件
cd /home/guoxd/testpro/project2
vim uwsgi.ini
開始配置
[uwsgi]
# 注意 這個(gè)端口 要與 對應(yīng)的站點(diǎn)配置中的端口一致
socket=0.0.0.0:8001
# 項(xiàng)目目錄
chdir=/home/guoxd/testpro/project2
# wsgi 文件
wsgi-file=project2/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
同理在另外的項(xiàng)目中也進(jìn)行類似的配置, 路徑與端口修改一下即可.
到這里,uwsgi的簡單配置就完成了.
- uwsgi的使用
uwsgi --ini uwsgi.ini # 啟動(dòng) uwsgi --stop uwsgi.pid # 停止
Django 配置
修改settings文件
#在settings開頭修改 DEBUG=False allow = ['*'] # 在settings末尾添加 STATIC_ROOT = '/home/guoxd/temp/project2/bt' # 執(zhí)行 collectstatic 時(shí) 文件路徑 STATIC_URL = '/static/' #把STATICFILES_DIRS注釋掉 ''' STATICFILES_DIRS =[ os.path.join(BASE_DIR, 'static'), ] '''
收集靜態(tài)文件
python manage.py collectstatic
收集完成后,將靜態(tài)文件復(fù)制到nginx站點(diǎn)配置時(shí) 對應(yīng)的靜態(tài)文件路徑下
- 數(shù)據(jù)庫
python manage.py makemigrations
python manage.py migrate
在這里,記錄一個(gè)mysql 導(dǎo)出和導(dǎo)入的命令
mysqldump -u(username) -p(password) (database_name) (something).sql #導(dǎo)出sql數(shù)據(jù)庫
示例: mysqldump -uroot -p123 bt bt.sql
mysql -u(username) -p(password) --database (database_name) < (something).sql # 導(dǎo)入數(shù)據(jù)庫
示例:mysql -uroot -p123 --database bt < bt.sql # 導(dǎo)入數(shù)據(jù)庫
啟動(dòng)
在django項(xiàng)目下 啟動(dòng)
uwsgi --ini uwsgi.ini