Centos7下部署Python項目


Centos7下部署Python項目

一、配置系統環境

  1. yum -y install gcc gcc-c++ 編譯的時候
  2. yum -y install wget
  3. yum -y install zlib zlib-devel openssl openssl-devel ncurses-devel sqlite sqlite-devel bzip2-deve readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
  4. yum -y install epel-release
  5. yum -y install libffi-devel 編譯Python時候,如果缺少,會導致pip安裝不成功
  6. yum install psmisc 幫助管理/proc目錄,fuser,killall,pstree等

二、源碼安裝Python3.7.4 && Django

  1. cd /opt 進入opt目錄

  2. 使用wget命令下載壓縮包 wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz

  3. tar -zxvf Python-3.7.4.tgz

  4. cd Python-3.7.4

  5. ./configure --prefix=/usr/local/python3

  6. make && make install

  7. cd ~ 創建軟鏈接
    ln -s /usr/local/python3/bin/python3 /usr/bin/python3
    ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

  8. 給python3安裝django
    pip3 install django
    建立軟連接
    ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin

  9. 上傳自己的項目 在項目內 python3 manage.py runserver

  10. 如果出錯:SQLite 3.8.3 or later is required (found 3.7.17)
    參考:https://blog.csdn.net/qq_39969226/article/details/92218635

三、 安裝配置uwsgi

  1. 從網站https://uwsgi-docs.readthedocs.io/en/latest/Download.html下載最新版uwsgi,下載Stable/LTS版本的源文件,上傳到/opt下

  2. tar -zxvf uwsgi壓縮包文件

  3. cd uwsgi解壓過的目錄(安裝包)

  4. python3 setup.py install

  5. ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi 建立軟連接

  6. 在manage.py的同級目錄下,新建一個uwsgi.xml文件,配置此文件

    <uwsgi>    
       <socket>127.0.0.1:8000</socket> <!-- 內部端口,自定義 --> 
       <chdir>/data/wwwroot/demo/</chdir> <!-- 項目路徑 -->            
       <module>demo.wsgi</module>  <!-- mysite為wsgi.py所在目錄名--> 
       <processes>4</processes> <!-- 進程數 -->     
       <daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
    </uwsgi>
    

四、安裝配置nginx

  1. 安裝

    # 1.進入home目錄
    cd /home  
    # 2.下載nginx
    wget http://nginx.org/download/nginx-1.13.7.tar.gz
    # 3.解壓
    tar -zxvf nginx-1.13.7.tar.gz
    # 4.進入解壓后的nginx-1.13.7文件夾
    cd nginx-1.13.7
    # 5.編譯安裝
    ./configure
    make && make install
    
  2. nginx一般默認安裝好的路徑為/usr/local/nginx
    在/usr/local/nginx/conf/中先備份一下nginx.conf文件,以防意外。

    cd /usr/local/nginx/conf
    cp nginx.conf nginx.conf.bak
    
  3. 然后打開nginx.conf,把原來的內容刪除,直接加入以下內容:

    vim nginx.conf
    
    events {
        worker_connections  1024;
    }
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        server {
            listen 80;
            server_name  xx.xx.xx.xx; #改為自己的域名,沒域名修改為127.0.0.1:80
            charset utf-8;
            location / {
               include uwsgi_params;
               uwsgi_pass 127.0.0.1:8000;  #端口要和uwsgi里配置的一樣
               uwsgi_param UWSGI_SCRIPT demo.wsgi;  #wsgi.py所在的目錄名+.wsgi
               uwsgi_param UWSGI_CHDIR /data/wwwroot/demo/; #項目路徑
               
            }
            location /static/ {
            alias /data/wwwroot/demo/static/; #靜態資源路徑
            }
        }
    }
    

五、啟動服務

  1. 進入項目目錄下將settings.py中:

    ALLOWED_HOSTS = ['*'] 
    DEBUG = False
    
  2. cd /data/renwu ls manage.py/uwsgi.ini

  3. 啟動uwsgi: uwsgi -x demo.xml

  4. cd /usr/local/nginx/sbin/

  5. 啟動nginx:./nginx

六、配置靜態資源

  1. 打開django項目中settings.py文件(/unicom/settings.py),添加:

    STATIC_ROOT = '/root/www/unicom/static/'
    
  2. 運行python3 manage.py collectstatic,此命令是搜集靜態文件的命令,搜集后的靜態文件存放在/root/www/unicom/static/中

  3. 重新啟動uwsgi和nginx。

    1. killall -9 nginx  
    2. killall -9 uwsgi
    3. nginx
    4. uwsgi uwsgi.ini
    


七、常用命令

關閉nginx&&uwsgi

killall -9 nginx  
killall -9 uwsgi

查看服務器正在運行的端口

netstat -ntpl

關閉8000端口(端口被占用)

sudo fuser -k 8000/tcp         
#啟動Django項目,如果出現Error:That port is already in use.   關掉8000的進程就好 

重啟nginx

nginx -s reload   

檢查nginx配置文件語法是否正確

cd /etc/nginx
nginx -t

查看軟連接指向

# 1. 查看軟連接位置---》在/usr/bin 目錄
whereis python
whereis python3
whereis pip
whereis pip3
# 2. 列出軟連接指向文件
ls -al python*
ls -al pip*

卸載python

# 1. 刪除python3.x的安裝包
cd 安裝目錄
rm -rf python3.xx
# 2. 刪除軟件的軟連接
cd /usr/bin
rm -rf python3 #刪除兩個軟連接
rm -rf pip3

重啟nginx

nginx -s reload 

本地測試鏈接是否成功

curl http://127.0.0.1:80

安裝virtualenv

#  python安裝完成后!!!
#1. 安裝虛擬環境管理庫
pip3 install virtualenv
#2. 創建軟連接
ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
#3.安裝成功在根目錄下建立兩個文件夾,主要用於存放env和網站文件的。(個人習慣,其它人可根據自
己的實際情況處理)
mkdir -p /data/env # env保存各種項目對應虛環境
mkdir -p /data/wwwroot #wwwroot,存放網站源碼!
#4. 切換到/data/env/下,創建指定版本的虛擬環境。
virtualenv --python=/usr/bin/python3 jd(虛擬環境名)
#5. 激活
cd /data/env/jd/bin
source activate # deactivate 退出虛擬環境
#6. 安裝項目依賴
pip install django==2.1.8/requets/numpy/pandas......

防火牆

firewall-cmd --state                       #查看防火牆狀態
systemctl stop firewalld.service           #停止防火牆
systemctl disable firewalld.service        #禁止firewall開機啟動 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM