|
qmail+webmail on Linux9 安装全过程
发表日期:2006-12-3
|
Install file list: * netqmail-1.05.tar.gz * ucspi-tcp-0.88.tar.gz * daemontools-0.76.tar.gz * vpopmail-5.4.0.tar.gz * mysql-standard-4.0.20-pc-linux-i686.tar.gz * apache_1.3.31.tar.gz * php-4.3.7.tar.gz * autorespond-2.0.4.tar.gz * ezmlm-0.53.tar.gz * ezmlm-idx-0.40.tar.gz * qmailadmin-1.2.0.tar.gz * sqwebmail-3.5.3.tar.gz
Patches: * ezmlm-idx-0.53.400.unified_41.patch
Scripts: * qmailctl * inst_check * qmailadmin_zh * zh-cn/* * images/webmail/*
Preparation: Login the system as root. mkdir -p /usr/local/src mkdir -p /package Move the files of installation, patches and scripts except daemontools-0.76.tar.gz to /usr/local/src Move daemontools-0.76.tar.gz to /package chmod 1755 /package
Start installation: cd /usr/local/src tar -xvzf netqmail-1.05.tar.gz cd netqmail-1.05 ./collate.sh # important sentence!!! cd .. tar -xvzf ucspi-tcp-0.88.tar.gz rm *.tar # optional, unless space is very tight
cd /package tar -xvzf daemontools-0.76.tar.gz rm *.tar # optional, again
################################ # Install qmail ################################ mkdir /var/qmail
mkdir /etc/qmail ln -s /etc/qmail /var/qmail/control
# Create users and groups userdel alias userdel qmaild userdel qmaill userdel qmailp userdel qmailq userdel qmailr userdel qmails groupdel nofiles groupdel qmail
groupadd nofiles useradd -g nofiles -d /var/qmail/alias alias useradd -g nofiles -d /var/qmail qmaild useradd -g nofiles -d /var/qmail qmaill useradd -g nofiles -d /var/qmail qmailp groupadd qmail useradd -g qmail -d /var/qmail qmailq useradd -g qmail -d /var/qmail qmailr useradd -g qmail -d /var/qmail qmails
cd /usr/local/src/netqmail-1.05/netqmail-1.05 make setup check
# If your DNS is configured properly, this script should be all you need at this point: ./config
# Or you can configure your domain. ./config-fast mail.myqmail.com
################################ # Install ucspi-tcp ################################ cd /usr/local/src/ucspi-tcp-0.88 patch < /usr/local/src/netqmail-1.05/other-patches/ucspi-tcp-0.88.errno.patch make make setup check
################################ # Install daemontools ################################ cd /package tar -xvzf daemontools-0.76.tar.gz cd /package/admin/daemontools-0.76/src patch < /usr/local/src/netqmail-1.05/other-patches/daemontools-0.76.errno.patch cd .. package/install
# Start qmail script vi /var/qmail/rc ######## Write the following section to file:/var/qmail/rc ######## #!/bin/sh # Using stdout for logging # Using control/defaultdelivery from qmail-local to deliver messages by default exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start "`cat /var/qmail/control/defaultdelivery`" ######## End ########
chmod 755 /var/qmail/rc mkdir /var/log/qmail
echo ./Maildir/ >/var/qmail/control/defaultdelivery
mv /usr/local/src/qmailctl /var/qmail/bin/
chmod 755 /var/qmail/bin/qmailctl ln -s /var/qmail/bin/qmailctl /usr/bin
# Create the supervise mkdir -p /var/qmail/supervise/qmail-send/log mkdir -p /var/qmail/supervise/qmail-smtpd/log
vi /var/qmail/supervise/qmail-send/run ######## Write the following section to file:/var/qmail/supervise/qmail-send/run ######## #!/bin/sh exec /var/qmail/rc ######## End ########
vi /var/qmail/supervise/qmail-send/log/run ######## Write the following section to file:/var/qmail/supervise/qmail-send/log/run ######## #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail ######## End ########
vi /var/qmail/supervise/qmail-smtpd/run ######## Write the following section to file:/var/qmail/supervise/qmail-smtpd/run ######## #!/bin/sh QMAILDUID=`id -u qmaild` NOFILESGID=`id -g qmaild` MAXSMTPD=`cat /var/qmail/control/concurrencyincoming` LOCAL=`head -1 /var/qmail/control/me` if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in echo /var/qmail/supervise/qmail-smtpd/run exit 1 fi if [ ! -f /var/qmail/control/rcpthosts ]; then echo "No /var/qmail/control/rcpthosts!" echo "Refusing to start SMTP listener because it'll create an open relay" exit 1 fi exec /usr/local/bin/softlimit -m 2000000 \ /usr/local/bin/tcpserver -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \ -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>%26amp;1 ######## End ########
echo 20 > /var/qmail/control/concurrencyincoming chmod 644 /var/qmail/control/concurrencyincoming
vi /var/qmail/supervise/qmail-smtpd/log/run ######## Write the following section to file:/var/qmail/supervise/qmail-smtpd/log/run ######## #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd ######## End ########
chmod +t /var/qmail/supervise/qmail-send chmod +t /var/qmail/supervise/qmail-smtpd
chmod 755 /var/qmail/supervise/qmail-send/run chmod 755 /var/qmail/supervise/qmail-send/log/run chmod 755 /var/qmail/supervise/qmail-smtpd/run chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
mkdir -p /var/log/qmail/smtpd chown qmaill /var/log/qmail /var/log/qmail/smtpd
ln -s /var/qmail/supervise/* /service/
# Allow the local host to inject mail via SMTP: echo '127.:allow,RELAYCLIENT=""' >>/etc/tcp.smtp qmailctl cdb
# Stop and disable the installed MTA: /etc/init.d/sendmail stop /sbin/init.d/sendmail stop /etc/rc.d/init.d/sendmail stop
# Uninstall the sendmail: rpm -e --nodeps sendmail
# Verify that nothing is listening to the SMTP port (25): netstat -a | grep smtp # If something is running, make sure it's not qmail by doing: qmailctl stop # The repeat the netstat check: netstat -a | grep smtp
# Replace any existing /usr/lib/sendmail with the qmail version: mv /usr/lib/sendmail /usr/lib/sendmail.old # ignore errors mv /usr/sbin/sendmail /usr/sbin/sendmail.old # ignore errors chmod 0 /usr/lib/sendmail.old /usr/sbin/sendmail.old # ignore errors ln -s /var/qmail/bin/sendmail /usr/lib ln -s /var/qmail/bin/sendmail /usr/sbin
# Create these aliases "stone": echo stone > /var/qmail/alias/.qmail-root echo stone > /var/qmail/alias/.qmail-postmaster ln -s .qmail-postmaster /var/qmail/alias/.qmail-mailer-daemon chmod 644 /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-postmaster
# Start qmail service: qmailctl start
# Now qmail should now be running. You can run "qmailctl stat" to verify that the services are up and running: # qmailctl stat # And run "qmailctl cdb" to reload the /etc/tcp.smtp # qmailctl cdb
mkdir /var/qmail/supervise/qmail-pop3d vi /var/qmail/supervise/qmail-pop3d/run ######## Write the following section to file:/var/qmail/supervise/qmail-pop3d/run ######## #!/bin/sh exec /usr/local/bin/softlimit -m 3000000 \ /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup \ mail.myqmail.com /home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>%26amp;1 ######## End ########
mkdir /var/qmail/supervise/qmail-pop3d/log vi /var/qmail/supervise/qmail-pop3d/log/run ######## Write the following section to file:/var/qmail/supervise/qmail-pop3d/log/run ######## #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t \ /var/log/qmail/pop3d ######## End ########
mkdir /var/log/qmail/pop3d chown qmaill /var/log/qmail/pop3d chmod 755 /var/qmail/supervise/qmail-pop3d/run chmod 755 /var/qmail/supervise/qmail-pop3d/log/run ln -s /var/qmail/supervise/qmail-pop3d /service
vi /var/qmail/bin/qmailctl ######## Add the following section to "start" part of the file:/var/qmail/bin/qmailctl ######## if svok /service/qmail-pop3d ; then svc -u /service/qmail-pop3d /service/qmail-pop3d/log else echo qmail-pop3d supervise not running fi ######## End ########
######## Add the following section to "stop" part of the file:/var/qmail/bin/qmailctl ######## echo " qmail-pop3d" svc -d /service/qmail-pop3d /service/qmail-pop3d/log ######## End ########
######## Add the following section to "stat" part of the file:/var/qmail/bin/qmailctl ######## svstat /service/qmail-pop3d svstat /service/qmail-pop3d/log ######## End ########
######## Add the following section to "pause" part of the file:/var/qmail/bin/qmailctl ######## echo "Pausing qmail-pop3d" svc -p /service/qmail-pop3d ######## End ########
######## Add the following section to "cont" part of the file:/var/qmail/bin/qmailctl ######## echo "Continuing qmail-pop3d" svc -c /service/qmail-pop3d ######## End ########
######## Add the following section to "restart" part of the file:/var/qmail/bin/qmailctl ######## echo "* Restarting qmail-pop3d." svc -t /service/qmail-pop3d /service/qmail-pop3d/log ######## End ########
# Test the Installation: cd /usr/local/src sh inst_check # When everything looks right, inst_check will report: # Congratulations, your LWQ installation looks good!
################################ # Install mysql ################################ groupadd mysql useradd -g mysql mysql
cd /usr/local tar -xvzf /usr/local/src/mysql-standard-4.0.20-pc-linux-i686.tar.gz ln -s mysql-standard-4.0.20-pc-linux-i686 mysql
cd mysql scripts/mysql_install_db
cd .. chown -R root.mysql mysql-standard-4.0.20-pc-linux-i686 chmod -R 640 mysql chmod -R u+X,g+X mysql chmod -R ug+x mysql/bin chmod -R g+w mysql/data chmod -R u+x mysql/scripts
cp /usr/local/mysql/support-files/my-medium.cnf /usr/local/mysql/data/my.cnf chgrp mysql /usr/local/mysql/data/my.cnf
cd /usr/local/mysql bin/safe_mysqld --user=mysql %26amp;
# Set the root password /usr/local/mysql/bin/mysqladmin -u root password 'secret'
# Configure MySQL so it is running all the time from bootup onwards cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql chmod 744 /etc/rc.d/init.d/mysql chkconfig --add mysql
################################ # Install apache ################################ cd /usr/local/src chown -R root.root apache_1.3.31.tar.gz tar -xvzf apache_1.3.31.tar.gz
groupadd www useradd -g www www
cd /usr/local/src/apache_1.3.31 ./configure \ --prefix=/usr/local/apache \ --enable-module=so \ --enable-module=rewrite \ --enable-shared=rewrite \ --server-uid=www \ --server-gid=www
make make install
################################ # Install php ################################ cd /usr/local/src tar -xvzf php-4.3.7.tar.gz chown -R root.root php-4.3.7.tar.gz
cd php-4.3.7 ./configure \ --with-mysql=/usr/local/mysql \ --with-apxs=/usr/local/apache/bin/apxs
make make install
cp php.ini-dist /usr/local/lib/php.ini
vi /usr/local/lib/php.ini ######## Modify the /usr/local/lib/php.ini file and make sure it contains the following commands. ######## max_execution_time=60 memory_limit=10M post_max_size=8M upload_max_filesize=8M file_uploads=On log_errors=On error_log=/usr/local/apache/logs/php_error_log ######## End ########
chown -R root.www /usr/local/lib/php chmod -R g-w,o-rwx /usr/local/lib/php
vi /usr/local/apache/conf/httpd.conf ######## Modify the /usr/local/apache/conf/httpd.conf file and make sure it contains the following commands. ######## User www Group www ServerAdmin postmaster@myqmail.com ServerName mail.five-star.cn # Following line should be present already as it would be inserted by the PHP make # Make sure you move it outside of the IfDefineSSL section if the make (incorrectly) put it there LoadModule php4_module libexec/libphp4.so # uncomment (or add) the following line AddType application/x-httpd-php .php # Add the index.php into this line so apache will use this file as a default in addition to index.html DirectoryIndex index.php index.html ######## End ########
rm -Rf /usr/local/apache/htdocs/* rm -f /usr/local/apache/index.html.* rm -Rf /usr/local/apache/cgi-bin/*
cd /usr/local chown -R root.root apache chmod 755 apache chmod -R 600 apache/* chmod -R u+X apache
cd apache chmod -R u+x bin chgrp -R www cgi-bin chmod -R u+x,g+x cgi-bin chgrp -R www icons chmod -R g+rX icons chgrp -R www logs chmod g+wX logs chgrp -R www htdocs chmod -R g+rX htdocs
# Run apache every time at bootup. rm -rf /etc/rc.d/init.d/httpd
vi /etc/rc.d/init.d/httpd ######## Create the /etc/rc.d/init.d/httpd file with the following commands. ######## #!/bin/sh # # Startup script for the Apache Web Server # # chkconfig: 345 85 15 # description: Apache is a World Wide Web server. It is used to serve \ # HTML files and CGI. # processname: httpd # pidfile: /var/run/httpd.pid
# Source function library. ./etc/rc.d/init.d/functions
# See how we were called. case "$1" in start) echo -n "Starting httpd: " daemon /usr/local/apache/bin/httpd echo touch /var/lock/subsys/httpd ;; stop) echo -n "Shutting down http: " killproc httpd echo rm -f /var/lock/subsys/httpd rm -f /var/run/httpd.pid ;; status) status httpd ;; restart) $0 stop $0 start ;; reload) echo -n "Reloading httpd: " killproc httpd -HUP echo ;; *) echo "Usage: $0 {start|stop|restart|reload|status}" exit 1 esac
exit 0 ######## End ########
chown root.root /etc/rc.d/init.d/httpd chmod 744 /etc/rc.d/init.d/httpd chkconfig --add httpd
################################ # Install vpopmial ################################ groupadd vchkpw useradd -g vchkpw vpopmail
cd /usr/local/src tar -xvzf vpopmail-5.4.0.tar.gz chown -R root.root vpopmail-5.4.0 cd vpopmail-5.4.0
mkdir ~vpopmail/etc chown vpopmail.vchkpw ~vpopmail/etc echo "localhost|0|vpopmailuser|vpoppasswd|vpopmail" > ~vpopmail/etc/vpopmail.mysql chown vpopmail.vchkpw ~vpopmail/etc/vpopmail.mysql chmod 640 ~vpopmail/etc/vpopmail.mysql
/usr/local/mysql/bin/mysql --password="secret" CREATE DATABASE vpopmail; GRANT select,insert,update,delete,create,drop ON vpopmail.* TO vpopmailuser@localhost IDENTIFIED BY 'vpoppasswd'; quit
./configure \ --disable-roaming-users \ --enable-logging=p \ --disable-passwd \ --enable-clear-passwd \ --disable-domain-quotas \ --enable-auth-module=mysql \ --disable-many-domains \ --enable-auth-logging \ --enable-mysql-logging \ --enable-valias \ --disable-mysql-limits
make make install-strip
vi ~vpopmail/etc/vlimits.default default_quota 20971520 # Set the mail box default size 20M.
echo "myqmail.com" > /home/vpopmail/etc/defaultdomain
# Setup the quota warning message that is sent to users when they are at 90% quota. vi quotawarn.msg ######## Create the quotawarn.msg file with the following commands. ######## From: SomeCompany Postmaster Reply-To: postmaster@myqmail.com To: SomeCompany User:; Subject: Mail quota warning Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit
Your mailbox on the server is now more than 90% full.
So that you can continue to receive mail, you need to remove some messages from your mailbox.
If you require assistance with this, please contact our support department :
email : support@myqmail.com Tel : xx xxxx xxxx ######## End ########
cp quotawarn.msg /home/vpopmail/domains/.quotawarn.msg
echo "Message rejected. Not enough storage space in user's mailbox to accept message." > /home/vpopmail/domains/.over-quota.msg
# add a domain /home/vpopmail/bin/vadddomain myqmail.com myqmail
# add a test account /home/vpopmail/bin/vadduser stone@myqmail.com stone
# delete a user # /home/vpopmail/bin/vdeluser stone@myqmail.com
# delete a domain # /home/vpopmail/bin/vdeldomain myqmail.com
################################ # Install autoresponder ################################ cd /usr/local/src tar -xvzf autorespond-2.0.4.tar.gz chown -R root.root autorespond-2.0.4
cd autorespond-2.0.4 make make install
################################ # Install ezmlm / ezmlm-idx ################################ cd /usr/local/src tar -xvzf ezmlm-0.53.tar.gz chown -R root.root ezmlm-0.53
cd /usr/local/src tar -xvzf ezmlm-idx-0.40.tar.gz chown -R root.root ezmlm-idx-0.40
cp -R ezmlm-idx-0.40/* ezmlm-0.53/ # (you need to press y quite a few times to allow the patch files to overwrite the original files) cd ezmlm-0.53 patch < idx.patch patch -p1 < ../ezmlm-idx-0.53.400.unified_41.patch
make make man make setup
################################ # Install qmailadmin ################################ cd /usr/local/src tar -xvzf qmailadmin-1.2.0.tar.gz chown -R root.root qmailadmin-1.2.0
cd qmailadmin-1.2.0 ./configure \ --enable-htmldir=/usr/local/apache/htdocs \ --enable-cgibindir=/usr/local/apache/cgi-bin \ --enable-maxusersperpage=12 \ --enable-maxaliasesperpage=12 \ --enable-modify-quota \ --disable-ezmlm-mysql \ --disable-help
make make install-strip
# Chinese qmailadmin # Backup the orginal files. mv /usr/local/share/qmailadmin/lang/en /usr/local/share/qmailadmin/lang/en_bak mv /usr/local/src/qmailadmin_zh /usr/local/share/qmailadmin/lang/en
# Test the qmailadmin http://mail.myqmail.com/cgi-bin/qmailadmin
################################ # Install sqwebmail ################################ cd /usr/local/src tar -xvzf sqwebmail-3.5.3.tar.gz chown -R root.root sqwebmail-3.5.3.tar.gz
cd sqwebmail-3.5.3 ./configure \ --without-authpwd --without-authshadow --without-authpam \ --without-authuserdb --without-authldap --without-authdaemon \ --with-authvchkpw --with-fcgi --enable-unicode=gb2312 \ --enable-webpass=vpopmail \ --enable-cgibindir=/usr/local/apache/cgi-bin \ --enable-imagedir=/usr/local/apache/htdocs/images/webmail \ --enable-mimetypes=/usr/local/apache/htdocs \ --enable-mimecharset=gb2312 \ --with-defaultlang=zh
make make install make install-configure
cp -a /usr/local/apache/htdocs/images/webmail /usr/local/apache/htdocs/ mv -f /usr/local/src/zh-cn/* /usr/local/share/sqwebmail/html/zh-cn mv /usr/local/src/images/webmail/* /usr/local/apache/htdocs/images/webmail/
# Test the webmail http://mail.myqmail.com/cgi-bin/sqwebmail
Download the source * qmail, http://www.qmail.org/netqmail-1.05.tar.gz * ucspi-tcp, ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz * daemontools, ftp://cr.yp.to/daemontools/daemontools-0.76.tar.gz
References: http://www.lifewithqmail.org/lwq.html http://www.pipeline.com.au/staff/mbowe/isp/webmail-server.htm http://cr.yp.to
|
|  |
| ,
|
|
上一篇:用于qmail-qfilter的附件过滤脚本
人气:2471
下一篇:freebsd+qmail+mysql+vpopmail之完全ports安装
人气:3100 |
浏览全部Qmail/Sendmail/Postf的内容
Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐
|
|