现在的位置: 首页linux>正文
Ubuntu Server 安装 IspCP Omega 虚拟主机管理平台系统
发表于11年前 linux Ubuntu Server 安装 IspCP Omega 虚拟主机管理平台系统已关闭评论

IspCP Omega 简单介绍:

IspCP 是作为另一款开源虚拟主机管理系统 VHCS2 的替代产品,采用 Apache2+PHP5(fastcgi模式,支持每个虚机独立的php.ini)+MySQL5(提供内置的 phpmyadmin) 提供 Web 服务(也支持传统的 CGI),FTP 采用 Proftpd(也支持 webftp 功能),邮件是 postfix+courier+squirrermail,和 IspCP 管理平台(PHP 代码,支持管理员、代理商、虚拟主机用户三级用户,相互之间可以自由切换,自由增加子域名、FTP、MySQL、Mail 账号),另外对于每个虚拟主机都有独立的每天完整备份机制(可以用 FTP 下载)。

参考网站和官方文档:

http://isp-control.net/

http://www.isp-control.net/documentatio … ion/ubuntu

实测环境:

Ubuntu Server 8.04.2 hardy

最好是使用全新安装的系统。

安装前的准备工作:

升级系统,直接以 root 身份来执行:

代码:

sudo -s

apt-get update && apt-get dist-upgrade

然后,清理一下系统:

代码:

apt-get remove ppp pppconfig pppoeconf ubuntu-standard

update-inetd –remove daytime

update-inetd –remove telnet

update-inetd –remove time

update-inetd –remove finger

update-inetd –remove talk

update-inetd –remove ntalk

update-inetd –remove ftp

update-inetd –remove discard

apt-get autoremove

dpkg -l | grep ^rc | awk ‘{print $2}’ | xargs dpkg -P

aptitude purge ~ilinux-image-.*\(\!`uname -r`\)

安装 ispcp 需要的软件包

下载解压 ispcp:

代码:

cd /root

wget http://ncu.dl.sourceforge.net/sourceforge/ispcp/ispcp-omega-1.0.0.tar.bz2

tar ispcp-omega-1.0.0.tar.bz2

cd ./ispcp-omega-1.0.0

在进行下一步之前确认下 ubuntu 的版本:

代码:

cat /etc/issue

根据版本选择具体的脚本,

8.04:

代码:

apt-get install $(cat ./docs/Ubuntu/ubuntu-packages-hardy)

8.10:

代码:

apt-get install $(cat ./docs/Ubuntu/ubuntu-packages-interpid)

建议系统已经安装相关软件包的,使用 apt-get remove 替换上面的代码先卸载,并清除配置文件。一定要先备份相关配置和数据。

对于 courier 的配置,选择“no”。

postfix 选择“Internet site”,然后填“root”。接下来的域是在安装系统时填写的,最好不要用未来准备使用的域名(否则收不到邮件,因为系统接管了,不能作为虚拟域)。最后选择“no”。

proftpd 选择“Standalone”即可。

rootkithunter 选择两个“Yes”。

这些配置不一定全会设置,看之前是否有安装过。

配置安装脚本

可选的操作,建议事先修改一下 ispcp.conf 文件。

代码:

nano ./configs/ubuntu/ispcp.conf

修改下面的设置:

代码:

DEFAULT_ADMIN_ADDRESS = larryli@test.com # 管理员邮箱

BASE_SERVER_IP = 0.0.0.0 # 监控所有 IP

BASE_SERVER_VHOST = admin.test.com # ispcp 的域名

PHP_FASTCGI = fastcgi # 使用 fastcgi 另一个不能用

AWSTATS_ACTIVE = yes # 开启 awstats 统计

BACKUP_HOUR = 5 # 自动备份的时间

BACKUP_MINUTE = 1

DATE_FORMAT = Y-m-d # 日期格式

安装 ispcp

代码:

make -f Makefile.ubuntu install

等待脚本执行完成后,再运行安装脚本:

代码:

cd /var/www/ispcp/engine/setup

建议另外打开一个控制台运行下面的命令,以便安装脚本获取随机数:

代码:

perl -le ‘$_ = 1; (1 x $_) !~ /^(11+)\1+$/ && print while $_++’;

如果,遇到脚本有卡死的现象,就只有在服务器上登录一个控制台,随便按几下键盘。之前我有在 putty 虚拟控制台上安装,总是在下面的一步过不去。。。

另外,安装时需要 mysql 的 root 密码。

代码:

./ispcp-setup

要填写的选项,上面基本已经设置过了。需要再次重申的就是,一定要用 fastcgi。密码的设置只需要记下 ispcp 管理员的那个。postfix 和 proftpd 的让脚本自动生成就不用管了。

安装完成后,可以先手工清除临时文件:

代码:

rm -fR /tmp/ispcp

重启系统:

代码:

shutdown -r now

然后,访问设置的 ispcp 域名。比如 http://admin.test.com

登录后访问 http://admin.test.com/admin/multilanguage.php 上传中文语言包(语言包 ispcp 有自带),然后在 http://admin.test.com/admin/settings.php 设置为默认语言。

双线主机的 IP 设置

ispcp 能管理服务器的多个 ip,但是国内的双线主机实际是要在两个 ip 上同时设置。

代码:

nano /etc/ispcp/ispcp.conf

修改内容:

代码:

BASE_SERVER_IP = 0.0.0.0

然后

代码:

nano /etc/apache2/sites-enabled/00_master.conf

修改

代码:

<VirtualHost 0.0.0.0:80>

重启 apache

代码:

/etc/init.d/apache2 restart

在 ispcp 的 ip 管理 http://admin.test.com/admin/ip_manage.php 删除原有的 ip,增加 0.0.0.0 这个 ip 即可。

模板修改

模板在 /var/www/ispcp/gui/themes/ 目录,貌似只支持 omega 这一个,直接修改它的文件好了。

建议修改 /var/www/ispcp/gui/domain_default_page/ 的默认虚拟主机页面和 /var/www/ispcp/gui/errordocs/ 的默认出错页面。

对于在线修改错误页面中文乱码的问题:

代码:

nano /var/www/ispcp/gui/client/error_edit.php

修改如下:

代码:

# 找到 $tpl->assign(array(‘ERROR’ => htmlentities($error))); 修改为

$tpl->assign(array(‘ERROR’ => htmlspecialchars($error)));

另外还有:

代码:

nano /var/www/ispcp/gui/include/ispcp-lib.php

修改:

代码:

# 修改 $_POST = $purifier->purifyArray($_POST);

if (isset($_POST[‘error’]) && isset($_POST[‘uaction’]) && $_POST[‘uaction’] === ‘updt_error’) $error = $_POST[‘error’];

$_POST = $purifier->purifyArray($_POST);

if (isset($_POST[‘error’]) && isset($_POST[‘uaction’]) && $_POST[‘uaction’] === ‘updt_error’) $_POST[‘error’] = $error;

修改默认模板后邮件乱码的问题

这个没完全修改好,可能有些邮箱收到的邮件标题还是会有问题:

代码:

nano /var/www/ispcp/gui/include/admin-functions.php

内容如下:

代码:

# 找到 function encode($in_str, $charset = ‘UTF-8’) { 的 if ($out_str && $charset) { 行,增加

if (function_exists(‘mb_strlen’)) {

$start = “=?” . $charset . “?B?”;

$end = “?=”;

$encoded = “”;

$mb_length = mb_strlen($out_str, $charset);

// Each line must have length <= 75, including $start and $end

$length = 75 – strlen($start) – strlen($end);

// Average multi-byte ratio

$ratio = $mb_length / strlen($out_str);

// Base64 has a 4:3 ratio

$offset = $avgLength = floor($length * $ratio * .75);

for ($i = 0; $i < $mb_length; $i += $offset) {

$lookBack = 0;

do {

$offset = $avgLength – $lookBack;

$chunk = mb_substr($out_str, $i, $offset, $charset);

$chunk = base64_encode($chunk);

$lookBack++;

}

while (strlen($chunk) > $length);

$encoded .= $chunk . “\r\n”;

}

// Chomp the last linefeed

return $start . substr($encoded, 0, -strlen(“\r\n”)) . $end;

}

允许增加一个字母的子域名

很多时候用户希望域名越短越好,ispcp 则不允许。。。

代码:

nano /var/www/ispcp/gui/include/input-checks.php

在 chk_username 中,找到:

代码:

if (!preg_match(“/^[A-Za-z0-9][A-Za-z0-9\.\-_]*[A-Za-z0-9]$/D”, $username))

修改为:

代码:

if (!preg_match(“/^[A-Za-z0-9][A-Za-z0-9\.\-_]*$/D”, $username))

在 check_dn_token 中找到:

代码:

if (!preg_match(“/^([A-Za-z0-9])([A-Za-z0-9\-]*)([A-Za-z0-9])$/D”, $data))

修改为:

代码:

if (!preg_match(“/^([A-Za-z0-9])([A-Za-z0-9\-]*)$/D”, $data))

安装 Zend Optimizer

先下载好了,具体请访问 http://www.zend.com/

代码:

cd /tmp

tar zxvf ~/ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz

cd ZendOptimizer-3.3.3-linux-glibc23-i386/

./install.sh

安装时选择 php.ini 目录为 /etc/php5/cgi,不使用 Apache。

完成后,修改下面的文件:

代码:

nano /etc/ispcp/fcgi/parts/master/php5/php.ini

nano /etc/ispcp/fcgi/parts/php5/php.ini

nano /var/www/fcgi/master/php5/php.ini

内容均为在最后增加:

代码:

[Zend]

zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.3

zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.3

zend_optimizer.version=3.3.3

zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so

zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

当然也可以把这个单独保存为 zend.ini 到 conf.d 目录。就像下面提到的方法。

上面的修改对于已存在的虚拟主机需要一一修改各自的 php.ini 才行。

安装 mcrypt 或其他 PHP 扩展

代码:

nano /etc/php5/conf.d/mcrypt.ini

内容为:

代码:

extension=mcrypt.so

然后,做一个软链接:

代码:

ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/cgi/conf.d/mcrypt.ini

上诉修改后都需要重启 apache。

对于 ispcp 的使用无需多言,很简单明了。

目前只是支持 php5 和 cgi,不过直接修改配置文件可以让虚拟主机支持 tomcat/jsp、python 等其他语言,只是没有管理平台可用。

报歉!评论已关闭.

不想听你唠叨×