!!!注意:如果已經包含了python3.5,跳過安裝3.6版本。
!!!本人安裝完3.6后,pip3安裝的包始終沒法安裝到3.6目錄下,只能安裝到3.5目錄下
1,安裝python3.6(用編譯的方法)
1下載地址
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
2解壓縮
tar -xvf Python-3.6.0.tgz
3創建安裝的路徑
sudo mkdir /usr/local/python3
4進入解壓縮后的文件夾,編譯安裝
./configure --prefix=/usr/local/python3
make
sudo make install
5創建新版本的軟連接
1、修改舊版本 sudo mv /usr/bin/python /usr/bin/python_bak 2、創建新的軟連接 sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python
3、檢查python的版本 python -V python-3.6.0 軟連接創建成功
6安裝pip3
sudo apt install python3-pip
sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
可以試試 pip3 -V 是對應哪個版本的python
2,Django
1安裝Django2.0
sudo pip3 install django
需要用pip3
2創建Django項目
進入/data文件夾,創建名為“helloworld”的項目 cd /data sudo django-admin startproject helloworld
3修改配置文件
修改 /data/helloworld/helloworld/settings.py 文件權限為其它人可寫
sudo chmod 666 /data/helloworld/helloworld/settings.py
將
ALLOWED_HOSTS = [] 修改為
ALLOWED_HOSTS = ["115.159.157.136"] ,這樣可以允許通過 ip 訪問
在實際運營中一般要改為對應的域名
4啟動django自帶web服務器
cd helloworld
sudo python manage.py runserver 0.0.0.0:8080
5使用瀏覽器訪問,就能看到成功顯示網頁了
http://115.159.157.136:8080/
6 ctrl+C 關閉web服務器
7創建應用,到項目根目錄下
sudo python manage.py startapp learn
8把我們新定義的app加到settings.py中的INSTALL_APPS中
修改 helloworld/helloworld/settings.py
# Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'learn', ]
9將/data/helloworld/learn/views.py修改權限為其它人可寫
sudo chmod 666 /data/helloworld/learn/views.py
編輯內容
from django.http.response import HttpResponse def hello(request): user = request.GET.get('user') if not user: user = 'world' return HttpResponse('hello %s' % user)
10修改 urls.py 文件權限
修改 /data/helloworld/helloworld/urls.py 文件權限為其它人可寫,並且修改為
sudo chmod 666 /data/helloworld/helloworld/urls.py
from django.contrib import admin
from django.urls import path
from learn import views as learn_views
urlpatterns = [
path('admin/', admin.site.urls),
path('hello',views.hello),
]
11啟動web服務器,瀏覽器輸入網址
sudo python manage.py runserver 0.0.0.0:8080 http://115.159.157.136:8080/hello http://115.159.157.136:8080/hello?user=test
12關閉web服務器
3部署 uwsgi 和 nginx
1使用 pip 安裝 uwsgi
sudo pip install uwsgi
2配置 uwsgi
創建文件 /data/helloworld/uwsgi.ini ,並修改權限為其它人可寫
sudo touch /data/helloworld/uwsgi.ini
sudo chmod 666 /data/helloworld/uwsgi.ini
編輯輸入以下內容
[uwsgi] chdir = /data/helloworld module = helloworld.wsgi socket = 127.0.0.1:8080 master = true vhost = true no-site = true workers = 2 reload-mercy = 10 vacuum = true max-requests = 1000 limit-as = 512 buffer-size = 30000 pidfile = /tmp/uwsgi.pid daemonize = /tmp/uwsgi.log
3啟動uwsgi
找到uwsgi所在位置,並加入環境變量
whereis uwsgi 得到結果:uwsgi: /usr/local/bin/uwsgi export PYTHONPATH=/usr/local/bin 啟動uwsgi uwsgi --ini /data/helloworld/uwsgi.ini
4安裝nginx
sudo apt-get install nginx -y
5添加 nginx 配置文件
創建文件 /etc/nginx/sites-enabled/helloworld.conf ,並修改權限為其它人可寫
sudo touch /etc/nginx/sites-enabled/helloworld.conf
sudo chmod 666 /etc/nginx/sites-enabled/helloworld.conf
server { listen 80; server_name 115.159.157.136; charset utf-8; location / { uwsgi_pass 127.0.0.1:8080; include /etc/nginx/uwsgi_params; client_max_body_size 10m; } client_body_timeout 3m; send_timeout 3m; proxy_send_timeout 3m; proxy_read_timeout 3m; }
6重啟nginx服務
sudo systemctl restart nginx
7測試 nginx + uwsgi + django 是否工作正常
http://115.159.157.136/hello
