热帖推荐

发帖人: 花生

这篇文章介绍如何利用Plesk Mirror Setup Tool工具创建本地Plesk镜像。本地镜像可以帮助用户在局域网内安装、更新Plesk。

此工具只能运行在Linux下,创建的镜像支持与Linux和Windows上的Plesk同步,适用以下版本的Plesk:

  • Plesk 12.5 for Linux
  • Plesk 12.0 for Linux
  • Plesk 11.0 for Linux
  • Plesk 11.5 for Linux
  • Plesk 10.3 for Linux/Unix
  • Plesk 12.5 for Windows
  • Plesk 12.0 for Windows
  • Plesk 11.5 for Windows

注意: Windows和Linux的镜像不能放在同一文件夹,镜像必须放在独立的目录下。

镜像的使用方法

可以通过以下方法使用镜像:

方法一 : 分别将http://autoinstall.plesk.com解析到Linux镜像的位置、http://autoinstall-win.plesk.com/解析到Windows镜像的位置。

方法二 : 在安装了autoinstaller的机器上找到 /root/.autoinstallerrc,添加SOURCE变量。

[[email protected] ~]# cat  /root/.autoinstallerrc
SOURCE=http://uri.of.local.mirror/here/

方法三 : 运行autoinstaller时使用--source参数指定镜像地址。

准备工作

  1. 虚拟主机需要禁用掉所有控制语言,如:php, pl, cgi, py, fcgi等。
  2. 放置镜像的文件夹需要添加+FollowSymLinks属性。
  3. 确保rsync://rsync.autoinstall.plesk.com/autoinstall和rsync://autoinstall-win.plesk.com/autoinstall(或其他用户指定的镜像地址)能被访问到。
  4. 服务器的PHP需要支持以下扩展:ssh2_connect, simplexml, XML DOM

下面演示了如果在不同版本的系统中安装需要的PHP扩展(在其它版本的系统中安装过程可能会有所不同):

CentOS 5:

# yum install php-cli php-devel php-pear php-xml openssl-devel gcc
# wget http://libssh2.org/download/libssh2-1.4.0.tar.gz
# tar -xzf libssh2-1.4.0.tar.gz
# cd libssh2-1.4.0
# ./configure
# make install all
# pecl install -f ssh2
# echo "extension=ssh2.so" >> /etc/php.d/ssh2.ini
# /etc/init.d/httpd restart

CentOS 6:

#yum install gcc php-devel php-pear libssh2 libssh2-devel make
#pecl install -f ssh2
#echo extension=ssh2.so > /etc/php.d/ssh2.ini
#service httpd restart
#php -m | grep ssh2 

Ubuntu 10.04:

# apt-get install libssh2-1 libssh2-php php5-cli

Debian 5.0:

# apt-get install libssh2-1 libssh2-1 php5-cli php-pear php5-dev
# wget http://libssh2.org/download/libssh2-1.4.0.tar.gz
# tar -xzf libssh2-1.4.0.tar.gz
# cd libssh2-1.4.0
# ./configure
# make install all
# echo "extension=ssh2.so" >> /etc/php5/conf.d/ssh2.ini
# /etc/init.d/apache2 restart

解决方案 : mirrorctl

安装工具下载地址: mirrorctlv2.0.1.zip

mirrorctl参数

注意 : 所有针对windows的镜像,都要额外添加--win参数,参考下面的使用实例

show-all-releases [--win] [--src-host=<源地址>] - 查看所有版本Plesk。

product-list 已过时,被show-all-releases替代。

os-list --release=<产品版本> - 查看指定产品支持的操作系统。

本地源配置选项 :

cfg --add [--win] --release=<产品版本> --os=<针对的操作系统> [--cfg-file=<配置文件的路径>] - 为产品添加支持的操作系统。

cfg --remove [--win] --release=<产品版本> --os=<针对的操作系统> [--cfg-file=<配置文件的路径>] - 删除产品支持的操作系统。

cfg --check [--win] [--cfg-file=<配置文件的路径>] - 检查配置文件是否正确, 包括检查在'plesk.inf3'配置的产品版本和系统版本是否被支持。

cfg --import --path=<源路径> - 导出本地源的配置

cfg --export --path=<源路径> - 保存本地源的配置

本地源同步选项 :

update [--win] --path=<源路径> - 依照配置文件的变动更新源文件。

注意 : update 命令只试用于从默认源更新( rsync://autoinstall.plesk.com )。 如果你想通过其它源更新,请使用下面的 push 命令。

push [--win] --src-host=<源地址> --path=</repository/path> [--cfg-file=<config>] [--private-key=<key> --public-key=<key>] - 合并本地源和默认源,更新默认源配置。

注意 : 为了避免混淆,push命令的配置文件最好和update命令的配置文件分开。

基本属性 :

version – 查看工具版本

help, -h, --help – 查看帮助

其它属性 :

--path : 用来设定接收数据的主机的属性,包括用户名、密码、主机名、端口、路径。

格式 :

--path=[login[:password@][host:][port]/path/to/repository

注意 : 所指定的路径必须存在,并且登陆的用户具有该目录的rwx属性。

例子: 使用全部参数

--path=root:[email protected]:344/path/to/repository

指定用户名:

[email protected]:/path/to/repository

指定端口 : 此时用户名与ssh keys中的一致

--path=server.domain.com:4322/path/to/repository

指定用户名和密码 : 使用默认端口

--path=root:[email protected]:/path/to/repository

指定本地源地址 :

--path=/path/to/repository

--src-host 用来设定源主机属性(使用rsync命令的格式,参照 "man rsync")。

格式一 : 为源设置rsync守护进程

--src-host=rsync://[user@]host[:port]/path

注意 : 当使用rsync协议时, 需要开启本主机的rsyncd守护进程, 同时守护进程能同时被源主机和本主机访问到。

格式二 : 通过SSH连接获取数据

--src-host=[user@]host:/path

注意 : 当使用SSH同步数据时,你需要配置SSL密钥,使得--path指定的主机能不需要密码访问到--src-host指定的主机; 同时 --src-host指定的主机能不需要密码访问到--src-host指定的主机。

格式三 : 从本地硬盘获取数据

--src-host=/path

注意 : push命令中-src-host指定的主机必须和--path指定的主机为同一物理机。

安装流程

  1. 下载Plesk镜像安装工具:Plesk Mirror Setup
  2. 解压缩。
  3. show-all-releases命令查看产品所有版本,os-list命令查看所有支持的操作系统,确定要安装的产品版本和系统。
  4. 利用cfg --add命令和cfg --remove命令添加或删除本地源的配置。
  5. 利用cfg --export导出本地源的配置,导出的配置会被保存在指定目录的'mirror.xml'文件中。
  6. 利用cfg --import命令导入之前生成的配置或由mirrorctl生成的其它镜像的配置,保存在path/mirror.xml。
  7. 利用update命令创建镜像,注意,只有在配置文件中给定的镜像会被安装。
  8. 你可以利用--path添加非官方源到工具中。

使用实例

准备工作

下载最近版本的安装工具,解压缩,进入解压后的文件夹:

# wget --output-document=/opt/mirrorctl.zip http://kb.plesk.com/Attachments/18911/Attachments/mirrorctlv2.0.1.zip
# unzip /opt/mirrorctl.zip
# cd /opt/mirrorctl

用例1 - 创建指定产品版本和操作系统的镜像

PP 10.4.4 for Deb 5.0 i386 & Ubuntu 8.04 i386,
PPP 9.5.4 for CentOS5 x86_64,
SiteBuilder 4.5 for Ubuntu 8.04 i386
PP 10.4.4 for Windows

命令:

1. 创建配置文件,添加要支持的产品版本和操作系统

$ ./mirrorctl cfg --add --release=PLESK_10_4_4 --os=deb5.0_i386
$ ./mirrorctl cfg --add --release=PLESK_10_4_4 --os=ubt8.04_i386
$ ./mirrorctl cfg --add --release=PLESK_9_5_4 --os=cos5_x86_64
$ ./mirrorctl cfg --add --release=SB_4_5_0 --os=ubt8.04_i386
$ ./mirrorctl cfg --add --win --release=PANEL_10_4_4_WIN --cfg-file=./plesk_win_mirror

2. 为镜像创建目录

$ mkdir /var/www/html/mirror/
$ mkdir /var/www/html/mirror_windows/

3. 与官方源同步文件

$ ./mirrorctl update --path=/var/www/html/mirror/
$ ./mirrorctl update --win --path=/var/www/html/mirror_windows/ --cfg-file=./plesk_win_mirror

4. 查看新创建的镜像支持的产品版本

$ ./mirrorctl show-all-releases --src-host=/var/www/html/mirror/
$ ./mirrorctl show-all-releases --win --src-host=/var/www/html/mirror_windows/

5. 查看给定产品支持操作系统

$ ./mirrorctl os-list --release=PLESK_10_4_4 --src-host=/var/www/html/mirror/

用例2: 为镜像配置定期更新

命令:

  1. 为镜像创建配置文件,添加需要的产品版本和操作系统

    $ /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_10_4_4 --os=deb5.0_i386 --cfg-file=/var/www/html/mirror/myconfig.xml
    $ /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_10_4_4 --os=ubt8.04_i386 --cfg-file=/var/www/html/mirror/myconfig.xml
    $ /home/user/mirrorctl/mirrorctl cfg --add --release=PLESK_9_5_4 --os=cos5_x86_64 --cfg-file=/var/www/html/mirror/myconfig.xml
    $ /home/user/mirrorctl/mirrorctl cfg --add --release=SB_4_5_0 --os=ubt8.04_i386 --cfg-file=/var/www/html/mirror/myconfig.xml
    $ /home/user/mirrorctl/mirrorctl cfg --add --win --release=PANEL_10_4_4_WIN --cfg-file=/var/www/html/mirror/windows_myconfig.xml
    
  2. 配置镜像自动更新

    $ crontab -l
    # m h dom mon dow command
    59 23 * * * cd /home/user/mirrorctl/ && ./mirrorctl update --path=/var/www/html/mirror/ --cfg-file=/var/www/html/mirror/myconfig.xml > ./mirror-cron.log 2>&1
    59 22 * * * cd /home/user/mirrorctl/ && ./mirrorctl update --win --path=/var/www/html/mirror_windows/ --cfg-file=/var/www/html/mirror/windows_myconfig.xml > ./mirror-cron-win.log 2>&1
    

用例3: 添加操作系统

为指定的产品版本添加操作系统。

命令:

  1. 导入之前用mirrorctl工具创建的当前源的配置文件:

    $ ./mirrorctl cfg --import --path=/var/www/html/mirror/ --cfg-file=myconfig
    
  2. 为需要的添加操作系统的产品添加操作系统:

    $ ./mirrorctl cfg --add --release=PLESK_9_5_4 --os=cos5_i386 --cfg-file=myconfig
    
  3. 同步镜像:

    $ ./mirrorctl update --path=/var/www/html/mirror/ --cfg-file=myconfig
    

用例4 - 下载指定版本的产品和操作系统模板

我想从官方源上下载一个特定版本的产品而不下载其它版本的镜像。

命令:

  1. 创建一个配置文件包含你要下载的产品版本和系统版本。

    $ ./mirrorctl cfg --add --release=PLESK_10_4_4 --os=cos5_i386 --cfg-file=./temp-config
    $ ./mirrorctl cfg --add --release=PLESK_10_4_4 --os=cos5_x86_64 --cfg-file=./temp-config
    
  2. 利用push命令下载操作系统到产品中:

    $ ./mirrorctl push --path=/var/www/html/mirror/ --cfg-file==./temp-config
    

用例5 - 为测试新产品软件创建测试镜像

我想要为新版本的产品创建一个测试镜像,测试后更新到主源。

命令:

  1. 为测试新产品软件创建测试镜像

    $ ./mirrorctl cfg --add --release=PLESK_10_4_4 --os=all --cfg-file=./test-config
    $ ./mirrorctl update --path=/var/www/html/test-mirror/ --cfg-file=./test-config
    
  2. 测试新的版本

  3. 更新全部源到主镜像。

    $ ./mirrorctl push --src-host=/var/www/html/test-mirror/ --path=/var/www/html/mirror/ --cfg-file=./test-config
    

注意: 如果不使用--src-host参数,新的产品版本会被上传到官方源。

用例6 - 为测试新的操作系统创建测试镜像

我想要为已有的产品创建一个测试镜像,测试特定的操作系统模板,测试后更新到主源。

命令:

    1. 为PLESK_10_4_4创建一个测试镜像包含指定的操作系统:

      $ ./mirrorctl cfg --add --release=PLESK_10_4_4 --os=cos5_i386 --cfg-file=./test-config
      $ ./mirrorctl cfg --add --release=PLESK_10_4_4 --os=cos5_x86_64--cfg-file=./test-config
      $ ./mirrorctl update --path=/var/www/html/test-mirror/ --cfg-file=./test-config
      
    2. 查看所有支持的产品的版本,查看所有支持的操作系统的版本。

$ ./mirrorctl show-all-releases --src-host=/var/www/html/test-mirror/
$ ./mirrorctl os-list --release=PLESK_10_4_4 --src-host=/var/www/html/test-mirror/
  1. 创建配制文件

    $ ./mirrorctl cfg --add --release=PLESK_10_4_4 --os=cos5_i386 --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml
    
  2. 检查测试源的配置文件是否有效:

    $ ./mirrorctl cfg --check --src-host=/var/www/html/test-mirror/ --cfg-file=push.xml
    
  3. 更新选择的产品和操作系统到主源:

    $ ./mirrorctl push --src-host=/var/www/html/test-mirror/ --path=/var/www/html/mirror/ --cfg-file=push.xml
    

注意: 如果不使用--src-host参数,新的产品版本会被上传到官方源。

注意: 如果不指定--cfg-file参数, 会使用默认的配置文件: BUILD/config.xml (与工具同目录)。只有在配置文件中指定的产品版本和操作系统会被上传到主源。

注意: 如果--cfg-file参数错误, 会使用push命令中指定的配置文件。

管理远程源

该工具可以用来管理远程的源,不过有一些限制。下面是一些例子演示如何通过 --path--src-host参数来管理远程的源。

利用 --path 参数管理远程镜像:

    1. 指定用户名、密码、主机:

      --path=user:[email protected]:344/var/www/html/
      --path=user:[email protected]:22/var/www/html/
      --path=root:[email protected]:/var/www/html/
      
    2. 使用SSH Keys登录 (需要公钥和私钥):

      --path=192.168.100.100:/var/www/html/
      

      如果当前用户的密钥不存在,会使用$HOME/.ssh/中的密钥。

      [email protected]:344/var/www/html/
      

使用指定密钥:

[email protected]:344/var/www/html/ --private-key=~/.ssh/id_mirror --public-key=~/.ssh/id_mirror.pub

使用--src-host参数的例子:

    1. 使用rsync协议:

      [email protected]:/var/www/html/test-mirror/
      --src-host=mytestmirror.tld:/var/www/html/test-mirror/
      
      • 在上面的例子中,禁止指定密码和端口
      • 当使用--src-host参数时, 用户需要设定SSH Keys验证,使得机器能连接到--src-host参数中指定的服务器。
      • 如果同时使用了--src-host参数和--path参数,同样的,--path也需要设定好SSH Keys验证,使得机器能连接到--path参数中指定的路径。
    2. 在服务器上设立rsync守护进程

--src-host=rsync:// mytestmirror.tld:873/testmirror

rsync配制的例子:

# head /etc/rsyncd.conf
[testmirror]
path = /var/www/html/test-mirror/
comment = Test repository

.

# cat /etc/xinetd.d/rsync
service rsync
{
# disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

当镜像配制为EZ模板

用该工具创建的镜像可以很容易配制为EZ模板。

步骤 1. 为你的虚拟主机添加http://autoinstall.plesk.com别名, Apache只需要添加下面代码到Apache配制文件的VirtualHost区块中。

ServerAlias  "autoinstall.plesk.com"

步骤 2 修改DNS服务器,将autoinstall.plesk.com解析到你镜像服务器的IP。或者你可以添加<mirror IP> autoinstall.plesk.com到节点主机的/etc/hosts文件中。

# echo  "192.168.10.10 autoinstall.plesk.com" >> /etc/hosts

步骤 3. 创建符号链接,为PSA 10.4.4创建符号链接的例子:

# cd /var/www/html/mirror/
# ln -s PSA_10.4.4 PSA10
# ln -s BILLING_10.4.4 BILLING10
# ln -s BILLING_10.4.4 PANEL_BILLING
# ln -s SITEBUILDER_10.4.4 SITEBUILDER5
# ln -s SITEBUILDER_10.4.4 PANEL_SITEBUILDER
# cd ubuntu
# ln -s PSA_10.4.4 PANEL
# ln -s PSA_10.4.4 PSA10
# cd ../debian/
# ln -s PSA_10.4.4 PANEL
# ln -s PSA_10.4.4 PSA10
# ln -s SITEBUILDER_10.4.4 PANEL_SITEBUILDER
# ln -s SITEBUILDER_10.4.4 SITEBUILDER5
# ln -s BILLING_10.4.4 PANEL_BILLING
# ln -s BILLING_10.4.4 BILLING10

注意:在某些例子中,需要为镜像添加读和执行的权限:

# chmod -R a+rx var/www/html/mirror/
1 639
发帖人: 飞飞飞

在Plesk 12中创建域名失败,出现操作时间过长的错误,而且还能看到很多fail2ban进程,这是怎么回事?

1 550
从http转移到https是未来大趋势! 发帖人: 飞飞飞 3 787
VPS常见的问题和解决方法 发帖人: baidudu 3 602