2015 年 9 月 13 日

这几天天天逛着directadmin的官方论坛,看到这样的一个插件,使用了几天相当不错,发出来给大家看看。
插件原帖地址:http://forum.directadmin.com/showthread.php?t=44743
插件建议要求版本DirectAdmin 1.45.4 以及以上。

CB2.0都有什么内容? (不翻译了,大家能看懂)

Major change: nginx webserver support
Major change: nginx+apache combination support (nginx as a reverse proxy)
Major change: LiteSpeed webserver support (warning: commercial product, so please upload your license key to configure/litespeed before installation) with lsphp support as a PHP mode using LiteSpeed SAPI.
Major change: pigeonhole support
Major change: php-fastcgi support (using mod_fcgid)
Major change: PHP-FPM support was added, new paths to PHP binaries/configs (/usr/local/php53(54))
Major change: mod_ruid2 support was added (you can use it together with suPHP)
Major change: new way of PHP exension installations (using php.conf.d, not the main php.ini), ability to include many new extensions to the future versions of CB
Major change: mysqlnd (MySQL native driver) is used for MySQL, pdo-MySQL and MySQLi in php configuration.
Added htscanner support.
Added suhosin support.
Added zend opcache support.
Added custom_versions.txt support.
Added pigz support (./build pigz).
Added “./build version” to show the CustomBuild version.
Added “./build mysql_backup” to do MySQL backup only (without installation).
Added libxml2, libxslt and clamav files to /configure/ directory, so they are not hardcoded anymore, and there is ability to customize them.
Added automatic upload scans with ClamAV for ProFTPd, Pure-FTPd and PHP (using suhosin).
Dropped mod_perl support.
Added –with-xsl, –enable-soap to PHP configuration files
php1_mode/php2_mode + php1_release/php2_release options.conf settings. php1_release is the main version of PHP, php2 is the additional one.
Major change: if php1/php2_mode is set to suphp, fastcgi or php-fpm, event Apache MPM is used (when no mod_php is selected).
Major change: pureftpd is now the default FTP service. New option: ftpd=pureftpd/proftpd. (replaced old pureftpd=yes/no, proftpd=yes/no)
Added PHP 5.5 support
Added PHP 5.6 support
Using PHP 5.5 as mod_php + mod_ruid2 by default (except FreeBSD systems where PHP 5.5 is installed in suPHP mode without mod_ruid2)
Dropped PHP 4.4, 5.2 support
Dropped Apache 1.3, 2.0, 2.2 support
Dropped MySQL 4.1 support
Dropped UebiMiau and Atmail Open webmail support.
Ability to install PHP 5.3, 5.4 or 5.5 together (2 versions of any combination)
Automatic exim.conf changes after installation/update of ClamAV/SpamAssassin (it uses includes of /etc/exim.spamassassin.conf and /etc/exim.clamav.conf in /etc/exim.conf.

如何升级到CustomBuild 2.0?
1.最好是先执行一些预安装命令,详见官方说明文档:http://help.directadmin.com/item.php?id=354
2.删除原先的版本,升级到2.0

  1. cd /usr/local/directadmin
  2. mv custombuild custombuild_1.x
  3. wget -O custombuild.tar.gz http://files.directadmin.com/services/custombuild/2.0/custombuild.tar.gz
  4. tar xvzf custombuild.tar.gz
  5. cd custombuild
  6. ./build update_da

复制代码

3.打开 /usr/local/directadmin/custombuild/option.conf??,检查默认选项,设置为你想要的相应软件版本,
设置完后,SSH里面执行

  1. ./build options

复制代码

,输入类似以下设置结果,看看是不是跟你预想的一样。

  1. Apache: 2.4.3
  2. Dovecot: 2.1.10
  3. MySQL: 5.5.27
  4. PHP (default): 5.4.7 as mod_php
  5. Run “clean” every time: yes

复制代码

确认没错,然后执行。

  1. ./build apache
  2. ./build php n
  3. ./build rewrite_confs

复制代码

当然你也可以全部重建,

  1. ./build all d

复制代码

 

注意事项:
如果选择安装nginx,php模式选择php-fpm,
不可同时将php1_release和php2_release设置为相同版本。
如果设置了php2_release,不可同时设置php1_mode和php2_mode为mod_php
不可把mod_ruid2和php-fpm或者php-fastcgi同时使用。

到这里只是完成安装CustomBuild 2.0,为了后续操作方便,我们今天要重点介绍插件CustomBuild 2.0 UI,图形化操作界面。
该插件由smtalk 一个活跃在DA官方论坛的技术人员开发,在论坛里面有问必答。(说真的,国外的技术论坛跟国内的差距就是很大啊!)
插件发布页面:CustomBuild 2.0 UI??http://forum.directadmin.com/showthread.php?t=48989

大家可以直接进入DA后台插件目录,直接通过连接安装,或者是下载到本地然后上传到DA插件目录里面。
插件下载地址:http://www.custombuild.eu/plugin/custombuild.tar.gz

如果你执行了我以上说升级CB2.0以及build Apache以及php两个软件,那你安装这个插件后,应该可以看到这个界面。
01

点击链接后,显示的是这样

02

在这个界面里面可以完成所有需要通过命令行才能执行的custombuild的相关操作,比如升级版本,选择对应版本等等操作,功能十分强大。
具体还要大家自己去尝试。
03
04

执行命令是显示的类似如下图效果,
05

这下妈妈不用担心我重建系统时SSH卡掉线了!。。

2013 年 8 月 30 日

问: 以下几种方式测试磁盘读写速度有什么区别?

dd bs=1M count=128 if=/dev/zero of=test

dd bs=1M count=128 if=/dev/zero of=test; sync

dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync

dd bs=1M count=128 if=/dev/zero of=test oflag=dsync

答:区别在于内存中写缓存的处理方式。

dd bs=1M count=128 if=/dev/zero of=test

没有加任何参数,dd默认的方式不包括“同步(sync)”命令。也就是说,dd命令完成前并没有让系统真正把文件写到磁盘上。所以以上命令只是单纯地 把这128MB的数据读到内存缓冲当中(写缓存[write cache])。所以你得到的将是一个超级快的速度。因为其实dd给你的只是读取速度,直到dd完成后系统才开始真正往磁盘上写数据,但这个速度你是看不 到了。所以如果这个速度很快,先不要偷着乐。呵呵

dd bs=1M count=128 if=/dev/zero of=test; sync

和前面1中的完全一样。分号隔开的只是先后两个独立的命令。当sync命令准备开始往磁盘上真正写入数据的时候,前面dd命令已经把错误的“写入速度”值显示在屏幕上了。所以你还是得不到真正的写入速度。

dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync

加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,所以这时候你得到的是读取这128M数据到内存并写入到磁盘上所需的时间,这样算出来的时间才是比较符合实际的。

dd bs=1M count=128 if=/dev/zero of=test oflag=dsync

加入这个参数后,dd在执行时每次都会进行同步写入操作。也就是说,这条命令每次读取1M后就要先把这1M写入磁盘,然后再读取下面这1M,一共重复128次。这可能是最慢的一种方式了,因为基本上没有用到写缓存(write cache)。

问:那应该用哪一种呢?

答:建议使用

dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync

因为这种方式最接近计算机实际操作,所以测出来的数据最有参考价值。

PS:

写: dd if=/dev/zero of=test.bin bs=4096 count=1M conv=fdatasync

读: dd if=test.bin of=/dev/zero bs=4096 count=1M iflag=direct

 

 

英文原文

http://romanrm.ru/en/dd-benchmark

2013 年 7 月 19 日

1、现象

login as: root

Access denied

root@10.10.40.62′s password:
Last login: Fri Aug 24 21:19:57 2012 from 10.10.10.10
[root@node62 ~]#
2、解决

解决方法:

默认的情况下 /etc/ssh/sshd_config 是一个 全部注释得文件 去掉注释 PermitRootLogin??yes??就可以登陆了

如果不行,继续以下操作。

# vim /etc/ssh/sshd_config
注释掉
GSSAPIAuthentication yes
取消注释
UseDNS yes
# /etc/init.d/sshd restart
Stopping sshd: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [ ?OK ?]
Starting sshd: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [ ?OK ?]
如果登录慢

客户端:

vi /etc/ssh/ssh_conf?

找到?

GSSAPIAuthentication yes?

改为?

GSSAPIAuthentication no?

修改/etc/ssh/sshd_config内的 UseDns注释去掉并改为

UseDns no

如果没有就加上上面这句

2013 年 7 月 9 日

IMAP是电子邮件客户端组件,

本文环境为Centos 64位 DirectAdmin

32 bit

yum install krb5-devel libc-client libc-client-devel -y
wget http://dave.t0xic.nl/tars/imapback-2004c1-x86.tar.gz
tar xzf imapback-2004c1-x86.tar.gz
cd imap-2004c1
./buildit
cd c-client
mkdir /usr/local/imap-2004c1/
mkdir /usr/local/imap-2004c1/lib
mkdir /usr/local/imap-2004c1/include
cp *.h /usr/local/imap-2004c1/include
cp *.c /usr/local/imap-2004c1/lib
cp c-client.a /usr/local/imap-2004c1/lib
ln -s /usr/local/imap-2004c1/c-client.a /usr/local/imap-2004c1/libc-client.a

64bit

yum install krb5-devel libc-client libc-client-devel -y
cd /usr/local/directadmin/custombuild
wget http://dave.t0xic.nl/tars/imapback-2004c1-x86_64.tar.gz
tar xzf imapback-2004c1-x86_64.tar.gz
cd imap-2004c1
./buildit
cd c-client
mkdir /usr/local/imap/
mkdir /usr/local/imap/lib
mkdir /usr/local/imap/include
cp *.h /usr/local/imap/include
cp *.c /usr/local/imap/lib
cp c-client.a /usr/local/imap/lib
ln -s /usr/local/imap/c-client.a /usr/local/imap/libc-client.a

然后添加编译php的参数 重新编译成一次 即可

--with-pic \
--with-imap=/usr/local/imap \
--with-imap-ssl=/usr/local/imap

最后测试
php -m | grep imap

2013 年 6 月 8 日

一般情况下,现在新安装directadmin, 都建议不要用那个缺省的CLI模式而选择CGI模式,尤其当你遇到CPU负载飙高的时候,CGI模式可以看到是哪个账户的占用,这点比CLI模式更方 便。其实,我一直也是CGI模式的安装,不过今天有遇到朋友希望CLI转换为CGI,百度找到那些教程千篇一律的复制粘贴,我就有了动手试试的冲动。

首先,我们编辑custombuild选项中的PHP模式,将CLI设定no,CGI设定yes

cd /usr/local/directadmin/custombuild ./build update ./build clean nano options.conf

注意图中的着重框起来的部分,就是修改后的部分。

php

如果nano运行报错没有安装的话,请安装,也可以用VI命令编辑都可以的。接着,我们重编译PHP。

./build php n

记住用screen,这一步可能比较久。

下面就是遇到的问题了,最容易出现的,就是旧的账户可能报500错误,这是权限问题导致,多半是之前CLI的时候设定了777,遵循文件夹755,文件644的原则去修改下文件权限就可以了。如果遇到squirrelmail或者phpmyadmin报错,也请尝试重build。我是新装了一个DA用的CLI然后放一个WP之后转换再试的,目前就是遇到一个权限问题修改了就OK,我在慢慢摸索可能遇到的更多的问题,网上流传的那个2010年出来的转换方式很可能根本就不成功,大家要留意。

最新版本的DA面板安装,我推荐大家直接在自定义安装的时候选择一起安装 好Zend和ioncube等,eAccelerator的话我看过很多国外主机商他们都没有安装这个,所以,我建议……不装它(当然,您也可以编译安装 下)。

XCache也是一款免费的PHP加速器,今天,我们主要分享如何在DA上安装XCache。

首先说下前提,我的DA编译的组件版本:Apache2.2,PHP5.3.25,MySQL5.5,CGI模式的。

目前,XCache最新的版本为3.0.1,我们就在DA上安装XCache,以下是编译过程:

?View Code PHP
1
2
3
4
5
6
7
8
cd /usr/local/src/
wget http://xcache.lighttpd.net/pub/Releases/2.0.1/xcache-2.0.1.tar.gz
tar -zxvf xcache-2.0.1.tar.gz
cd xcache-2.0.1
export PHP_PREFIX="/usr/local"
$PHP_PREFIX/php5/bin/phpize
./configure --enable-xcache -with-php-config=$PHP_PREFIX/php5/bin/php-config
make && make install

编译完成后,我们修改php.ini文件,将XCache加入,请加入以下代码在Zend的上面。

?View Code PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[xcache-common]
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/"
extension = xcache.so
[xcache.admin]
xcache.admin.user = "admin"
xcache.admin.pass = ""
; xcache.admin.pass = md5($your_password)
xcache.admin.enable_auth = On
[xcache]
xcache.cacher =               On
xcache.size  =               64M
xcache.count =                 1
xcache.slots =                8K
xcache.ttl   =              3600
xcache.gc_interval =         300
xcache.var_size  =            0M
xcache.var_count =             1
xcache.var_slots =            8K
xcache.var_ttl   =             0
xcache.var_maxttl   =          0
xcache.var_gc_interval =     300
xcache.readonly_protection = Off
xcache.mmap_path =    "/dev/zero"

完成后,重启Apache。

service httpd restart

查看是否编译和加载成功。

php –v

 

有两点注意事项,在这里提及下。

第一点,就是我们修改php.ini的时候,一定要把XCache加入的内容放到Zend的上面;

第二点,我在PHP5.2.17版本上也测试过同样的过程,跟PHP5.3.25不同的是,extension_dir目录为

/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/

因为PHP5.3和zend3.3不是非常兼容,所以我们建议将PHP5.3降级为PHP5.2使用。
具体方法如下:
# cd /usr/local/directadmin/custombuild
# ./build clean
# ./build set php5_ver 5.2
# ./build php n
# service httpd restart
然后重新安装zend。

在 DirectAdmin 中安装Zend Optimizer / Guard Loader 是非常容易的,只要几个指令,就可以完成,,系统会自行辨认PHP 的版本,而去決定安装Zend Optimizer 还是 Zend Guard Loader 的。

[root@3w ~]# cd /usr/local/directadmin/custombuild

[root@3w custombuild]# ./build set zend yes

Changed zend option from no to yes

[root@3w custombuild]# ./build zend

Downloading ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz…
–2013-06-01 07:00:29– http://files2.directadmin.com/services/custombuild/Zend GuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
Resolving files2.directadmin.com… 69.30.193.202
Connecting to files2.directadmin.com|69.30.193.202|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 434691 (425K) [application/x-gzip]
Saving to: `/usr/local/directadmin/custombuild/ZendGuardLoader-php-5.3-linux-gli bc23-x86_64.tar.gz’

100%[======================================>] 434,691 1.10M/s in 0.4s

2013-06-01 07:00:30 (1.10 MB/s) – `/usr/local/directadmin/custombuild/ZendGuardL oader-php-5.3-linux-glibc23-x86_64.tar.gz’ saved [434691/434691]

Zend Guard Loader has been installed.

重启apache

service httpd restart

然后我们再来看看php -v ,已经安装好Zend Guard Loader.

[root@3w custombuild]# php -v
PHP 5.3.25 (cli) (built: May 31 2013 20:07:33)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies

mod_evasive 是Apache服务器的防CC攻击的一个模块,它可以检测和限制同个IP的请求次数,达到一定条件时执行命令(如使用iptables封禁IP),虽然并不能完全防御CC攻击,但在一定条件下能起到缓解Apache服务器的压力。

1)预安装:

yum install httpd-devel

2)获得mod_evasive,解压,安装。

cd /usr/src
wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
tar xzf mod_evasive_1.10.1.tar.gz
cd mod_evasive
/usr/sbin/apxs -cia mod_evasive20.c

3)添加配置文件
vi /etc/httpd/conf/httpd.conf,在LoadModule evasive20_module /usr/lib/apache/mod_evasive20.so下面添加引用httpd-evasive.conf文件。

LoadModule evasive20_module /usr/lib/apache/mod_evasive20.so
Include /etc/httpd/conf/extra/httpd-evasive.conf

httpd-evasive.conf文件的内容如下:

<IfModule mod_evasive20.c>
DOSHashTableSize 3097(哈希表大小,无需修改)
DOSPageCount 2(允许单IP的最大并发连接(瞬间值)
DOSSiteCount 50(允许单台机在指定秒数内访问同一页的次数)
DOSPageInterval 1 单页请求检测时间(默认1秒)
DOSSiteInterval 1 全站请求检测时间(默认1秒)
DOSBlockingPeriod 3600 黑名单封禁时间(默认3600秒)
DOSEmailNotify someone@somewhere.com有新黑名单记录通知管理员
DOSSystemCommand “iptables -A INPUT -s %s -j DROP” 进黑名单执行命令
</IfModule>

4)重启apache

/etc/init.d/httpd restart

教程参考

1、https://library.linode.com/web-servers/apache/mod-evasive

2、http://www.kwx.gd/CentOSApp/CentOS-DA-mod-evasive.html

3、mod_evasive官方博客http://www.zdziarski.com/blog/?page_id=442

DirectAdmin 安装后,默认的初始密码会直接显示在屏幕上,但很多人容易忘掉,或者不知道保存在哪里去了。怎么办?admin账号的密码和mysql的管理员账号和密 码,可在 /usr/local/directadmin/scripts/setup.txt 里找到。

当然也可以用最简单的办法修改admin的密码,那就是ssh进去你的服务器,敲下:

passwd admin

连续输入两次你想要重新设置的admin密码,然后service directadmin restart,重启directadmin服务,就ok了,实在不行,再重启一次服务器。

但是有时候admin无法登陆https://ip:2222管理directadmin,怎么办呢?无法登陆directadmin的时候,需要查看日志,是否权限设置错误,或无法读取配置文件所导致.

一般来说,主要文件为以下几个:

  1. /usr/local/directadmin/data/templates/proftpd.conf
  2. /usr/local/directadmin/data/templates/directadmin.conf
  3. /usr/local/directadmin/data
  4. /usr/local/directadmin/data/admin
  5. /usr/local/directadmin/data/tickets
  6. /usr/local/directadmin/data/users
  7. /home/tmp #这个tmp权限不对,也会导致容量大小显示错误
  8. /usr/local/directadmin/data/sessions
  9. /etc/virtual
  10. /var/spool/virtual
  11. /usr/local/directadmin/data/admin/ips
  12. /usr/local/directadmin/data/admin/packages
  13. /usr/local/directadmin/data/admin/packages.list
  14. /usr/local/directadmin/data/admin/login.hist #权限
  15. /usr/local/directadmin/data/admin/next_ticket.number #权限
  16. /usr/local/directadmin/data/admin/services.status #权限
  17. /usr/local/directadmin/data/admin/ip.list #权限
  18. /usr/local/directadmin/data/users/admin/ip.list #权限

如果排除密码的问题,directadmin无法登陆,以下方法可以解决.

cd /usr/local/directadmin/data/users
mkdir admin
chown diradmin:diradmin admin
chmod 711 admin
cd /usr/local/directadmin
./directadmin i

./data/admin/login.hist written successfully
./data/admin/next_ticket.number already exists
*** Unable to write ./data/admin/services.status : Unable to stat ./data/admin/services.status.temp for filesize after write<br>
ConfigFile::removeFile(./data/admin/services.status) filename does not match<br>

tickets.list written successfully
exiting due to previous errors