解决Directadmin控制面板 磁盘使用状况不准确

总共几个步骤,确认directadmin的”磁盘使用情况”保持正常

1) 检查/etc/cron.d/directadmin_cron
文件是否包含
10 0 * * * root echo ‘action=tally&value=all’ >> /usr/local/directadmin/data/task.queue

2) /usr/sbin/repquota /home
如果没有分出/home这个分区的,就应该是/usr/sbin/repquota /

3) 重新检查磁盘配额
/sbin/quotaoff -a; /sbin/quotacheck -avugm; /sbin/quotaon -a;

4) 检查/etc/fstab的/home或者/ 是否有usrquota,grpquota

5) 如果repquota返回的值不完整,运行
echo “action=tally&value=all” >> /usr/local/directadmin/data/task.queue

6) 确认 quota_partition=/ 或者quota_partition=/home
在directadmin.conf里

cd /usr/local/directadmin
./directadmin c | grep quota_partition

7) 检查/home目录下的tmp文件夹已存在,没有的话就创建它
ls -lad /home/tmp
chmod 1777 /home/tmp

8) /usr/local/directadmin/dataskq d2000

至此,directadmin的磁盘配额恢复正常.

复制两台Directadmin之间的reseller packages

Directadmin控制面板上定制的包有好几个,一个个输入很麻烦
复制旧的packages信息到新机器上,就不用一个一个添加了。

  1. 旧的服务器上执行
  2. cd /usr/local/directadmin/data/users/Your_Reseller_Name/packages
  3. tar zcf packages.tar.gz * #打包压缩
  4. ftp将压缩包上传到新的服务器上
  5. 路径一样是
  6. /usr/local/directadmin/data/users/Your_Reseller_Name/packages
  7. 解压后 chown diradmin:diradmin *.pkg
  8. 然后cd ../ 到上一层目录
  9. 把旧服务器上的packages.list里面的文字复制到新机器上
  10. 就完成了产品类型的复制
  11. ( *.pkgpackages.list 都确保是diradmin:diradmin,否则会报错)

centos安装Directadmin及安全配置

安装DA控制面板的步骤及相关安全设置与apache的优化,记录一下。

1 ) 最小化安装系统,并且不要带有httpd mysqld等服务

系统要求 http://www.directadmin.com/install.html

2 ) 分区,以500G硬盘为例:

  1. /boot 100M
  2. swap 内存x2的大小
  3. /tmp 5G
  4. / 20G
  5. /var 50G
  6. /usr 20G
  7. /home #剩下的空间全给home

3 ) 准备好User ID跟License ID和hostname

  1. wget http://www.directadmin.com/setup.sh
  2. chmod 755 setup.sh
  3. ./setup.sh
  4. 输入User IDLicense IDhostname之后开始安装。
  5.  
  6. http://www.directadmin.com/installguide.html

4 ) 优化及安全设置

  1. 修改 /etc/fstab
  2. 修改/tmp为值为rw,nosuid,noexec
  3. 添加/home的值nosuid
  4. 修改tmpfs的值为rw,noexec,nosuid
  5. mv /var/tmp /var/tmp_bak #移动/var/tmp目录
  6. ln -s /tmp /var/tmp

设置php.ini的disable_function,执行:

  1. cd /usr/local/directadmin/custombuild
  2. ./build update
  3. ./build secure_php
  4. ./build update
  5. ./build all d

指定mysql监听在127.0.0.1
相信现在应该没有单卖数据库的人了吧
修改 /etc/my.conf
bind-address = 127.0.0.1

安装防火墙
csf 或者手动安装apf+bfd
http://www.configserver.com/cp/csf.html

禁止apache组里的用户调用perl

  1. chgrp apache /usr/bin/perl
  2. chmod 705 /usr/bin/perl

优化apache

  1. #!/bin/bash
  2. echo -e "KeepAlive On\nMaxKeepAliveRequests 120\nKeepAliveTimeout 15\n" >> /etc/httpd/conf/httpd.conf
  3. echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
  4. echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle
  5. echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
  6. echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
  7. echo 8069 > /proc/sys/net/core/netdev_max_backlog
  8. /sbin/sysctl -p > /dev/null 2>&1 && /sbin/service httpd restart

重新调整php的ioncube

whmcs需要ioncube组件的支持,但是DirectAdmin调整为php-cgi模式后,原本ioncube组件用不了。。。
添加到新的php.ini

  1. zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.2.so

或者直接把旧的覆盖过来

  1. [root@linux1 directadmin]# mv /usr/local/etc/php5/cgi/php.ini /usr/local/etc/php5/cgi/php.ini.bak
  2. [root@linux1 directadmin]# cp /usr/local/Zend/etc/php.ini /usr/local/etc/php5/cgi/php.ini
  3. [root@linux1 directadmin]# service httpd reload
  4. Reloading httpd:                                           [  OK  ]
  5. [root@linux1 directadmin]# php -v
  6. PHP 5.2.13 (cli) (built: May 14 2010 12:06:33) 
  7. Copyright (c) 1997-2010 The PHP Group
  8. Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
  9.     with the ionCube PHP Loader v3.3.14, Copyright (c) 2002-2010, by ionCube Ltd., and
  10.     with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
  11.     with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

DirectAdmin把php从CLI调整为suPhp(php-cgi)

公司的机器上突然apache的cpu一直跑高,但是php是跑在php-cli模式下,需要调整为suphp(php-cgi)
默认cli是让php跑在apache上,调整php跑在用户上代替原本的apache,不调整的话看不到具体是哪个用户出问题

以下为directadmin重新编译的方法

  1. cd /usr/local/directadmin
  2. mv custombuild custombuild.old
  3. wget http://files.directadmin.com/services/custombuild/1.1/cu
  4. stombuild.tar.gz
  5. tar xvzf custombuild.tar.gz
  6. cd custombuild
  7. ./build suphp
  8. ./build all d #这个过程比较久
  9. ./build rewrite_confs
  10.  
  11. *************************************
  12. *                                   *
  13. *   All parts have been installed   *
  14. *                                   *
  15. *************************************
  16.  
  17. Type: /sbin/service httpd restart
  18.  
  19.  
  20. 更改配置文件 /usr/local/directadmin/custombuild/options.conf
  21. php5_cli=yes
  22. php5_cgi=no
  23. 改成
  24. php5_cli=no
  25. php5_cgi=yes
  26.  
  27. 更改配置文件 /usr/local/suphp/etc/suphp.conf
  28. 把日志的level改为info
  29. ;Loglevel
  30. ;loglevel=warn
  31. loglevel=error
  32.  
  33.  
  34. 然后重启apache
  35. 测试phpinfo页面下
  36. Server API     CGI/FastCGI 
  37. 就是成功了。
  38.  
  39. 这样在top里就能找出哪个虚拟主机用户跑高apachecpu或内存了!
  40.  
  41.   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIMECOMMAND                                                         
  42. 30855 xxx    17   0 25236  10m 4464 S 52.5  0.3   0:00.31 /usr/local/php5/bin/php-cgi
  43.  
  44. suPhp日志 /var/log/suphp.log
  45.  
  46. Note: 如果发生Internal Server Error (http500) 大多数为文件宿主不正确
  47. 则继续运行
  48. ./build roundcube
  49. ./build squirrelmail
  50. ./build phpmyadmin

DirectAdmin_如何安装suphp

6 6...«23456»