วิธีติดตั้ง VHCS2 บน Debian 4.0


วิธีติดตั้ง VHCS2 บน Debian 4.0
ผมเองก็ไม่ค่อยเก่งหรอกนะเท่าที่ผมลองทำก็มีเท่านี้นะครับ (ลองเอาไปแปลงๆ ดูสำหรับมือใหม่ทุนน้อย ประหยัดค่า CP ไปได้พอควร)

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
# apt-get install apache2 apache2-mpm-prefork bind9 bzip2 courier-authdaemon courier-base courier-imap courier-maildrop courier-pop dialog diff gzip iptables libapache2-mod-php5 libberkeleydb-perl libcrypt-blowfish-perl libcrypt-cbc-perl libcrypt-passwdmd5-perl libdate-calc-perl libdate-manip-perl libdbd-mysql-perl libdbi-perl libio-stringy-perl libmail-sendmail-perl libmailtools-perl libmcrypt4 libmd5-perl libmime-perl libnet-dns-perl libnet-netmask-perl libnet-perl libnet-smtp-server-perl libperl5.8 libsasl2-modules libsasl2 libsnmp-session-perl libterm-readkey-perl libterm-readpassword-perl libtimedate-perl make mysql-client mysql-common mysql-server original-awk patch perl perl-base perl-modules php5 php5-mcrypt php5-mysql php5-gd postfix postfix-tls procmail proftpd-mysql sasl2-bin tar wget gcc libc6-dev php5-dev subversion php5-cli

Create directories for web-based administration ? เลือก yes
เลือก Ok
General type of configuration? เลือก Internet Site
Mail name? เลือก Ok
Run proftpd from inetd or standalone? เลือก standalone

# nano /etc/mysql/my.cnf

[client]
default-character-set = utf8

[mysqld]
default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init_connect = ’set collation_connection = utf8_general_ci’
init_connect = ’set names utf8′
skip-external-locking
max_connections = 1024

# /etc/init.d/mysql restart

วิธีการใช้ MySQL
> ออก ก็คือ dump
mysqldump -uroot -ppasswordroot databasename > databasename.sql
< เข้าก็คือ import
mysql -uroot -ppasswordroot databasename < databasename.sql
ลบทั้งฐานข้อมูล
mysqladmin -uroot -ppasswordroot drop databasename

# /usr/bin/mysqladmin -u root password 'Password root MySQL'
# mysql -u root -p
Enter password: ใส่รหัสผ่านที่ตั้งไว้ก่อนหน้านี้ Password root MySQL
# mysql> create database vhcs2;
# mysql> exit

# cd /tmp
# wget http://optusnet.dl.sourceforge.net/sourceforge/vhcs/vhcs2-2.4.7.1.tar.bz2 (เลือกที่เป็นเวอร์ชั่นล่าสุด http://www.vhcs.net)
# tar xvfj vhcs2-2.4.7.1.tar.bz2
# rm vhcs2-2.4.7.1.tar.bz2
# cd vhcs2-2.4.7.1
# make
# make install
# cd /tmp
# cp -R vhcs*/* /
# cd /var/www/vhcs2/engine/setup
# nano /var/www/vhcs2/engine/setup/../vhcs2_common_code.pl

คำว่า db_pass_key
เพิ่ม
‘keysize’ => 32,
ไว้ด้านบนของ
‘key’ => $main::db_pass_key,
ทั้งสองจุด

# ./vhcs2-setup

Please enter system hostname (Enter for defaults) [debian]: your hostname
Please enter system network address (Enter for defaults) [127.0.0.1]: your ip address
Please enter SQL server host (Enter for defaults) [localhost]: Enter
Please enter system SQL database (Enter for defaults) [vhcs2]: Enter
Please enter system SQL user (Enter for defaults) [root]: Enter
Please enter system SQL password (Enter for defaults) [none]: your password
Please repeat system SQL password: your password
Please enter VHCS ftp SQL user (Enter for defaults) [vftp]: Enter
Please enter VHCS ftp SQL user password (Enter for defaults) [none]: your vftp password
Please repeat VHCS ftp SQL user password: your vftp password
Please enter administrator login name (Enter for defaults) [admin]: Enter
Please enter administrator password: your password
Please repeat administrator password: your password
Please enter admininistrator email address: your email

# cd /tmp
# wget http://optusnet.dl.sourceforge.net/sourceforge/vhcs/vhcs_patch_2006-02-09.tar.bz2
# tar xvfj vhcs_patch_2006-02-09.tar.bz2
# rm vhcs_patch_2006-02-09.tar.bz2
# cd vhcs_patch_2006-02-09/gui/include
# cp login.php /var/www/vhcs2/gui/include

# nano /var/www/vhcs2/gui/tools/webmail/inc/config.languages.php
$default_language = th;

# crontab -e
แก้
0,30 * * * * /var/www/vhcs2/engine/traffic/vhcs2-srv-traff &>/var/log/vhcs2/vhcs2-srv-traff.log
0,30 * * * * /var/www/vhcs2/engine/traffic/vhcs2-vrl-traff &>/var/log/vhcs2/vhcs2-vrl-traff.log
เป็น
#0,30 * * * * /var/www/vhcs2/engine/traffic/vhcs2-srv-traff &>/var/log/vhcs2/vhcs2-srv-traff.log
#0,30 * * * * /var/www/vhcs2/engine/traffic/vhcs2-vrl-traff &>/var/log/vhcs2/vhcs2-vrl-traff.log

# nano /etc/apache2/apache2.conf

แก้ไขตามด้านล่าง
Timeout 30
KeepAlive Off
MaxKeepAliveRequests 1024
KeepAliveTimeout 10


ค่าตามเดิม
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0

ค่าใหม่
ServerLimit 1024
StartServers 10
MinSpareServers 20
MaxSpareServers 40
MaxClients 1024
MaxRequestsPerChild 0

ค่าตามเดิม
#
#
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the “.example.com” to match your domain to enable.
#
#
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .example.com
#

#

ค่าใหม่
#
#
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the “.example.com” to match your domain to enable.
#
ExtendedStatus On

SetHandler server-status
# Order deny,allow
# Deny from all
Allow from all

#

# nano /etc/php5/apache2/php.ini

output_buffering = On
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 900

# nano /var/www/vhcs2/gui/tools/webmail/inc/inc.php
แก้
Header(”Expires: Wed, 11 Nov 1998 11:11:11 GMT\r\n”.
“Cache-Control: no-cache\r\n”.
“Cache-Control: must-revalidate”);
เป็น
Header(”Expires: Wed, 11 Nov 1998 11:11:11 GMT”);
Header(”Cache-Control: no-cache”);
Header(”Cache-Control: must-revalidate”);

# nano /etc/vhcs2/bind/parts/db_e.tpl
แก้
{DMN_NAME}. A {DMN_IP}
ns IN A {DMN_IP}
mail IN A {DMN_IP}
เป็น
{DMN_NAME}. A {DMN_IP}
ns IN A {DMN_IP}
{DMN_NAME}. IN TXT “v=spf1 a mx ip4:{DMN_IP} ~all”
mail IN A {DMN_IP}

# nano /etc/vhcs2/apache/parts/dmn_entry.tpl
แก้
ErrorLog {APACHE_USERS_LOG_DIR}/{DMN_NAME}-error.log
TransferLog {APACHE_USERS_LOG_DIR}/{DMN_NAME}-access.log

CustomLog {APACHE_LOG_DIR}/{DMN_NAME}-traf.log traff
CustomLog {APACHE_LOG_DIR}/{DMN_NAME}-combined.log combined
เป็น
#ErrorLog {APACHE_USERS_LOG_DIR}/{DMN_NAME}-error.log
#TransferLog {APACHE_USERS_LOG_DIR}/{DMN_NAME}-access.log

#CustomLog {APACHE_LOG_DIR}/{DMN_NAME}-traf.log traff
#CustomLog {APACHE_LOG_DIR}/{DMN_NAME}-combined.log combined

# nano /etc/vhcs2/apache/parts/sub_entry.tpl
แก้
ErrorLog {APACHE_USERS_LOG_DIR}/{SUB_NAME}-error.log
TransferLog {APACHE_USERS_LOG_DIR}/{SUB_NAME}-access.log

CustomLog {APACHE_LOG_DIR}/{DMN_NAME}-traf.log traff
CustomLog {APACHE_LOG_DIR}/{DMN_NAME}-combined.log combined
เป็น
#ErrorLog {APACHE_USERS_LOG_DIR}/{SUB_NAME}-error.log
#TransferLog {APACHE_USERS_LOG_DIR}/{SUB_NAME}-access.log

#CustomLog {APACHE_LOG_DIR}/{DMN_NAME}-traf.log traff
#CustomLog {APACHE_LOG_DIR}/{DMN_NAME}-combined.log combined

# nano /etc/vhcs2/apache/parts/dmn_php2_entry.tpl
แก้
php_admin_value open_basedir “{WWW_DIR}/{DMN_NAME}/:{PEAR_DIR}/:/tmp/”
เป็น
#php_admin_value open_basedir “{WWW_DIR}/{DMN_NAME}/:{PEAR_DIR}/:/tmp/”

# nano /etc/vhcs2/apache/parts/sub_php2_entry.tpl
แก้
php_admin_value open_basedir “{WWW_DIR}/{SUB_NAME_PHP2}/:{PEAR_DIR}/:/tmp/”
เป็น
#php_admin_value open_basedir “{WWW_DIR}/{SUB_NAME_PHP2}/:{PEAR_DIR}/:/tmp/”

# /etc/init.d/apache2 restart

อันนี้ต้องขอบคุณพี่เหน่ง xenmax.com ที่คอยให้คำปรึกษาเรื่อง Debian

เออลืมไปแก้เรื่อง proftpd มัน erorr ตอน restart (ไม่รูเค้าแก้กันอย่างไงนะแต่ผมแก้แบบนี้แล้วหาย erorr)
# nano /etc/proftpd/proftpd.conf
แก้
# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6 on
เป็น
# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6 off

# /etc/init.d/proftpd restart

biggiantnetwork:
หากใครต้องการทำ squid มาช่วย apache

apt-get install squid
nano /etc/squid/squid.conf

แก้
http_port 8080 transparent

เพิ่ม
acl to_apache dst ip.ip.ip.ip
http_access allow to_apache
ใต้บรรทัด
acl to_localhost dst 127.0.0.0/8
ตัวอย่าง
acl to_localhost dst 127.0.0.0/8
acl to_apache dst ip.ip.ip.ip
http_access allow to_apache

แก้
# cache_mem 8 MB
เป็น
cache_mem 128 MB

แก้
# cache_dir ufs /var/spool/squid 100 16 256
เป็น
cache_dir ufs /var/spool/squid 1024 16 256

/etc/init.d/squid stop
rm -rf /var/spool/squid/*
squid -z
/etc/init.d/squid restart

iptables -t nat -A PREROUTING -d ip.ip.ip.ip -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 8080
iptables-save

อันนี้ต้องขอบคุณ icez.net นะครับ icez บอกวิธีทำมาครับ แต่เห็นมายังบอกมาไม่เต็มสูตร 555

iCeZ:
^^ เรื่อง squid นี่ จริงๆ มีการ optimize squid อีกนะครับ
ซึ่งช่วยให้ squid ทำงานได้ดีขึ้น และลด load ของเซิฟเวอร์ลงได้อีก
แต่ทั้งนี้ การ optimize ไม่ใช่สูตรตายตัว ผมเลยบอกอะไรได้ไม่มาก

การตั้งค่าหลักๆ ก็
cache_mem
cache_replacement_policy
memory_replacement_policy

แล้วก็พวก file cache ttl กับ no-cache flag น่ะครับ

biggiantnetwork:
ติดตั้งอื่นๆ เพิ่มเติมจาก vhcs ด้านบน

ติดตั้ง eAccelerator
# wget http://bart.eaccelerator.net/source/0.9.5.1/eaccelerator-0.9.5.1.tar.bz2
# tar jxvf eaccelerator-0.9.5.1.tar.bz2
# rm eaccelerator-0.9.5.1.tar.bz2
# cd eaccelerator-0.9.5.1
# /usr/bin/phpize
# ./configure –enable-eaccelerator=shared –with-php-config=/usr/bin/php-config
# make
# make install
# mkdir /tmp/eaccelerator
# chmod 0777 /tmp/eaccelerator
# nano /etc/php5/apache2/php.ini

extension=”eaccelerator.so”
eaccelerator.shm_size=”128″
eaccelerator.cache_dir=”/tmp/eaccelerator”
eaccelerator.enable=”1″
eaccelerator.optimizer=”1″
eaccelerator.check_mtime=”1″
eaccelerator.debug=”0″
eaccelerator.filter=”"
eaccelerator.shm_max=”0″
eaccelerator.shm_ttl=”0″
eaccelerator.shm_prune_period=”0″
eaccelerator.shm_only=”0″
eaccelerator.compress=”1″
eaccelerator.compress_level=”9″

# /etc/init.d/apache2 restart

ติดตั้ง ionCube PHP Loader
# wget http://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
# tar xvfz ioncube_loaders_lin_x86.tar.gz
# rm ioncube_loaders_lin_x86.tar.gz
# cd ioncube
# mkdir /usr/local/lib/ioncube
เลือก ioncube_loader_lin_5.2.so ให้ตรงตามเวอร์ชั่นของ PHP
# cp ioncube_loader_lin_5.2.so /usr/local/lib/ioncube/
# cd ..
# echo zend_extension=/usr/local/lib/ioncube/ioncube_loader_lin_5.2.so >> /etc/php5/apache2/php.ini
# /etc/init.d/apache2 restart

ติดตั้ง Zend Optimizer
# wget http://downloads.zend.com/optimizer/3.2.6/ZendOptimizer-3.2.6-linux-glibc21-i386.tar.gz
# tar xvfz ZendOptimizer-3.2.6-linux-glibc21-i386.tar.gz
# rm ZendOptimizer-3.2.6-linux-glibc21-i386.tar.gz
เลือก 5_2_x_comp ให้ตรงตามเวอร์ชั่นของ PHP
# cd ZendOptimizer-3.2.6-linux-glibc21-i386/data/5_2_x_comp
# mkdir /usr/local/lib/zend
# cp ZendOptimizer.so /usr/local/lib/zend/
# cd ../../..
# echo zend_extension=/usr/local/lib/zend/ZendOptimizer.so >> /etc/php5/apache2/php.ini
# echo zend_optimizer.optimization_level=15 >> /etc/php5/apache2/php.ini
# /etc/init.d/apache2 restart

hack3rb43:
อย่าลง Zend กับ EA คู่กันเลยเดียวตีตัน

แถมการลง APC บน Debian สำหรับ PHP ปรกติที่ไม่ไช่ CGI

โหลด APC มาแล้ว แตก File สะ แล้ว

Code:

cd APC-3.0.14

จะ พบ File Source มากมาย แล้ว ( ก่อนทำลง php4-dev หรือ php5-dev ก่อน )

Code:

phpize

จากนั้นก็ตามด้วย ( อย่าลืมลง apache2-prefork-dev หรือ apache-prefork-dev ด้วยนะ )

Code:

./configure –enable-apc –enable-apc-mmap –with-apxs=/usr/bin/apxs2 –with-php-config=/usr/bin/php-config

ต่อด้วย

Code:

make

ต่อด้วย

Code:

make install

แค่นี้ก็จบแล้ว File .so มันจะไปอยู่ใน lib php เอง

จากนั้นไปเพิ่ม config ลงใน php.ini

Code:

nano /etc/php4/apache2/php.ini
( หรือ php5 สำหรับ php5 )

เพิ่ม

Code:

extension=”apc.so”
apc.shm_size = 32

แค่นี้ก็เสร็จแล้ว รี Apache ได้เลย

:ph34r:

เครดิต : http://www.thaihosttalk.com/

1 comment to วิธีติดตั้ง VHCS2 บน Debian 4.0

  • สรวีย์ บรรลือทรัพย์

    การแก้ไขค่า ip setting ของ vhcs2

    วิธีการมีดังต่อไปนี้

    1. ปิด vhcs2_daemon

    /etc/init.d/vhcs2_daemon stop

    2. แก้ไขค่า ต่าง ๆ ของ ip

    /etc/network/interfaces

    /etc/resolv.conf

    /etc/vhcs2/vhcs2.conf

    3. แก้ไขค่า่ต่าง ๆ ใน Database

    mysql -u root -p

    USE vhcs2;UPDATE `server_ips` SET `ip_number` = ‘203.146.129.142′ WHERE `ip_id` = 1;UPDATE `domain` SET `domain_status` = ‘change’ WHERE `domain_status` = ‘ok’;UPDATE `domain_aliasses` SET `alias_status` = ‘change’ WHERE `alias_status` = ‘ok’;UPDATE `subdomain` SET `subdomain_status` = ‘change’ WHERE `subdomain_status` = ‘ok’;UPDATE `mail_users` SET `status` = ‘change’ WHERE `status` = ‘ok’;quit

    4. สั่งให้เริ่มทำการ update อีกครั้ง

    /var/www/vhcs2/engine/vhcs2-rqst-mngr

    5. ทำการ สั่ง start vhcs2_daemon อีกครั้ง

    /etc/init.d/vhcs2_daemon start

    สำเร็จจนได้ครับ

    เครดิต : http://www.ninsawat.com/

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>