Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服務器
閑著無聊的時候部署了一個Django項目玩,用vm虛擬機部署的。
準備工作
我使用的系統(tǒng)是Ubuntu16.04,大家可以去官網下載
?
1. 更新apt-get
sudo apt-get update sudo apt-get upgrade2. 安裝SSH
sudo apt-get?install ssh裝好以后,用ifconfig查看一下IP地址
?
可以看到IP地址是192.168.0.154,下面我們就使用XSHELL連接192.168.0.154進行操作了。
3. 安裝Git
這一步不是必須的,因為我的測試項目是放在git.oschina.com上的,安裝git獲取項目代碼就很方便了
sudo apt-get?install git安裝配置MySQL
1. 安裝
sudo apt-get?install?mysql-server安裝過程中會提示讓你設置root密碼
?
2. 配置
2.1 數據庫初始化:
sudo?mysql_install_db2.2 運行數據庫Mysql安全配置向導
sudo mysql_secure_installation輸入root密碼
?
是否修改root密碼,因為前面已經設置過了,選n
?
是否移除匿名用戶,肯定是要選y的
?
是否允許遠程登陸,如果選n的話,只能在本機訪問數據庫,建議選y
?
是否移除test數據庫,建議選是
?
重新加載權限表,選y
?
All done!
安裝配置Python環(huán)境
1.安裝python-dev包
sudo apt-get?install python-dev2.安裝pip
sudo apt-get?install?python-pip3.更換pip源
因為國內使用默認的pip源速度很慢,所以需要更換,在用戶根目錄下新建.pip目錄,在該目錄下新建pip.conf文件
然后在文件里寫上:
[global] index-url = http://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com4.安裝配置VirtualEnv和VirtualEnvWrapper
VirtualEnv可以管理多個開發(fā)環(huán)境,VirtualEnvWrapper使得VirtualEnv變得更好用
安裝完成以后,需要在環(huán)境變量中加入一些配置:
下面這句話是使用python3才需要執(zhí)行的,python2不需要
不管python是什么版本,都要執(zhí)行下面兩句:
echo "export WORKON_HOME=~/Env" >> ~/.bashrc echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc可以重啟系統(tǒng)激活,也可以運行:
source ~/.bashrc然后就可以開始建立一個虛擬環(huán)境:
mkvirtualenv first你會發(fā)現,提示符變成(first)user@hostname:~$,表示現在已經進入first的虛擬環(huán)境,在此環(huán)境下進行的pip等操作,只會在當前環(huán)境下生效,當前虛擬環(huán)境在/home/siva/Env/first目錄下
Django項目配置
1.安裝django
我使用選擇版本來安裝:
pip install django==1.10.12.下載或拷貝項目
安裝完成以后,使用git把項目clone下來,此處填寫你自己的地址:
git?clone?https://git.oschina.net/xxx/Siva_First.git此例子的項目名稱是Siva_First,路徑是在/home/siva/下
3.配置django
用Mysql建好項目的數據庫,然后進入Siva_First目錄,用django應用數據模型:
python manage.py makemigrations python manage.py migrate建立后臺超級用戶:
python manage.py createsuperuser靜態(tài)文件安置:
python manage.py collectstatic4.測試項目
運行開發(fā)服務器測試一下是否可以正常運行:
python manage.py runserver 0.0.0.0:8000這時,用瀏覽器打開http://192.168.0.154:8000/可以看到網站
5.退出虛擬環(huán)境
因為當前是在first虛擬環(huán)境下,為了下一步的安裝,必須退出當前的虛擬環(huán)境:
deactivateuWSGI安裝和配置
1.安裝uWSGI
pip下安裝很簡單:
我們可以測試一下uwsgi是否安裝成功
uwsgi --http :8000?--home?/home/siva/Env/first --chdir?/home/siva/Siva_First -w Siva_First.wsgi上面的命令是使用8000端口,虛擬環(huán)境在/home/siva/Env/first,項目在/home/siva/Siva_First下
2.配置uWSGI
使用上面的命令行來部署網站肯定是不行的,我們需要使用“Emperor mode”,建立一個目錄來放配置文件:
sudo mkdir -p /etc/uwsgi/sites cd /etc/uwsgi/sites以項目名稱來命名這個配置文件:
sudo vi Siva_First.ini內容如下:
[uwsgi] project = Siva_First base = /home/sivachdir = %(base)/%(project) home = %(base)/Env/%(project) module = %(project).wsgi:application master = true processes = 5 socket = %(base)/%(project)/%(project).sock chmod-socket = 664 vacuum = trueproject是項目名稱,base是項目所在位置
現在,配置文件建好了,但是uwsgi還不能自動運行我們需要在/etc/init目錄中建一個啟動腳本:
sudo vi /etc/init/uwsgi.conf內容如下:
description "uWSGI application server in Emperor mode"start on runlevel [2345] stop on runlevel [!2345] setuid siva setgid www-data exec /usr/local/bin/uwsgi --emperor /etc/uwsgi/sites這一步完成以后,uwsgi還是不能正常啟動,是因為www-data用戶組還沒有創(chuàng)建,等我們裝完nginx以后就可以了。
反向代理:Nginx的安裝和配置
1.安裝
sudo apt-get install nginx2.創(chuàng)建配置文件
sudo vi /etc/nginx/sites-available/Siva_First內容如下:
server {listen 80;server_name 192.168.0.154; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /home/siva/Siva_First; } location / { include uwsgi_params; uwsgi_pass unix:/home/siva/Siva_First/Siva_First.sock; } }然后把這個配置文件鏈接到sites-enabled目錄下
sudo ln -s /etc/nginx/sites-available/Siva_First /etc/nginx/sites-enabled/檢查一下配置文件的語法是否有問題
sudo service nginx configtest如果沒問題,那么重啟一下nginx和uwsgi的服務就可以訪問了
sudo service nginx restart sudo service uwsgi restart轉載于:https://www.cnblogs.com/stevenshushu/p/7844771.html
總結
以上是生活随笔為你收集整理的Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark记录-Scala语法基础
- 下一篇: MySQL 5.7.18 zip 文件安