Plone5.1.5 生产服务器部署过程
本文以 centOS 7服务器为例,部署如下图架构的生产服务器:
[align=center][attach]38[/attach][/align]
[align=left]
- 前端采用apache,提供静态资源文件,并配置virtualhost,支持多个站点,配置https为站点编辑;
- 采用varnish 作为反向代理加速;
- 配置haproxy作为负责均衡;
- 配置两个zeo client (适宜双核4G环境);
1、创建用户组,用户,并为用户账号授权sudo
以root身份登陆系统
#>groupadd plone #>useradd demo -g plone
注释掉下面这行:
# %wheel ALL=(ALL) ALL
添加用户demo到wheel组
#>usermod –aG wheel demo
2、用demo用户登陆系统,安装Plone依存的系统库,安装MySQL和python-MySQL依存库
[demo@localhost ~]$ sudo yum install gcc-c++ patch openssl-devel libjpeg-devel libxslt-devel readline-devel make which python-devel wv poppler-utils python-docutils -y
此处安装MySQL5.7:[/align][align=left]在用户主目录建立downloads[/align][align=left]
[demo@localhost ~]$ mkdir ~/downloads
去到MySQL官方网站下载repo信息包
[demo@localhost ~]$ cd ~/downloads
[align=left]
[demo@localhost downloads]$ wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm [demo@localhost downloads]$ sudo yum localinstall mysql80-community-release-el7-3.noarch.rpm
[/align]启用MySQL5.7[/align]
[demo@localhost downloads]$ sudo vi /etc/yum.repos.d/mysql-community.repo
[mysql57-community] name=MySQL 5.7 Community Server enabled=1 baseurl=http://repo.mysql.com/yum/mysql-5.7-community/fc/$releasever/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
安装MySQL5.7 server
[demo@localhost downloads]$ sudo yum install mysql-community-server mysql-community-devel -y
[align=left]
3、在用户主目录下,创建程序目录workspace,下载并编译安装python2.7.x最新版,本文是python 2.7.15
[demo@localhost downloads]$ mkdir ~/workspace
去到python.org官方网站下载:
[demo@localhost downloads]$ cd ~/downloads
[align=left]
[demo@localhost downloads]$ wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz
[/align]解压缩,编译安装python2.7.15
[demo@localhost downloads]$ tar -zxvf Python-2.7.15.tgz
[demo@localhost downloads]$ cd Python-2.7.15 [demo@localhost Python-2.7.15]$ ./configure --prefix=/home/demo/workspace/python2715 --enable-optimizations [demo@localhost Python-2.7.15]$ make [demo@localhost Python-2.7.15]$ make install
4、下载get-pip.py,用python2.7.15 安装pip[/align][align=left]
[demo@localhost downloads]$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
[demo@localhost downloads]$ cd workspace/python2715/
[align=left]
[demo@localhost python2715]$ bin/python2 ~/downloads/get-pip.py
[/align]
5、克隆plone5.1.5生产站点配置项目到用户主目录workspace
[demo@localhost python2715]$ cd ~/workspace
[demo@localhost workspace]$ git clone -b 5.1.5 --single-branch https://github.com/adam139/Plone5sites.git
6、用pip2 安装virtualenv,并创建python虚拟环境
[demo@localhost workspace]$ cd ~/workspace/python2715/
[demo@localhost python2715]$ bin/pip2 install virtualenv
[demo@localhost python2715]$ bin/virtualenv --no-site-packages /home/demo/workspace/Plone5sites/sites
7、激活虚拟环境[/align][align=left]
[demo@localhost python2715]$ cd ~/workspace/Plone5sites/sites
[demo@localhost sites]$ source bin/activate
8、编译安装部分三方模块到虚拟环境python路径,包括但不限于zc.buildout、setuptools等
(sites)[demo@localhost sites]$ cd ~/workspace/Plone5sites/sites
(sites)[demo@localhost sites]$ pip2 install -r requirements.txt
9、建立buildout默认配置文件及缓存目录,运行buildout配置命令:
(sites)[demo@localhost sites]$ mkdir ~/.buildout
[align=left]
(sites)[demo@localhost sites]$ mkdir ~/.buildout/eggs (sites)[demo@localhost sites]$ mkdir ~/.buildout/downloads (sites)[demo@localhost sites]$ mkdir ~/.buildout/extends (sites)[demo@localhost sites]$ touch ~/.buildout/default.cfg (sites)[demo@localhost sites]$ vi ~/.buildout/default.cfg
[/align]填充如下内容:[/align][align=left]
[buildout] eggs-directory = /home/demo/.buildout/eggs download-cache = /home/demo/.buildout/downloads extends-cache = /home/demo/.buildout/extends
运行buildout
(sites)[demo@localhost sites]$ bin/buildout -Nvvv -c deploy_haproxy.cfg
10、通过supervisor启动各服务进程
(sites)[demo@localhost sites]$ sudo bin/supervisord
检测各服务进程
(sites)[demo@localhost sites]$ bin/supervisorctl status
[/align]