CentOS6.9下離線部署Django項目

最近項目服務器變更,研究了CentOS6.9下httpd2.4+django1.11.16+python3.6+PostgreSQL的部署,以前還有一個ubuntu16.04下的部署等之後整理好後再來寫html

首先遠程的一些軟件,這裏的rpm文件是我更改了CentOS下設置,在線安裝後緩存下來的,也就是說你想離線安裝須要在線安裝成功,有須要的能夠私信我前端

遠程鏈接:xshell/putty
遠程上傳:WinSCP
部署文件:包含rpm文件夾,python依賴包,項目文件

由於是離線部署,首先要自定義本地源python

自定義本地源

cd到準備好的rpm目錄下,安裝deltarpm,python-deltarpm,createrepo,安裝有前後順序linux

cd /home/file/local-packages/
yum install deltarpm  
yum install python-deltarpm  
yum install createrepo  

建立本地yum倉庫,這裏我在根目錄建立的文件夾nginx

mkdir -p /yum/local  
cp /home/file/local-packages/* /yum/local  

重命名備份yum配置文件c++

cd /etc/yum.repo.d  
rename .repo .repo.bak * 

建立repo文件,將如下複製到repo文件中,使本地源生效sql

vim /etc/yum.repos.d/CentOS-Local.repo  

[Local]  
name=Local Yum  
baseurl=file:///yum/  
gpgcheck=0  
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  
enabled=1  

啓用shell

gpgcheck=0  

清空緩存,生產rpm包依賴關係數據庫

yum clean all  
createrepo /yum  
yum makecache 

安裝gcc編譯器apache

yum install gcc  
yum install gcc-c++ 

安裝項目環境

由於配置好了本地源,如下使用在線和離線安裝效果同樣,不過我使用scl源,很不錯的一個軟件集合,你能夠在這個裏面使用你想使用的各類軟件版本而與原環境不干擾,推薦給你們,具體使用請了解官方網站

SCL軟件集合官方網站
https://www.softwarecollections.org/en/

首先安裝python3.6

yum install rh-python36  
scl enable rh-python36 bash  

安裝PostgreSQL

yum install rh-postgresql94  
scl enable rh-postgresql94 bash  
postgresql-setup --initdb  
service rh-postgresql94-postgresql start  
su - postgres -c 'scl enable rh-postgresql94 -- psql'  
alter user postgres with password 'Lantucx2018';  
create database "resmanageV0.1";  
\q  
passwd postgres  

修改PostgreSQL配置文件使其能夠被其餘主機鏈接

vim /var/opt/rh/rh-postgresql94/lib/pgsql/data/postgresql.conf

listenaddress = "*"  
port = 5432  
vim /var/opt/rh/rh-postgresql94/lib/pgsql/data/pg_hba.conf
(最後一行添加,此外,全部的驗證方式需改成md5)

host       all     all       0.0.0.0/0     md5  
從新啓動PostgreSQL
service rh-postgresql94-postgresql restart

安裝httpd2.4,在CentOS下它叫httpd,而在windows和Ubuntu下,它叫apache,是經常使用的python部署服務

sudo yum install httpd24  
scl enable httpd24 bash  
service httpd24-httpd start 
service httpd24-httpd restart 

注意,安裝後須要配置httpd2.4的配置文件,這裏記不太清楚了,往後整理了會寫上來,有什麼問題了能夠私信我,這裏寫出配置文件路徑和錯誤文件路徑,注意,這個路徑僅適用於SCL集合安裝的,本身想要尋找能夠使用find -name 文件名 來尋找,這條指令是尋找當前目錄下,最好cd到根目錄使用

/opt/rh/httpd24/root/etc/httpd/conf  
/var/log/httpd24/error_log  

安裝mod-wsgi和nginx,nginx是前端須要,我順手裝上了,注意mod-wsgi安裝分兩種,一種是python依賴包,一種是安裝到操做系統中的,這裏使用的是安裝操做系統中

yum install rh-python36-mod_wsgi.x86_64  
yum install rh-nginx110.x86_64 

安裝python依賴包,python依賴包依賴關係複雜,離線安裝時要注意依賴關係,負責會有不少安裝不了,按照SCL方案安裝的python3.6須要安裝setuptools_scm

首先需單獨安裝setuptools_scm而後cd到部署文件目錄下批量安裝,SCL安裝的python須要開啓python3環境
pip3 install setuptools_scm-3.2.0.tar  
pip3 install --no-index --find-links=./packages/ -r requirement.txt 

而後將項目放到httpd目錄下,注意,須要更改給httpd的用戶操做項目文件的權限,我這裏是這麼操做的,實際多餘的操做記不太清楚了,若是報錯了看錯誤日誌給予響應的權限便可

將項目文件放到/opt/rh/httpd24/root/var/www/html/下  
修改項目中logs權限chmod -R 權限 文件  

Elasticsearch的安裝,因爲項目數據量巨大,普通數據庫查詢效率過低,這裏使用的Elasticsearch,之後會再更新Elasticsearch使用方法,網上也衆多,這裏不作贅述

mkdir /home/soft  
cp /home/file/elasticsearch /home/soft  
tar -xvzf elasticsearch.tar.gz  
cd elasticsearch/bin/  
./elasticsearch 

到了django基本操做,注意更改項目中數據庫等配置,寫在這裏是提醒你們別忘了HHHHH,第一行是使用SCL安裝的python因此須要開啓python3的環境

scl enable rh-python36 bash  
python3 manage.py makemigrations  
python3 manage.py migrate  
python manage.py createsuperuser

最後放個我踩到的大坑

防火牆

不少權限問題都是防火牆引發的,部署的時候先關閉,沒問題了再打開

chkconfig iptables off  
service iptables stop 

還有一個selinux,這個是linux內核級別的安全限制,臨時關閉我感受大部分時候無論用,須要重啓才能生效,這個是一個大坑,注意關閉

setenforce 0  
編輯/etc/selinux/config文件,將SELINUX的值設置爲disabled  
vim /etc/selinux/config 
相關文章
相關標籤/搜索