CentOS 6.8 部署django項目一

CentOS 6.8 部署django項目二javascript

1、安裝python3.5(默認是2.6)php

參考:http://blog.csdn.net/shaobingj126/article/details/50290359css

http://blog.csdn.net/u010073893/article/details/54863209html

大體步驟:java

一、CentOS6.5 安裝Python 的依賴包
yum update
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

二、下載Python3.5的源碼包並編譯
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
./configure --prefix=/usr/local --enable-shared
make&make install
ln -s /usr/local/bin/python3 /usr/bin/python3
在運行Python以前須要配置庫
echo /usr/local/lib >> /etc/ld.so.conf.d/local.conf
ldconfig
安裝pip以及setuptools 一、安裝pip前須要前置安裝setuptools wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26 tar -zxvf setuptools-19.6.tar.gz cd setuptools-19.6 python3 setup.py build python3 setup.py install 報錯:RuntimeError: Compression requires the (missing) zlib module 咱們須要在linux中安裝zlib-devel包,進行支持。 yum install zlib-devel 須要對python3.5進行從新編譯安裝。 cd python3.5 make & make install 又是漫長的編譯安裝過程。 從新安裝setuptools python3 setup.py build python3 setup.py install 二、安裝pip wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb tar -zxvf pip-8.0.2.tar.gz cd pip-8.0.2 python3 setup.py build python3 setup.py install 若是沒有意外的話,pip安裝完成。 使用pip安裝一個python3第三方庫:python3 -m pip install paramiko ImportError: cannot import name 'HTTPSHandler' 應該是缺乏openssl的開發環境,咱們繼續安裝 yum install openssl-devel 繼續從新編譯安裝python3.5 ln -s /usr/local/python3.5/bin/pip3 /usr/bin/pip3

 二、Django+uWSGI+nginx部署python

參考:http://www.chenxm.cc/post/275.html?segmentfaultlinux

http://www.cnblogs.com/chenice/p/6921727.htmlnginx

Django + Uwsgi + Nginx 的生產環境部署

   

安裝uwsgi

  uwsgi是python的一個模塊,安裝uwsgi只需簡單的pip命令就能夠了c++

pip3 install uwsgi
 
 

基於uwsgi+django的實現

在使用uwsgi啓動項目以前先用:python3 manage.py runserver 0.0.0.0:8080 檢測sql

記得安裝django,sqlite3(yum install sqlite3-devel -y ,從新對python3 make, make install )

 1.使用命令啓動uwsgi

  第一步:進入django項目

  第二步:命令測試啓動

uwsgi --http 192.168.31.123:8080 --file teacher/wsgi.py --static-map=/static=static
 

  

  參數說明:

--http 這個就和runserver同樣指定IP 端口
--file 這個文件就裏有一個反射,若是你在調用他的時候沒有指定Web Server就使用默認的
-- static 作一個映射,指定靜態文件

  此時,訪問http://192.168.2.108:8080/,如圖所示,表示項目啓動成功

 

2.使用uwsgi配置文件啓動django項目

第一步:在django項目同級目錄建立script目錄,用於存放配置腳本等等

 

第二步:進入/script目錄,建立一個uwsgi.ini文件

  編輯uwsgi.ini文件內容以下:

# uwsig使用配置文件啓動
[uwsgi]
# 項目目錄
chdir=/opt/proj/teacher/
# 指定項目的application
module=teacher.wsgi:application
# 指定sock的文件路徑       
socket=/opt/proj/script/uwsgi.sock
# 進程個數       
workers=5
pidfile=/opt/proj/script/uwsgi.pid
# 指定IP端口       
http=192.168.2.108:8080
# 指定靜態文件
static-map=/static=/opt/proj/teacher/static
# 啓動uwsgi的用戶名和用戶組
uid=root
gid=root
# 啓用主進程
master=true
# 自動移除unix Socket和pid文件當服務中止的時候
vacuum=true
# 序列化接受的內容,若是可能的話
thunder-lock=true
# 啓用線程
enable-threads=true
# 設置自中斷時間
harakiri=30
# 設置緩衝
post-buffering=4096
# 設置日誌目錄
daemonize=/opt/proj/script/uwsgi.log

 啓動項目:

  訪問192.168.2.108:8080,啓動成功

 

 nginx:

參考:http://www.linuxidc.com/Linux/2016-09/134907.htm

wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz -C /opt/

 

yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

./configure
make
make install
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -s stop

 

 

第三步:Django + Uwsgi + Nginx

   首先建立配置文件,

/usr/local/nginx/conf下

   

建立teacher.conf文件

cat nginx.conf > teacher.conf

修改server部分

配置內容以下:

server { # 這個server標識我要配置了
listen 80; # 我要監聽那個端口
server_name 192.168.2.108 ; # 你訪問的路徑前面的url名稱
access_log /var/log/nginx/access.log main; # Nginx日誌配置
charset utf-8; # Nginx編碼
gzip_types text/plain application/x-javascript text/css text/javascript application/x-httpd-php application/json text/json image/jpeg image/gif image/png application/octet-stream; # 支持壓縮的類型

error_page 404 /404.html; # 錯誤頁面
error_page 500 502 503 504 /50x.html; # 錯誤頁面

# 指定項目路徑uwsgi
location / { # 這個location就和我們Django的url(r'^admin/', admin.site.urls),
include uwsgi_params; # 導入一個Nginx模塊他是用來和uWSGI進行通信的
uwsgi_connect_timeout 30; # 設置鏈接uWSGI超時時間
uwsgi_pass unix:/opt/proj/script/uwsgi.sock; # 指定uwsgi的sock文件全部動態請求就會直接丟給他
}

# 指定靜態文件路徑
location /static/ {
alias /opt/proj/teacher/static/;
index index.html index.htm;
}

}

啓動:

 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/tund.conf

 

若是整合nginx時報錯:

查看nginx日誌發現有:

2017/11/07 11:22:59 [crit] 14263#0: *1 connect() to unix:/opt/projects/script/xxx.sock failed (13: Permission denied) while connecting to upstream, client: 116.25.82.213, server: xxxxxx, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/opt/projects/script/xxx.sock:", host: "xxxxxx"

 是權限問題,直接:

chmod 666 /opt/projects/script/xxx.sock

 

以上內容大部分根據他人的博客整理,有些給了連接,在此感謝原文做者。

相關文章
相關標籤/搜索