CentOS6.9下离线部署Django项目
最近项目服务器变动,研究了CentOS6.9下httpd2.4+django1.11.16+python3.6+PostgreSQL的部署,之前还有一个ubuntu16.04下的部署等以后整理好后再来写
首先远程的一些软件,这里的rpm文件是我更改了CentOS下设置,在线安装后缓存下来的,也就是说你想离线安装需要在线安装成功,有需要的可以私信我
远程连接:xshell/putty
远程上传:WinSCP
部署文件:包含rpm文件夹,python依赖包,项目文件
因为是离线部署,首先要自定义本地源
自定义本地源
cd到准备好的rpm目录下,安装deltarpm,python-deltarpm,createrepo,安装有先后顺序
cd /home/file/local-packages/
yum install deltarpm
yum install python-deltarpm
yum install createrepo
创建本地yum仓库,这里我在根目录创建的文件夹
mkdir -p /yum/local
cp /home/file/local-packages/* /yum/local
重命名备份yum配置文件
cd /etc/yum.repo.d
rename .repo .repo.bak *
创建repo文件,将以下复制到repo文件中,使本地源生效
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
启用
gpgcheck=0
清空缓存,生产rpm包依赖关系
yum clean all
createrepo /yum
yum makecache
安装gcc编译器
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
CentOS6.9下离线部署Django项目的更多相关文章
- Linux 下部署Django项目
Linux 下部署Django项目 说明:本文所使用的环境为CentOS 6+Python2.7+Django1.11 安装Django.Nginx和uWSGI 1.确定已经安装了2.7版本的Py ...
- CentOS 6.8 部署django项目一
CentOS 6.8 部署django项目二 1.安装python3.5(默认是2.6) 参考:http://blog.csdn.net/shaobingj126/article/details/50 ...
- mac osx 上面部署Django项目 apache+mysql+mod_wsgi
1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...
- 使用uWSGI+nginx部署Django项目
最近使用django写了一些项目,不过部署到服务器上碰到一些问题,还有静态文件什么的一堆问题,这里总结一下碰到的问题和解决方案,总体思路是按照官方文档走的. 原文地址:http://uwsgi-doc ...
- Docker 部署Django项目
使用docker部署django项目也很简单,挺不错,分享下 环境 默认你已安装好docker环境 django项目大概结构 (p3s) [root@opsweb]# tree opsweb opsw ...
- CentOS 6.8 部署django项目二
CentOS 6.8 部署django项目一 1.项目部署后发现部分页面的样式丢失,是因为在nginx中配置的static路径中未包含. 解决:在settinfs.py中添加: STATIC_ROOT ...
- docker 部署django项目(nginx + uwsgi +mysql)
最近在学习用docker部署Django项目,经过百折不挠的鼓捣,终于将项目部署成功,爬过好多坑,也发现很多技能需要提高.特此写下随笔与小伙伴们分享,希望能对大家有所启发. docker的理论我就不赘 ...
- 腾讯云服务器部署 django项目整个流程
CentOS7下部署Django项目详细操作步骤 前记:购买腾讯云服务器,配置自选,当然新用户免费体验半个月,我选择的系统是centos7系统版本, 接下来我们来看整个配置项目流程. 部署是基于:ce ...
- 使用Nginx+uWSGI部署Django项目
1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi l ...
随机推荐
- MonkeyFest2018Guangzhou
MonkeyFest 是一个一年一度由全球Microsoft Xamarin开发者发起的全球性社区活动,主旨推广在云计算.人工智能.大数据.移动开发等技术. 跨平台技术移动开发(卢建晖) .NET C ...
- Nginx 自定义添加Response Headers 修改server
之前说过如何隐藏Response Headers中 X-Powered-By 修改php.ini expose_php = Off service php-fpm reload 隐藏Nginx版本号 ...
- pyzmq学习笔记
前言 使用过简单的python的ZMQ:server开启3个线程,client发送心跳包,如果服务端超过n秒没应答,则重新连接. 网上找的案例,server使用的zmq.device,但是一直不明白什 ...
- PostGIS导出SHP中文乱码
设置系统的环境变量 PGCLIENTENCODING=GBK,退出PostgreSQL重新登錄,执行成功!
- C#实现视频监控客户端onvif协议一
前言 最近做的项目是监控方面的,需要对接各种摄像头,之前的方案是把各个厂家的SDK都集成到系统中,然后让用户进行切换,后来知道了Onvif (自行百度具体概念)这个东西.原来早就有人一统江湖了. on ...
- Codeforces 677E Vanya and Balloons
Vanya and Balloons 枚举中心去更新答案, 数字过大用log去比较, 斜着的旋转一下坐标, 然后我旋出来好多bug.... #include<bits/stdc++.h> ...
- Metasploit运行环境内存不要低于2GB
Metasploit运行环境内存不要低于2GB Metasploit启用的时候,会占用大量的内存.如果所在系统剩余内存不足(非磁盘剩余空间),会直接导致运行出错.这种情况特别容易发生在虚拟机Kali ...
- Mac上使用jenkins+git持续集成浅析
本文旨在让同学们明白如何让jenkis在mac笔记本上运行,并实际与一个最简单的git地址交互并执行简单的jenkins任务,如果学习本文,需要先按照https://www.cnblogs.com/x ...
- Dockerfile中COPY命令的简单性
dockerfile中的COPY命令是不会拷贝目录结构的,它只会单纯把包含的所有文件拷贝到另一个目录中去. 相关链接:https://www.cnblogs.com/sparkdev/p/957324 ...
- 学习使用Mendeley1
原文来自:https://www.mendeley.com/guides/desktop/01-desktop-interface 1.添加文件菜单 - 使用此功能将新条目添加到您的Mendeley库 ...