Centos7下部署Python项目
Centos7下部署Python項目
一、配置系統環境
yum -y install gcc gcc-c++ 編譯的時候
yum -y install wget
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
yum -y install epel-release
yum -y install libffi-devel 編譯Python時候,如果缺少,會導致pip安裝不成功
yum install psmisc 幫助管理/proc目錄,fuser,killall,pstree等
二、源碼安裝Python3.7.4 && Django
cd /opt 進入opt目錄
使用wget命令下載壓縮包 wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
tar -zxvf Python-3.7.4.tgz
cd Python-3.7.4
./configure --prefix=/usr/local/python3
make && make install
cd ~ 創建軟鏈接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
給python3安裝django
pip3 install django
建立軟連接
ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin
上傳自己的項目 在項目內 python3 manage.py runserver
如果出錯:SQLite 3.8.3 or later is required (found 3.7.17)
參考:https://blog.csdn.net/qq_39969226/article/details/92218635
三、 安裝配置uwsgi
從網站https://uwsgi-docs.readthedocs.io/en/latest/Download.html下載最新版uwsgi,下載Stable/LTS版本的源文件,上傳到/opt下
tar -zxvf uwsgi壓縮包文件
cd uwsgi解壓過的目錄(安裝包)
python3 setup.py install
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi 建立軟連接
在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.進入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
nginx一般默認安裝好的路徑為/usr/local/nginx
在/usr/local/nginx/conf/中先備份一下nginx.conf文件,以防意外。
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
然后打開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/; #靜態資源路徑
}
}
}
五、啟動服務
進入項目目錄下將settings.py中:
ALLOWED_HOSTS = ['*']
DEBUG = False
cd /data/renwu ls manage.py/uwsgi.ini
啟動uwsgi: uwsgi -x demo.xml
cd /usr/local/nginx/sbin/
啟動nginx:./nginx
六、配置靜態資源
打開django項目中settings.py文件(/unicom/settings.py),添加:
STATIC_ROOT = '/root/www/unicom/static/'
運行python3 manage.py collectstatic,此命令是搜集靜態文件的命令,搜集后的靜態文件存放在/root/www/unicom/static/中
重新啟動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開機啟動
總結
以上是生活随笔為你收集整理的Centos7下部署Python项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cad打开提示图形文件无效如何解决
- 下一篇: 缅甸仅用30年,从领跑亚洲经济到一穷二白