centos7 下部署django应用
1. 安装python3.6
1. 获取
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
tar -xzvf Python-3.6.2.tgz -C /tmp
cd /tmp/Python-3.6.2/
2. 把Python3.6安装到 /usr/local 目录
./configure --prefix=/usr/local
make
make altinstall
3. 更改/usr/bin/python链接
ln -s /usr/local/bin/python3.6 /usr/bin/python3
2. maridb
1. 安装
sudo yum install mariadb-server
2. 启动, 重启
sudo systemctl start mariadb
sudo systemctl restart mariadb
3. 设置bind-ip
vim /etc/my.cnf
在 [mysqld]:
下面加一行
bind-address = 0.0.0.0
4. 设置外部ip可以访问
先进入mysql才能运行下面命令:
mysql 直接进入就行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES
5. 设置阿里云的对外端口
6. 安装mysqlclient出问题
centos 7:
yum install python-devel mariadb-devel -y
ubuntu:
sudo apt-get install libmysqlclient-dev
然后:
pip install mysqlclient
3 创建虚拟环境
virtualenv 是用来创建 Python 的虚拟环境的库,虚拟环境能够独立于真实环境存在,并且可以同时有多个互相独立的 Python 虚拟环境,每个虚拟环境都可以营造一个干净的开发环境,对于项目的依赖、版本的控制有着非常重要的作用。
虚拟环境有什么意义?打个比喻,现在有一个 Django 项目,使用的 Django 版本是1.8,但是系统的 Django 版本已经是更加新的1.11,如果使用系统的环境来运行项目,可能导致很多不兼容,于是,这个问题就可以使用一个虚拟环境来解决,使用 virtualenv 来创建一个只给这个项目运行的开发环境,既可以保证项目的正常运行,也方便了之后移植项目。
virtualenv 的安装和使用
由于 virtualenv 在 Windows 和 linux 上的安装和使用有一点点不同,所以需要分别来讲。
安装 virtualenv
virtualenv 的安装在 Windows 和 linux 上面是一样的,所以不分开讲解。安装 virtualenv 跟安装一般的 Python 库是一样的操作,直接使用 pip 命令就行了:
pip install virtualenv
安装完成之后就可以使用 virtualenv 的命令来创建虚拟环境了,首先需要在 cmd 命令中进入需要创建虚拟环境的文件夹,比如 F 盘的 envs 文件夹,然后使用以下命令创建一个虚拟环境,暂且取名为 new_env:
virtualenv new_env
可以看到类似如下的结果:
F:\envs>virtualenv new_env
Using base prefix 'f:\\python352'
New python executable in F:\envs\new_env\Scripts\python.exe
Installing setuptools, pip, wheel...done.
上面这段返回的意思是使用当前系统的 Python 版本创建一个虚拟环境
使用 virtualenv
- 在 Windows 系统上面使用 virtualenv
首先进入到虚拟环境目录中的 Scripts 目录:
F:\envs>cd new_env\Scripts
然后输入activate就可以了,会出现如下的结果:
(new_env) F:\envs\new_env\Scripts>
在地址的前面出现了一个括号和虚拟环境的名称,这个就表示现在已经在虚拟环境 new_env 中了,之后的所有操作都是在虚拟环境中进行的,直接输入python可以查看当前环境下的 Python 版本,可以得到如下输出:
(new_env) F:\envs\new_env\Scripts>python
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
使用pip的list命令可以查看当前环境下的所有包含的库的版本:
(new_env) F:\envs\new_env\Scripts>pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.co
nf under the [list] section) to disable this warning.
pip (9.0.1)
setuptools (38.5.2)
wheel (0.30.0)
- 在 Linux 上使用 virtualenv Linux 上面进入虚拟环境的方式跟 Windows 稍微有点不同,可以直接使用命令来进入,比如同样在 Linux 上面的 envs 文件夹下面有个 new_env 虚拟环境,则直接输入以下命令就可以进入虚拟环境:
$ source new_env/bin/activate
同样可以看到类似如下的结果:
(new_env) alex@VirtualBox:~/www/envs$
进入了虚拟环境之后,Windows 和 Linux 上面的操作都是一样的,这里就不单独去说明了。
使用 virtualenvwrapper管理环境
virtualenvwrapper 是一个 virtualenv 虚拟环境的管理库,这个库可以更加方便的管理所有的虚拟环境,由于在 Windows 和 Linux 上面这个库的安装和配置不同,所以要单独做说明。
Windows 上安装环境
1、Windows 上需要安装的是virtualenvwrapper-win,直接使用pip命令就可以了:
pip install virtualenvwrapper-win
2、配置虚拟环境的保存路径。首先需要在想要统一存放虚拟环境的地方创建一个文件夹(我在F盘建立了F:\space_env),然后把这个文件夹添加到系统的环境变量中,具体添加方式看截图:
3、注意说明: - 如果不设置系统环境变量,那么创建的虚拟环境会保存到默认的地方,不方便管理 - 添加了环境变量之后,需要重启 cmd 窗口,如果是使用的 pycharm 也要重启一下才行
Linux 上安装环境
1、使用pip命令安装,如果系统上面有两个版本的 Python(一般默认是2.7和3.52两个版本),那么要看虚拟环境要什么默认 Python 版本了,比如要使用3.52的版本作为虚拟环境的 Python 版本,那么就应该使用如下命令:
pip3 install virtualenvwrapper
2、配置环境变量文件。首先修改(文件不存在就创建)文件~/.bashrc,然后添加如下语句:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
然后运行:
source ~/.bashrc
如果没有报错,那么说明配置完成了,可以使用命令看看是否可以使用:
mkvirtualenv new_env
报错的解决方案
如果上述操作报错了,那么应该是你的 Linux 上面有两个版本的 Python,比如我的就报错了,我的上面有一个2.7的和一个3.5的版本。
如果报错如下提示:
/usr/local/bin/virtualenvwrapper.sh: No such file or directory
则说明这个文件不存在,可以使用find命令来查找正确的位置:
find / -name "virtualenvwrapper.sh"
比如我因为是在3.5版本的 Python 中安装的virtualenvwrapper,所以发现这个.sh文件在这个地址中
/home/alex/.local/bin/virtualenvwrapper.sh
所以上面的文件中的最后一个语句改成
source /home/alex/.local/bin/virtualenvwrapper.sh
改完这个地方应该还是会报错,大概是在说没有安装这个虚拟环境库,就像这样
/usr/bin/python: No module named virtualenvwrapper
之所以报错这个是因为我用的3.5版本安装的这个环境,系统的2.7版本是没有的,所以还需要添加一个语句:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
其中表明了 python3 的位置,当然,这个位置需要你自己查看自己的系统上面安装的位置,查看方式可以使用:
which python3
最终我的~/.bashrc文件中的语句是这样的:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /home/alex/.local/bin/virtualenvwrapper.sh
然后可以运行这个文件:
source ~/.bashrc
没有报错就说明环境设置好了,现在可以开始使用环境了。
virtualenvwrapper 命令
- 创建虚拟环境:
mkvirtualenv new_env - 使用虚拟环境:
workon new_env - 退出虚拟环境:
deactivate - 删除虚拟环境:
rmvirtualenv new_env - 查看所有虚拟环境:
lsvirtualenv
requirements.txt 文件的操作
生成文件
在虚拟环境中使用一下命令可以生成一个虚拟环境的安装包版本文件
(venv) $ pip freeze >F:A_FILE\requirements.txt
需要注意的地方:
- 指定生成文件的目录
- 文件生成之后,有时候需要调整安装包的顺序,例如一个安装包是依赖另一个的,则需要把依赖包放在靠前的位置
- 如果想安装某个包的最新版,则把==及后面的版本信息删除即可
复制环境
首先新建一个虚拟环境,然后把当前位置切换到需求文件所在目录下,然后在新建的虚拟环境中运行以下命令就可以安装需求文件中所有的依赖库,相当于复制了一个虚拟环境。
(venv) $ pip install -r requirements.txt
当然,如果不把当前目录切换到需求文件所在目录也是可以安装需求文件的依赖的,但是要指明需求文件的绝对地址,例如:
(venv) $ pip install -r >F:A_FILE\requirements.txt
1.安装virtualenv
yum install python-virtualenv
virtualenv实际上是一个python包,所以我们可以用easy_install或者pip安装。
2.创建虚拟环境
使用virtualenv命令创建python虚拟环境:virtualenv + 虚拟环境名称
virtualenv env1
执行后,在本地会生成一个与虚拟环境同名的文件夹。
如果你的系统里安装有不同版本的python,可以使用--python参数指定虚拟环境的python版本:
virtualenv --python=/usr/local/python-2.7.8/bin/python2.7 env1
创建成功后会将指定的python版本拷贝一份到虚拟环境中;
3.启动虚拟环境
进入虚拟环境目录,启动虚拟环境,如下:
cd env1/
source bin/activate
python -V
此时命令行前面会多出一个括号,括号里为虚拟环境的名称。以后easy_install或者pip安装的所有模块都会安装到该虚拟环境目录里。
4.退出虚拟环境
退出虚拟环境:deactivate
5、使用virtualenvwrapper工具包
virtualenvwrapper是virtualenv的扩展工具,可以方便的创建、删除、复制、切换不同的虚拟环境。
1.安装virtualenvwrapper
easy_install virtualenvwrapper
2.创建一个文件夹,用于存放所有的虚拟环境:
mkdir py_vm (目录自定义)
3.设置环境变量,把下面两行添加到~/.bashrc里。
export WORKON_HOME=/home/work/py_vm (绝对路径)
source /usr/bin/virtualenvwrapper.sh
然后就可以使用virtualenvwrapper了。
4.创建虚拟环境:mkvirtualenv [虚拟环境名称]
mkvirtualenv env2
mkvirtualenv env3
注意:mkvirtualenv可以使用virtualenv的参数,比如--python来指定python版本。创建虚拟环境后,会自动切换到此虚拟环境里。虚拟环境目录都在 WORKON_HOME里。
5.列出所有虚拟环境:lsvirtualenv -b
6.启动/切换虚拟环境:workon [虚拟环境名称]
7.进入当前环境的目录:cdvirtualenv
在环境里执行:cdvirtualenv
8.删除虚拟环境:rmvirtualenv [虚拟环境名称]
9.cpvirtualenv 复制环境
cpvirtualenv env1 env3 (复制env1到env3)
10.lssitepackages 列出当前环境中site-packages内容 (在环境中执行)
11.cdsitepackages 清除环境内所有第三方包
注意:版本,不然会报错
Docker >=1.11
Compose >1.6.0
通过docker安装sentry
安装docker
1.卸载旧版本
sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine
2.安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
3.添加稳定的源
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安装docker ce
1.更新yum包
sudo yum makecache fast
2.安装docker ce
sudo yum install docker-ce
3.启动docker
sudo systemctl start docker
4.测试docker
sudo docker run hello-world
输出:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
安装docker-compose
1. sudo yum install epel-release 2. sudo yum install -y python-pip 3. sudo pip install docker-compose
安装sentry
sentry 依赖的组件比较多 包括 redis、 postgresql、 outbound email
在安装sentry前请确保 docker 版本大于1.10
1.安装git
sudo yum install git
2.下载docker镜像并构建容器
cd进入到要安装的目录,创建一个程序目录
mkdir -p data/{sentry,postgres}
3.下载onpremise-master项目,放在与刚才创建的data目录同级
两者选一即可
下载地址:https://github.com/getsentry/onpremise
也可以不用下载进行克隆
sudo yum install git
$ git clone https://github.com/getsentry/onpremise.git $ cd onpremise
4.cd onpremise,进入到onpremise-master项目,执行命令生成key
注意:以下所有的目录,都是要在onpremise下执行的
docker-compose run --rm web config generate-secret-key

复制生成的key写入到docker-compose.yml文件
vim docker-compose.yml

5.生成数据表
docker-compose run --rm web upgrade
6.启动项目,在9000端口,如果是阿里云服务器记得开放端口
docker-compose up -d
访问服务器ip加9000端口

可以看到是英文的
首先要改成中文
1

2

以后启动项目
首先启动docker
sudo systemctl start docker
然后cd进入到onpremise下执行
docker-compose up -d
错误日志监控配置
python脚本监控

选择监控类型

python监控
#!/usr/bin/env python
# -*- coding:utf8 -*-
from raven import Client
# 设置dns的key
client = Client('http://f77284e1694144319ff6e27cf1cf9ae3:dd866ea1b3c34604ad9717deca56c320@47.52.39.160:9000/14')
try:
1 / 0
except ZeroDivisionError:
# 获取错误推送到错误监控
client.captureException()
监控

Docker监控
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app1',
'social_django',
'raven.contrib.django.raven_compat', # 配置监控APP
]
# 配置监控配置
RAVEN_CONFIG = {
'dsn': 'http://5def24308c64410fab2f8f4dda116195:619079b681ee4fb599ab62db4da8524f@47.52.39.160:9000/15',
}


浙公网安备 33010602011771号