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 
相关文章
相关标签/搜索