Archive for November, 2009

0086 | Postfix + DomainKeys + DKIM

Saturday, November 14th, 2009 Posted in IP Network, Linux | 7 Comments »

เป็นการติดตั้ง mail server สำหรับส่ง bulk mail ปริมาณมหาศาล
(พยายามทำให้ถึงวันละห้าแสนฉบับอยู่)
แต่ย้ำก่อนนะครับว่าต่อให้ใช้วิธีนี้ แล้วส่ง mail ที่เป็น spam ยังไงก็ติด blacklist อยู่ดี ไม่มีประโยชน์

วิธีการติดตั้งด้านล่างเป็นวิธีสำหรับ OS เปล่าๆ หรือไม่มี control panel เท่านั้นครับ
หากมี control panel อยู่จะไม่สามารถใช้งานได้ เพราะมันตีกัน

ส่วนไฟล์ มันมีแต่ของ centos 5 x86_64 นะครับ OS อื่นหนูไม่รู้ววว์

dkim-milter-2.8.3-2.el5.x86_64.rpm
dk-milter-1.0.2-0.x86_64.rpm

 

 

prepare yourself!

ก่อนอื่น ลบ MTA ทั้งหมดที่มีทิ้ง ไม่ว่าจะเป็น sendmail postfix exim qmail อะไรก็ตามแต่
แล้วลงแค่ postfix ใหม่ๆ เลย

yum install postfix sendmail
chkconfig sendmail off
chkconfig postfix on
service sendmail stop
service postfix start
rpm -Uvh dk-milter-1.0.2-0.x86_64.rpm dkim-milter-2.8.3-2.el5.x86_64.rpm
usermod -g 89 dkim-milter
chkconfig dkim-milter on
chkconfig dk-milter on
chown postfix.postfix /usr/sbin/dkim-filter
chown postfix -R /etc/mail/dkim-milter/keys
rm -f /var/run/dkim-milter/dkim-milter.sock

 

 

Read the rest of this entry »

Tags: , , ,

0085 | DirectAdmin + mod_fcgid + php fastcgi

Saturday, November 14th, 2009 Posted in Linux, Web Server | 12 Comments »

ก่อนอื่น copy & paste ตามสูตร

cd /usr/local/src
wget http://mirrors.issp.co.th/apache/httpd/mod_fcgid/mod_fcgid-2.3.4.tar.bz2
tar jxf mod_fcgid-2.3.4.tar.bz2
cd mod_fcgid-2.3.4
APXS=/usr/sbin/apxs ./configure.apxs && make && make install
chmod 755 -R /var/lib/httpd
mkdir /fcgi

ไปที่ /usr/local/directadmin/custombuild/
เปิดไฟล์ options.conf แก้ php5_cgi=yes ส่วน php อันอื่น no ให้หมด
แล้วสั่ง ./build php จนเสร็จ

แล้วเปิดไฟล์ /etc/httpd/conf/extra/httpd-info.conf
เพิ่มไอ้นี่ต่อท้าย

LoadModule fcgid_module /usr/lib/apache/mod_fcgid.so
 
SharememPath /var/run/fcgid_shm
SocketPath /var/lib/httpd/fcgid/sock
 
 
 
<IfModule mod_fcgid.c>
  IdleTimeout 3600
  ProcessLifeTime 7200
  MaxProcessCount 128
  DefaultMaxClassProcessCount 4
  IPCConnectTimeout 60
  IPCCommTimeout 90
  DefaultInitEnv RAILS_ENV production
#  DefaultInitEnv PHP_FCGI_CHILDREN 4
#  MaxRequestsPerProcess 500
</IfModule>
 
<Directory "/home">
        AllowOverride All
        Options SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
        <IfModule sapi_apache2.c>
        php_admin_flag engine off
        </IfModule>
        <IfModule mod_php5.c>
        php_admin_flag engine off
        </IfModule>
</Directory>

เสร็จแล้วเข้าไป folder /usr/local/directadmin/data/templates
เปิดไฟล์ที่ขึ้นต้นด้วย virtual_host2*.conf (มีทั้งหมด 4 ไฟล์)
ใน section เดิมที่เป็น PHP ทั้งหมด ให้ comment ไว้ จะได้ประมาณนี้

|*if CLI="1"|
#               php_admin_flag engine |PHP|
#               <IfModule !mod_php6.c>
#                       php_admin_flag safe_mode |SAFE_MODE|
#               </IfModule>
#               php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |USER|@|DOMAIN|'
|*endif|
|*if OPEN_BASEDIR="ON"|
#               php_admin_value open_basedir |OPEN_BASEDIR_PATH|
|*endif|
|*if SUPHP="1"|
#                suPHP_Engine |PHP|
#               suPHP_UserGroup |USER| |GROUP|
|*endif|

แล้วแทรกไอ้นี่เข้าไปด้านบนของไอ้เมื่อกี้

	<IfModule mod_fcgid.c>
		<Files ~ (\.fcgi)>
			SetHandler fcgid-script
			Options +FollowSymLinks +ExecCGI
		</Files>
	</IfModule>
	<IfModule mod_fcgid.c>
	<Files ~ (\.php)>
		SetHandler fcgid-script
		FCGIWrapper "/fcgi/|USER|/public_html/fcgid.sh" .php
		Options +ExecCGI
		allow from all
	</Files>
	</IfModule>

แล้วเข้าไป folder /usr/local/directadmin/scripts/custom/
สร้างไฟล์ชื่อ fcgid.sh ใส่ข้อมูลตามนี้

#!/bin/sh
export PHP_FCGI_MAX_REQUESTS=0
exec /usr/local/php5/bin/php-cgi

ใน folder เดียวกัน สร้างไฟล์ชื่อ domain_create_post.sh ใส่ข้อมูลตามนี้

#!/bin/sh
 
mkdir -p /fcgi/${username}/public_html
cp /usr/local/directadmin/scripts/custom/fcgid.sh /fcgi/${username}/public_html/fcgid.sh && chmod 0700 /fcgi/${username}/public_html/fcgid.sh
cp /usr/local/directadmin/scripts/custom/php.ini /fcgi/${username}/public_html/php.ini
perl -pi -w -e "s/PHPCFG_BASEDIR/\/home\/${username}\//g;" /fcgi/${username}/public_html/php.ini
chown -R ${username}:${username} /fcgi/${username}
echo "`date`  ${domain} created  " >> /var/log/directadmin/domain_create.log

แล้วสั่ง copy file php.ini มาใส่ไว้ใน /usr/local/directadmin/scripts/custom/php.ini
เปิดไฟล์ /usr/local/directadmin/scripts/custom/php.ini ที่ก๊อปมาเมื่อกี้ แล้วหา open_basedir
ซึ่งปกติมันจะ comment ไว้ ให้แก้เป็นประมาณนี้

open_basedir = PHPCFG_BASEDIR:/tmp:/var/tmp

เสร็จแล้วสั่ง chmod a+x /usr/local/directadmin/scripts/custom/*.sh

*** วิธีทั้งหมดไม่รับประกันผล และควรใช้กับเครื่องเพิ่งลงใหม่เท่านั้น

Tags: , , ,