Plone5.1.5 生产服务器部署过程

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]

设置