前置工具,系統爲centos7.5,爲了方便管理,能夠安裝寶塔免費版本php
首先,html
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.shpython
正常乾淨系統會順利完成安裝,使用過程是感受本身記下配置和更新的過程,相似版本更新或者衝突的先別急着百度,容易形成衝突。nginx
寶塔6.6版本是依賴python2.7的,因此python能夠升級到最後版本,例如2.7.15,不要用python3代替2,這樣會致使寶塔衝突。web
第一,Python3安裝sql
在Centos7 系統中,自帶的有python2環境
安裝相關包
命令:yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
在python官網下載python3源碼
下載源碼
命令:wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
解壓源碼
命令:tar -xvJf Python-3.7.1.tar.xz
編譯安裝python3
進入解壓包中
命令:cd Python-3.7.1
設置安裝路徑
命令:./configure prefix=/usr/local/python3
執行編譯安裝
命令: make && make install
設置python3命令軟鏈接
設置python3軟鏈接
命令:ln -s /usr/local/python3/bin/python3 /usr/bin/python3
設置pip3環境變量
命令:ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3django
到此Python3運行環境安裝和配置完,關鍵:必須帶3,這樣整個系統不會影響到寶塔,python3,pip3等centos
第二,安裝supervisorbash
這塊能夠安裝後掛載不一樣的服務。例如Python網站,core網站,php網站。微信
yum install supervisor
安裝完畢後,會生成
/ect/supervisor/supervisord.conf
編輯,能夠用winscp打開,也能夠直接用vi命令
編輯關鍵部分。
[inet_http_server] ; inet (TCP) server disabled by default port=*:9001 ; (ip_address:port specifier, *:port for all iface) ;username=user ; (default is no username (open server)) ;password=123 ; (default is no password (open server))
這裏是supervisor的管理界面,設置*:9001表明能夠在外網訪問,固然也能夠指定IP
[unix_http_server] file=/tmp/supervisor.sock ; (the path to the socket file) chmod=0766 ; socket file mode (default 0700) ;chown=nobody:nogroup ; socket file uid:gid owner ;username=user ; (default is no username (open server)) ;password=123 ; (default is no password (open server))
這裏主要chmod設置爲0766打開對應的權限
拉到最下
[include] files = conf.d/*.conf
配置一下網站獨立的conf,用*.conf表明裏面的因此文件。
我建了個pydjangoweb.conf的配置,內容以下
[program:PyDjangoWeb] command=python3 /website/py.django.web/manage.py runserver 0.0.0.0:8090 ; 運行程序的命令 autorestart=true ; 程序意外退出是否自動重啓 stderr_logfile=/var/log/pydjango.err.log ; 錯誤日誌文件 stdout_logfile=/var/log/pydjango.out.log ; 輸出日誌文件
python3是運行程序 /website/py.django...是網站部署的路徑,0.0.0.0:8090是端口並設置爲外網能夠訪問.這個留意一點,每行結束需有空格隔開 ;
修改完成後這行
supervisorctl reload讓配置生效。
3、設置supervisor爲開機啓動
/usr/lib/systemd/system/下,新建supervisor.service文件。
[Unit] Description=Process Monitoring and Control Daemon After=rc-local.service nss-user-lookup.target [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf [Install] WantedBy=multi-user.target
systemctl enable supervisord
設置啓動supervisor
驗證是否開機啓動:
systemctl is-enabled supervisord
4、配置nginx
具體不詳細說,用了寶塔,能夠直接編輯配置文件。
#這段是core2.1的 server { listen 80; server_name quce.lttgx.top; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } #這段是django2.1的 server { listen 80; server_name py.django.web; location / { proxy_pass http://localhost:8090; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
配置完成後nginx需從新加載
cd usr/local/nginx/sbin
./nginx -s reload
也能夠用寶塔的界面操做。
5、具體代碼須要注意點
urlpatterns = [# Examples: url(r'^$', app.views.home, name='home'), url(r'^contact$', app.views.contact, name='contact'), url(r'^about$', app.views.about, name='about'), url(r'^login/$', views.LoginView.as_view(template_name= 'app/login.html', authentication_form= app.forms.BootstrapAuthenticationForm, extra_context= { 'title': 'Log in', 'year': datetime.now().year, }), name='login'), url(r'^logout$', views.LogoutView.as_view(next_page='/'), name='logout')
urls.py文件,django2.0後,login,logout方法已取消,能夠用views.LoginView.as_view去配置模版頁和方法。
settings.py文件
ALLOWED_HOSTS = ['*'] //原來空白的需加上'*',容許在外網訪問
補充:
如django運行出錯,能夠先獨立運行
進入網站路徑,運行: python3 manage.py runserver 0.0.0.0:8090
若有錯誤,看缺什麼包沒安裝,例如須要安裝pip3 install django
supervisor管理界面,其中包括django項目,tastetest是.net core2.1的微信項目