首页 > 学技术 > 技术网文 > Mail服务器 > 正文

[精华] qmail + webmail on Linux9 安装全过程


来源 chinaunix.net 酷勤网整理

前阵子做的一个项目,现在整理了,和大家一起分享。

qmail installation guide
author:  lupeng     lockbox@163.com
version: v1.1 2004-6-27

qmail is an excellent MTA(Mail Transport Agent) written by Dan Bernstein.

Why qmail:
* Security. qmail is secure.
* Speed. qmail is capable of handing millions of deliveries per day on a moderate system.
* Reliability. qmail writes mail to disk before it announces success.
* Extremely easy virtual domain administration.
* User-controlled mailing lists using ezmlm.
* Intuitive, straightforward, and simple administration.

Requirements:
* You must be running UNIX or a UNIX-like operating system.
* You must have a working DNS, and your system must have a DNS name.
* You must have a working C compiler.

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>;&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>;&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 &

# 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 <postmaster@myqmail.com>;
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

If any questions, welcome to email to me: lockbox@163.com



 xiaohua 回复于:2004-06-28 21:20:20

没什么特别。有点怀疑。如果有 qmtp、qmqp 等应用又不同


 xmy 回复于:2004-06-29 00:14:05

行,支持一下吧。


 andyx 回复于:2004-06-29 09:20:49

引用:原帖由 "xiaohua"]没什么特别。有点怀疑。如果有 qmtp、qmqp 等应用又不同
 发表:


发这篇文档,不是为了什么特别!!
只是因为,曾经为了解决问题,为了完成任务,而苦苦寻找答案,当然也曾多次来到这里。
发这篇文档,只希望以后有学习装qmail的朋友,不要再象我装的时候那样痛苦。

最后祝大家成功!


 bigbigbig 回复于:2004-06-29 13:25:35

好东西,收了先~~~~感谢搂主!


 znavy 回复于:2004-06-29 16:04:38

引用:原帖由 "andyx" 发表:

发这篇文档,不是为了什么特别!!
只是因为,曾经为了解决问题,为了完成任务,而苦苦寻找答案,当然也曾多次来到这里。
发这篇文档,只希望以后有学习装qmail的朋友,不要再象我装的时候那样痛苦。

最后祝大..........



不错,不要理他,继续努力!


 hzbiz 回复于:2004-06-30 11:12:15

还是有点不明白,请详细述说。。。


 szkingrose 回复于:2004-06-30 15:57:21

应该不是原创吧。这么多英文,看得我头疼。


 li2002 回复于:2004-07-01 17:58:07

ezmlm-idx-0.53.400.unified_41.patch 
这个在那里下载的??
最新版是0。42,怎么会有这个版本的


 psailing 回复于:2004-07-06 16:27:28

顶!!!!


 luolh 回复于:2004-07-07 17:42:05

支持!


 aspbiz 回复于:2004-07-08 00:15:10

现在很多Qmail安装说明,都不一定整个安装过程写下来的,错误在所难免。


 xiaohua 回复于:2004-07-08 07:36:07

我的《速成手册》写了快半年了,还一直在修订  :shock:


 falawang 回复于:2004-07-09 16:23:04

引用:原帖由 "xiaohua"]我的《速成手册》写了快半年了,还一直在修订  :shock:
 发表:


什么时候能完成啊?


 hiandy 回复于:2004-07-13 09:32:54

好文章啊。顶。不过我有个地方通不过。老大能否指点一下:

[root@it bin]# ./vadduser test@test.com
Please enter password for test@test.com:
enter password again:
vmysql: sql error[3]: Unknown column 'pw_clear_passwd' in 'field list'
vmysql: sql error[3]: Unknown column 'pw_clear_passwd' in 'field list'
vmysql: sql error[2]: Unknown column 'pw_clear_passwd' in 'field list'
Failed while attempting to add user to auth backend
Error: no auth connection


 xiaohua 回复于:2004-07-13 09:40:17

引用:原帖由 "falawang" 发表:

什么时候能完成啊?



不知道哦。很多时候发现有什么好东西、新功能就会往里面加。也会改进一些东西。所以修订不断  :shock:


 dongdonga 回复于:2004-07-13 13:12:41

按照上面的安装没法装得下去。。。装到这里就出错了,没有qmailctl

mv /usr/local/src/qmailctl /var/qmail/bin/ 


请问到哪找哪几个Script?


 falawang 回复于:2004-07-13 15:57:35

引用:原帖由 "dongdonga" 发表:
按照上面的安装没法装得下去。。。装到这里就出错了,没有qmailctl

mv /usr/local/src/qmailctl /var/qmail/bin/ 


请问到哪找哪几个Script?



#!/bin/sh

# description: the qmail MTA

PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

#
# change these variables to decide whether pop, imap and imaps 
# are controlled by qmailctl
#

POP3="yes"
IMAP="no"
IMAPS="yes"

###

case "$1" in
  start)
    echo "Starting qmail"
    if svok /service/qmail-send ; then
      svc -u /service/qmail-send /service/qmail-send/log
    else
      echo "qmail-send supervise not running"
    fi
    if svok /service/qmail-smtpd ; then
      svc -u /service/qmail-smtpd /service/qmail-smtpd/log
    else
      echo "qmail-smtpd supervise not running"
    fi
    if [ -d /var/lock/subsys ]; then
      touch /var/lock/subsys/qmail
    fi

    if [ $POP3 = "yes" ] ; then
       if svok /service/qmail-pop3d ; then
        svc -u /service/qmail-pop3d /service/qmail-pop3d/log
       else
        echo qmail-pop3d supervise not running
       fi
    fi

    if [ $IMAP = "yes" ] ; then
       if svok /service/imap ; then
        svc -u /service/imap /service/imap/log
       else
        echo imap supervise not running
       fi
    fi

    if [ $IMAPS = "yes" ] ; then
       if svok /service/imaps ; then
        svc -u /service/imaps /service/imaps/log
       else
        echo imaps supervise not running
       fi
    fi

    ;;
  stop)
    echo "Stopping qmail..."
    echo "  qmail-smtpd"
    svc -d /service/qmail-smtpd /service/qmail-smtpd/log
    echo "  qmail-send"
    svc -d /service/qmail-send /service/qmail-send/log
    if [ -f /var/lock/subsys/qmail ]; then
      rm /var/lock/subsys/qmail
    fi

    if [ $POP3 = "yes" ] ; then
      echo "  qmail-pop3d"
      svc -d /service/qmail-pop3d /service/qmail-pop3d/log
    fi

    if [ $IMAP = "yes" ] ; then
      echo "  imap"
      svc -d /service/imap /service/imap/log
    fi

    if [ $IMAPS = "yes" ] ; then
      echo "  imaps"
      svc -d /service/imaps /service/imaps/log
    fi
    ;;
  stat)
    svstat /service/qmail-send
    svstat /service/qmail-send/log
    svstat /service/qmail-smtpd
    svstat /service/qmail-smtpd/log

    if [ $POP3 = "yes" ] ; then
      svstat /service/qmail-pop3d
      svstat /service/qmail-pop3d/log
    fi
    if [ $IMAP = "yes" ] ; then
      svstat /service/imap
      svstat /service/imap/log
    fi
    if [ $IMAPS = "yes" ] ; then
      svstat /service/imaps
      svstat /service/imaps/log
    fi

    qmail-qstat
    ;;
  doqueue|alrm|flush)
    echo "Flushing timeout table and sending ALRM signal to qmail-send."
    /var/qmail/bin/qmail-tcpok
    svc -a /service/qmail-send
    ;;
  queue)
    qmail-qstat
    qmail-qread
    ;;
  reload|hup)
    echo "Sending HUP signal to qmail-send."
    svc -h /service/qmail-send
    ;;
  pause)
    echo "Pausing qmail-send"
    svc -p /service/qmail-send
    echo "Pausing qmail-smtpd"
    svc -p /service/qmail-smtpd

    if [ $POP3 = "yes" ] ; then
      echo "Pausing qmail-pop3d"
      svc -p /service/qmail-pop3d
    fi
    if [ $IMAP = "yes" ] ; then
      echo "Pausing imap"
      svc -p /service/imap
    fi
    if [ $IMAPS = "yes" ] ; then
      echo "Pausing imaps"
      svc -p /service/imaps
    fi
    ;;
  cont)
    echo "Continuing qmail-send"
    svc -c /service/qmail-send
    echo "Continuing qmail-smtpd"
    svc -c /service/qmail-smtpd

    if [ $POP3 = "yes" ] ; then
      echo "Continuing qmail-pop3d"
      svc -c /service/qmail-pop3d
    fi
    if [ $IMAP = "yes" ] ; then
      echo "Continuing imap"
      svc -c /service/imap
    fi
    if [ $IMAPS = "yes" ] ; then
      echo "Continuing imaps"
      svc -c /service/imaps
    fi
    ;;
  restart)
    echo "Restarting qmail:"
    echo "* Stopping qmail-smtpd."
    svc -d /service/qmail-smtpd /service/qmail-smtpd/log
    echo "* Sending qmail-send SIGTERM and restarting."
    svc -t /service/qmail-send /service/qmail-send/log
    echo "* Restarting qmail-smtpd."
    svc -u /service/qmail-smtpd /service/qmail-smtpd/log

    if [ $POP3 = "yes" ] ; then
      echo "* Restarting qmail-pop3d."
      svc -t /service/qmail-pop3d /service/qmail-pop3d/log
    fi
    if [ $IMAP = "yes" ] ; then
      echo "* Restarting imap."
      svc -t /service/imap /service/imap/log
    fi
    if [ $IMAPS = "yes" ] ; then
      echo "* Restarting imaps."
      svc -t /service/imaps /service/imaps/log
    fi
    ;;
  cdb)
    tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
    chmod 644 /etc/tcp.smtp.cdb
    echo "Reloaded /etc/tcp.smtp."
    ;;
  help)
    cat <<HELP
   stop -- stops mail service (smtp connections refused, nothing goes out)
  start -- starts mail service (smtp connection accepted, mail can go out)
  pause -- temporarily stops mail service (connections accepted, nothing leaves)
   cont -- continues paused mail service
   stat -- displays status of mail service
    cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- schedules queued messages for immediate delivery
 reload -- sends qmail-send HUP, rereading locals and virtualdomains
  queue -- shows status of queue
   alrm -- same as doqueue
  flush -- same as doqueue
    hup -- same as reload
HELP
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
    exit 1
    ;;
esac

exit 0


 灰鸟 回复于:2004-07-22 09:16:15

拽什么英文阿!应该给初学者写些中文的文档才对!:(


 zengting 回复于:2004-07-22 17:42:51

in my opinion,the english is very simple.


 gxg 回复于:2004-07-26 12:31:19

引用:原帖由 "li2002" 发表:
ezmlm-idx-0.53.400.unified_41.patch 
这个在那里下载的??
最新版是0。42,怎么会有这个版本的


o.42 does  not need this patch.


 foolkaka 回复于:2004-07-28 21:21:19

我以前安装了一个qmail
按照这个文档安装出错

出错在netqmail 的 make install check

..............................
| sed s}SPAWN}"`head -1 conf-spawn`"}g \
>; dot-qmail.5
nroff -man dot-qmail.5 >; dot-qmail.0
nroff -man qmail-command.8 >; qmail-command.0
nroff -man tcp-environ.5 >; tcp-environ.0
nroff -man maildir.5 >; maildir.0
nroff -man mbox.5 >; mbox.0
nroff -man addresses.5 >; addresses.0
nroff -man envelopes.5 >; envelopes.0
nroff -man forgeries.7 >; forgeries.0
./install
install: fatal: unable to write .../bin/qmail-lspawn: text busy
make: *** [setup] Error 111

请指教,谢谢~


 Fun-FreeBSD 回复于:2004-07-28 22:53:07

我装完怎么不能用,给外部发邮件,说我发送邮件不在它的relay里

只好在编译vpopmail的时候,选择--enable-roaming-users了

郁闷,这么多patch,到底哪个smtp-auth好用啊 :(


 wjg5256 回复于:2004-07-29 07:57:35

8错,在linux8上全程验证通过。
不过楼主也要出示一下Scripts呀
* qmailctl 
* inst_check 
* qmailadmin_zh 
* zh-cn/* 
* images/webmail/* 
这些东西到哪里去找呀(qmailctl找到了)


 Fun-FreeBSD 回复于:2004-07-29 08:37:52

lifewithqmail里有qmailctl,inst_check:
http://www.lifewithqmail.org/lwq.html

qmailadmin最新版1.2.2里已经有中文了
# cd /usr/local/share/qmailadmin/lang
# cp en en.bak
# cp zh-cn en

如果qmail加了smtp-auth,那么编译vpopmail的时候应该用
./configure \
--enable-roaming-users \
......
而不是--disable-roaming-users

sqwebmail的网站我上不去,连英文的都搞不到,郁闷 :(


 Fun-FreeBSD 回复于:2004-07-29 08:51:05

netqmail-1.05 的smtp-auth好像还没解决email地址可以随便设的问题
精华里帖子里有这个补丁,找空再看看


 ns110 回复于:2004-07-29 08:53:02

引用:原帖由 "foolkaka" 发表:
rror 111

请指教,谢谢~



不知有没有看过 http://www.dmail-x.com/doc/qmail-vpopmail.html
估计是有点麻烦, 在那台srv上.


 xiaohua 回复于:2004-07-29 09:09:03

:shock:  :shock:  :shock:  :shock:  :?:  :?:  :?:  :?:


 xiaohua 回复于:2004-07-29 09:15:45

引用:原帖由 "Fun-FreeBSD" 发表:
lifewithqmail里有qmailctl,inst_check:
http://www.lifewithqmail.org/lwq.html

qmailadmin最新版1.2.2里已经有中文了
# cd /usr/local/share/qmailadmin/lang
# cp en en.bak
# cp zh-cn en

如果qmail加..........



妈的,老子以前翻译了一份中文的,寄过去inter7.com ,那家伙就是没反应。现在收了另一个人的 :evil:  :twisted:


 Fun-FreeBSD 回复于:2004-07-29 09:37:04

引用:原帖由 "xiaohua" 发表:


妈的,老子以前翻译了一份中文的,寄过去inter7.com ,那家伙就是没反应。现在收了另一个人的 :evil:  :twisted:



Dmail II 是你的吗?不open,弱


 xiaohua 回复于:2004-07-29 11:34:05

楼上的这么强,怎不见open一个出来? :lol:  :lol: 

至于小弟用的程序,满天下都是,这也不算OPEN的话,不知什么是open了 :mrgreen:  :mrgreen:


 Fun-FreeBSD 回复于:2004-07-30 11:39:31

你用的东西是open的,但是你的技术资料是不open的,你把open的东西做成不open的了


 xiaohua 回复于:2004-07-30 12:00:26

引用:原帖由 "Fun-FreeBSD"]你用的东西是open的,但是你的技术资料是不open的,你把open的东西做成不open的了
 发表:



引用:     GNU GENERAL PUBLIC LICENSE
       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                          675 Mass Ave, Cambridge, MA 02139, USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.


        GNU通用公共许可证
         1991.6 第二版

版权所有(C)1989,1991 Free Software foundation, Inc.
             675 Mass Ave, Cambridge, MA02139, USA
  允许每个人复制和发布这一许可证原封不动的副本,但不允许对它做任何
修改。

    Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

        序言

  大多数软件许可证的意图是为剥夺你的共享和修改软件的自由。对比之下,
GNU通用公共许可证力图保证你共享和修改自由软件的自由——保证自由软件对所有
用户是自由的。GNU通用公共许可证适用于大多数自由软件基金会的软件,以及由
使用这些软件而承担义务的作者所开发的软件。(自由软件基金会的其他一些软
件受GNU库通用许可证的保护)。你也可以将它用到你的程序中。

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  当我们谈到自由软件(free software)时,所指的是自由而不是价格。我们
的GNU通用公共许可证力图保证你有发布自由软件的自由(如果你愿意,你可以对
此项服务收取一定的费用),保证你能收到源程序或者在你需要时能得到它,保
证你能修改软件或将它的一部分用于新的自由软件;而且还保证你知道你能做这
些事情。

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  为保护你的权利,我们需要作出规定:禁止任何人不承认你的权利,或者要求
你放弃这些权利。如果你修改了自由软件或者分发了软件的副本,这些规定就转化
为你的责任。

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  例如,如果你分发这样一个程序的副本,不管是收费的还是免费的,你都必须
将你具有的一切权利给予接受者。你必须保证他们能收到或得到源程序,并且将这
些条款出示给他们,以使他们知道自己有这样的权利。

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  我们采取两项措施来保护你的权利:
  (1)给软件以版权保护,及
  (2)给你提供该许可证,赋予你复制、分发或修改这些软件的法律许可。

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  同样,出于保护每个作者和我们自己,需要让每个人都清楚地明白,自由软件
没有担保。如果软件被他人修改,并加以传播,我们需要让接受者明白,他们所得
到的并非原始的自由软件,由他人引起的任何问题,不应损害原作者的声誉。

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  最后,所有的自由软件不断受到软件专利的威胁。我们希望避免这样的危险,
自由软件的再发布者以个人名义获得专利许可证,结果是将这些程序变为私有。为
防止这种情形,我们必须明确的是,任何这样的专利都必须是以允许每个人自由使
用为前提,否则就不能得到该许可。

  The precise terms and conditions for copying, distribution and
modification follow.

  以下是有关复制、分发及修改的准确条款和条件。

    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

GNU通用公共许可证
有关复制、分发及修改的条款和条件

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  0. 此许可证适用于任何包含版权所有者声明的程序和其他作品,版权所有
者在声明中明确说明程序和作品可以在通用公共许可证条款的约束下分发。以下
提到的“程序”,指的是任何这样的程序或作品。而“基于该程序的作品”,指的是
该程序或者任何受版权法约束的衍生作品,也就是说包含该程序或程序的一部分
的作品,可以是原封不动的,或经过修改的和或翻译成其他语言的(程序)。在
下文中,(在下文中,翻译包含在修改的条款中)每个许可证接受人用你来称呼。

  许可证条款不适用于复制、分发和修改以外的活动,这些活动超出这些条款
的范围。运行程序的活动不受条款的限制。仅当程序的输出构成基于程序作品的
内容时,这一条款才适用(如果只运行程序就无关)。是否普遍适用取决于程序
具体用来做什么。

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  1. 只要你在每一副本上明显和恰当地发表版权声明和不承担担保的声明,
保持此许可证的声明和没有担保的声明完整无损,并和程序一起给每个其他的
程序接受者一份许可证的副本,你就可以用任何媒体复制和发布你收到的原始
的程序的源代码。

  你可以为转让副本的实际行动收取一定费用。你也有权选择提供担保以换
取一定的费用。

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

  2. 你可以修改程序的一个或几个副本或程序的任何部分,以该程序为基础
构成你的作品。只要你同时满足下面的所有条件,你就可以按前面第 1 款的要
求复制和分发这一经过修改的程序或作品。

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

  a)你必须在修改的文件中附有突出的说明你修改了这一文件及具体的修改
日期。

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

  b)你必须使你分发或出版的作品(它包含程序的全部或一部分,或包含由
程序的全部或部分衍生的作品)允许第三方作为整体按本许可证条款免费使用。

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

  c)如果修改的程序在运行时以交互方式读取命令,你必须使它在开始进入
常规的交互使用方式时打印或显示声明:包括适当的版权声明和没有担保的声明
(或者你提供担保的声明)、用户可以按此许可证条款重新分发程序的声明、并
告诉用户如何看到这一许可证的副本。(例外的情况:如果原始程序以交互方式
工作,它并不打印这样的声明,你的基于程序的作品也就不用打印声明)。

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

  这些要求适用于修改过作品的作为一个整体。如果能够确定作品的一部分并
非源自该程序,则可以合理地认为这部分是独立的,是不同的作品。当你将这部
分作为独立作品分发时,它不受本许可证及其条款的约束。但是当你将这部分作
品,与基于该程序的作品作为一个整体分发时,将受到本许可证条款约束,你应
该准予其他获得该许可证者之使用范围扩大到整个产品。也就是每个部分,不管
它是谁写的。

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

  因此,本条款的意图不在于索取权利或剥夺全部由你写成的作品的权利,而
是履行权利来控制基于程序的集体作品或衍生作品的发布。

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  此外,将与程序无关的作品和该程序(或基于该程序的作品)一起放在存贮
体或分发媒体的同一卷上,并不导致将其他作品置于此许可证的约束范围之内。

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

  3. 你可以以目标码或可执行格式复制或发布程序(或符合第2款的基于程序
的作品),只要你遵守前面的第1、2款,并同时满足下列3条中的1条。

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

  a)在通常用作软件交换的媒体上,和目标码一起附有机器可读的完整的源代
码。这些源码的发布应符合上面第1、2款的要求。或者

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

  b)在通常用作软件交换的媒体上,和目标码一起,附有给第三方提供相应的
机器可读的源码的书面报价。有效期不少于3年,费用不超过实际完成源程序分发
的实际成本。源码的分发应符合上面的第1,2款的要求。或者

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

  c)和目标码一起,附有你收到的发布源码的报价信息。(这一条款只适用于
非商业性分发,而且你只收到程序的目标码或可执行代码和按b)款要求提供的报
价)。

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

  作品的源码指的是对作品进行修改最优先择取的形式。对可执行的作品讲,
完整的源码包括:所有模块的所有源程序,加上有关的接口的定义,加上控制
可执行作品的安装和编译的script。作为特殊例外,发布的源码不必包含任何
常规发布的供可执行代码在上面运行的操作系统的主要组成部分(如编译程序,
内核等)。除非这些组成部分和可执行作品结合在一起。

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  如果采用提供对指定地点的访问和复制的方式发布可执行码或目标码,那
么,提供对同一地点的访问和复制源码可以算作源码的发布,即使第三方不强
求与目标码一起复制源码。

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  4. 除非你明确按许可证提出的要求去做,否则你不能复制,修改,转发许
可证和发布程序。任何试图用其他方式复制,修改,转发许可证和发布程序是
无效的。而且将自动结束许可证赋予你的权利。然而,对那些从你那里按许可
证条款得到副本和权利的人们,只要他们继续全面履行条款,许可证赋予他们
的权利仍然有效。

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  5. 你没有在许可证上签字,因而你没有必要一定接受这一许可证。然而,
没有任何其他东西赋予你修改和发布程序及其衍生作品的权利。如果你不接受
许可证,这些行为是法律禁止的。因此,如果你修改或发布程序(或任何基于
程序的作品),你就表明你接受这一许可证以及它的所有有关复制、发布和修
改程序或基于程序的作品的条款和条件。

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  6. 每当你重新发布程序(或任何基于程序的作品)时,接受者自动从原始
许可证颁发者那里接到受这些条款和条件支配的复制,发布或修改程序的许可
证。你不可以对接受者履行这里赋予他们的权利强加其他限制。你也没有强求
第三方履行许可证条款的义务。

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

  7. 如果由于法院判决或违反专利的指控或任何其他原因(不限于专利问题)
的结果,强加于你的条件(不管是法院判决、协议或其他)和许可证的条件有冲
突。他们也不能用许可证条款为你开脱。在你不能同时满足本许可证规定的义务
及其他相关的义务时,作为结果,你可以根本不发布程序。例如,如果某一专利
许可证不允许所有那些直接或间接从你那里接受副本的人们在不付专利费的情况
下重新发布程序,唯一能同时满足两方面要求的办法是停止发布程序。

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

  如果本条款的任何部分在特定的环境下无效或无法实施,就使用条款的其余
部分。并将条款作为整体用于其他环境。

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

  本条款的目的不在于引诱你侵犯专利或其他财产权的要求,或争论这种要求
的有效性。本条款的主要目的在于保护自由软件发布系统的完整性。它是通过通
用公共许可证的应用来实现的。许多人坚持应用这一系统,已经为通过这一系统
发布大量自由软件作出慷慨的供献。作者/捐献者有权决定他/她是否通过任何
其他系统发布软件。许可证持有人不能强制这种选择。

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  本节的目的在于明确说明许可证其余部分可能产生的结果。

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  8. 如果由于专利或者由于有版权的接口问题使程序在某些国家的发布和使用受
到限止,将此程序置于许可证约束下的原始版权拥有者可以增加限止发布地区的条
款,将这些国家明确排除在外。并在这些国家以外的地区发布程序。在这种情况下,
许可证包含的限止条款和许可证正文一样有效。

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  9. 自由软件基金会可能随时出版通用公共许可证的修改版或新版。新版和当前
的版本在原则上保持一致,但在提到新问题时或有关事项时,在细节上可能出现差别。

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  每一版本都有不同的版本号。如果程序指定适用于它的许可证版本号以及“任何后
续版本”。你有权选择遵循指定的版本或自由软件基金会以后出版的新版本,如果程序
未指定许可证版本,你可选择自由软件基金会已经出版的任何版本。

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

  10. 如果你愿意将程序的一部分结合到其他自由程序中,而它们的发布条件不同。
写信给作者,要求准予使用。如果是自由软件基金会加以版权保护的软件,写信给自
由软件基金会。我们有时会作为例外的情况处理。我们的决定受两个主要目标的指导。
这两个主要目标是:我们的自由软件的衍生作品继续保持自由状态。以及从整体上促
进软件的共享和重复利用。
 
    NO WARRANTY

                 没有担保

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  11. 由于程序准予免费使用,在适用法准许的范围内,对程序没有担保。除非另
有书面说明,版权所有者和/或其他提供程序的其他团体不提供任何类型的担保。不
论是明确的,还是隐含的。包括但不限于隐含的适销和适合特定用途的保证。全部的
风险,如程序的质量和性能问题都由你来承担。如果程序出现缺陷,你承担所有必要
的服务,修复和改正的费用。

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

  12. 除非适用法或书面协议的要求,在任何情况下,任何版权所有者或任何按许
可证条款修改和发布程序的人们都不对你的损失负有任何责任。包括由于使用或不能
使用程序引起的任何一般的,特殊的,偶然发生的或重大的损失(包括但不限于数据
的损失,或者数据变得不精确,或者你或第三方的持续的损失,或者程序不能和其他
程序协调运行等)。即使版权所有者和其他人提到这种损失的可能性也不例外。
 
     END OF TERMS AND CONDITIONS
     
        条款和条件结束




根据大麻版的GPL协议,并没有说资料也要OPEN,让你失望了 :lol:  8) 我只是按规矩办事

以上足以证明俺没有违犯软件协议。另外我还想说两点:
每个软件本身有一定的说明文档。
但可能每个说明文档也不会很详细

那么,你是不是也说他们的东西也不OPEN :em17: 8)


 Fun-FreeBSD 回复于:2004-07-30 12:04:28

废话,说的就是你不open,弱智


 xiaohua 回复于:2004-07-30 13:55:34

引用:原帖由 "Fun-FreeBSD"]废话,说的就是你不open,弱智
 发表:



是啊,谁叫我的东西写得好,人人都订着。也少不你这个 :lol: 现在才发觉,原来我和SB说话


 wjg5256 回复于:2004-08-02 22:42:28

我按照上边的操作做了,唯一不同的是我把qmail目录改了。发现一切正常,用qmailadmin也能创建用户,用sqwebmail也能登陆。但是就是不能发邮件,我晕哪。下边是我的进程情况,请参考
  543 ?        S      0:00 /bin/sh /command/svscanboot
  557 ?        S      0:00  \_ svscan /service
  559 ?        S      0:00  |   \_ supervise qmail-send
12304 ?        Z      0:00  |   |   \_ [env <defunct>;]
  560 ?        S      0:00  |   \_ supervise log
  574 ?        S      0:00  |   |   \_ /usr/local/bin/multilog t /export/home/qmail/log
  561 ?        S      0:00  |   \_ supervise qmail-smtpd
  575 ?        S      0:00  |   |   \_ /export/home/qmail/bin/tcpserver -v -R -l bc165.com -x /export/home/qmail/etc/tcp.smtp.cdb -c 20 -u 1012 -g 1011 0 smtp /export/home/qmail/bin/qmail-smtpd
  562 ?        S      0:00  |   \_ supervise log
  580 ?        S      0:00  |   |   \_ /usr/local/bin/multilog t /export/home/qmail/log/smtpd
  563 ?        S      0:00  |   \_ supervise qmail-pop3d
  579 ?        S      0:00  |   |   \_ /export/home/qmail/bin/tcpserver -v -R -H -l 0 0 110 /export/home/qmail/bin/qmail-popup bc165.com /export/home/vpopmail/bin/vchkpw /export/home/qmail/bin/qmail-pop3d Maildir
  564 ?        S      0:00  |   \_ supervise log
  581 ?        S      0:00  |       \_ /usr/local/bin/multilog t /export/home/qmail/log/pop3d
  558 ?        S      0:00  \_ readproctitle service errors: ...such file or directory?env:  : No such file or directory?env:  : No such file or directory?env:  : No such file or directory?env:  : No such file or directory?env:  : No such file or direc
最后的那个错误提示是什么呀,问题的关键在哪里呀,请各位高手赐教。


 xiaohua 回复于:2004-08-03 08:35:56

还是用现成的好。 :mrgreen:


 wjg5256 回复于:2004-08-03 10:18:43

好是好。可是现成的没有呀。
没有免费的午餐肉呀


 xiaohua 回复于:2004-08-03 15:32:23

这年代免费的就要自己付出艰辛。收费的自己可以坐着,动动嘴巴和指,多好!

如果你需要现成的,可以联系我


 Fun-FreeBSD 回复于:2004-08-03 15:38:38

引用:原帖由 "wjg5256" 发表:
好是好。可是现成的没有呀。
没有免费的午餐肉呀



用我发的那个帖子做,肯定成,而且非常好用

http://bbs.chinaunix.net/forum/14/20040803/379121.html

http://bbs.chinaunix.net/forum/14/20040802/378311.html


 panlw 回复于:2005-05-26 17:33:31

1247 ?        S      0:00 /bin/sh /command/svscanboot
 1282 ?        S      0:00  \_ svscan /service
 1284 ?        S      0:00  |   \_ supervise qmail-send
 1664 ?        Z      0:00  |   |   \_ [qmail-send <defunct>;]
 1285 ?        S      0:00  |   \_ supervise log
 1590 ?        S      0:00  |   |   \_ /usr/local/bin/multilog t /var/log/qmail
 1286 ?        S      0:00  |   \_ supervise qmail-smtpd
 1669 ?        Z      0:00  |   |   \_ [tcpserver <defunct>;]
 1287 ?        S      0:00  |   \_ supervise log
 1598 ?        S      0:00  |   |   \_ /usr/local/bin/multilog t /var/log/qmail/smtpd
 1288 ?        S      0:00  |   \_ supervise qmail-pop3d
 1601 ?        S      0:00  |   |   \_ /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup FQDN /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir
 1289 ?        S      0:00  |   \_ supervise log
 1602 ?        S      0:00  |       \_ /usr/local/bin/multilog t /var/log/qmail/pop3d
 1283 ?        S      0:00  \_ readproctitle service errors: ................................................................................................................................................................................................................................................................................................................................................................................................................


qmail-send <defunct>;和tcpserver <defunct>;
这两个问题一直不能解决,不知道文提出在哪里
下面是我的安装日志,不知道哪里不妥

#------------------------------------------------------------------------------
#patches
http://djbware.csi.hu/patches/djbdns-1.05.errno.patch
http://djbware.csi.hu/patches/daemontools-0.76.errno.patch
http://djbware.csi.hu/patches/ucspi-tcp-0.88.a_record.patch
http://djbware.csi.hu/patches/ucspi-tcp-0.88.errno.patch
http://djbware.csi.hu/patches/ucspi-tcp-0.88.nobase.patch
http://djbware.csi.hu/patches/qmail-1.03.errno.patch
http://djbware.csi.hu/patches/qmail-1.03.qmail_local.patch
http://djbware.csi.hu/patches/checkpassword-0.90.errno.patch
http://djbware.csi.hu/patches/qmailanalog-0.70.errno.patch
http://djbware.csi.hu/patches/clockspeed-0.62.errno.patch
http://djbware.csi.hu/patches/dot-forward-0.71.errno.patch
http://djbware.csi.hu/patches/fastforward-0.51.errno.patch
http://djbware.csi.hu/patches/mess822-0.58.errno.patch
http://djbware.csi.hu/patches/publicfile-0.52.errno.patch
http://djbware.csi.hu/patches/serialmail-0.75.errno.patch

#------------------------------------------------------------------------------
#patch - qmail-0.0.0.0.patch
--- qmail-1.03/ipme.c Mon Jun 15 06:53:16 1998
+++ qmail-1.03-sg/ipme.c Mon Jan 29 02:27:38 2001
@@ -46,6 +46,11 @@
   ipme.len = 0;
   ix.pref = 0;
  
+  /* 0.0.0.0 is a special address which always refers to 
+   * "this host, this network", according to RFC 1122, Sec. 3.2.1.3a.
+  */
+  byte_copy(&ix.ip,4,"\0\0\0\0");
+  if (!ipalloc_append(&ipme,&ix)) { return 0; }
   if ((s = socket(AF_INET,SOCK_STREAM,0)) == -1) return -1;
  
   len = 256;

#------------------------------------------------------------------------------
#packages
http://cr.yp.to/software/qmail-1.03.tar.gz
http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz

#patch qmail
patch -p1 < ../patches/qmail-1.03.errno.patch
patch -p1 < ../patches/qmail-1.03.qmail_local.patch
patch -p1 < ../patches/qmail-0.0.0.0.patch
make
make setup check

#patch ucspi-tcp
patch -p1 < ../patches/ucspi-tcp-0.88.a_record.patch
patch -p1 < ../patches/ucspi-tcp-0.88.errno.patch
patch -p1 < ../patches/ucspi-tcp-0.88.nobase.patch
make
make setup check

#patch daemontools
mkdir /package
chmod 1755 /package
mv ~/qmailsrc/daemontools-0.76.tar.gz /package
cd /package
tar xvfz daemontools-0.76.tar.gz
cd /package/admin/daemontools-0.76
patch -p1 <  ~/qmailsrc/patches/daemontools-0.76.errno.patch
package/install

#patch checkpassword
patch -p1 <  ~/qmailsrc/patches/checkpassword-0.90.errno.patch
make
make setup check

#------------------------------------------------------------------------------
# Create groups and users
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

#------------------------------------------------------------------------------
# Create aliases
echo panlw >; /var/qmail/alias/.qmail-root
echo panlw >; /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

#------------------------------------------------------------------------------
# Create scripts

# Create folders
mkdir /var/log/qmail
mkdir /var/log/qmail/smtpd
mkdir /var/log/qmail/pop3d

chown qmaill /var/log/qmail
chown qmaill /var/log/qmail/smtpd
chown qmaill /var/log/qmail/pop3d

mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log
mkdir -p /var/qmail/supervise/qmail-pop3d/log

#chmod +t /var/qmail/supervise/qmail-pop3d   # if daemontools < 0.75

# Create /var/qmail/control/defaultdelivery
[1] mailbox
echo ./Mailbox >; /var/qmail/control/defaultdelivery

[2] maildir
echo ./Maildir/ >; /var/qmail/control/defaultdelivery
cd /home && \
for user in *
do
  su -l "$user" -c "/var/qmail/bin/maildirmake Maildir"
  su -l "$user" -c "echo ./Maildir/ >; .qmail"
  ls -ld "$user"/Maildir
done

# Create /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`"

# Create /var/qmail/supervise/qmail-send/run
#!/bin/sh
exec /var/qmail/rc

# Create /var/qmail/supervise/qmail-send/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail

# Create /var/qmail/control/concurrencyincoming
echo 20 >; /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming

# Create /etc/tcp.smtp
192.168.0.:allow,RELAYCLIENT=""
127.0.0.1:allow,RELAYCLIENT=""
:allow

# Create /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>;&1

# Create /var/qmail/supervise/qmail-smtpd/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd

# Create /var/qmail/supervise/qmail-pop3d/run
#!/bin/sh
exec /usr/local/bin/softlimit -m 2000000 /usr/local/bin/tcpserver -v -R -H -l 0 0 110 /var/qmail/bin/qmail-popup FQDN /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>;&1

# Create /var/qmail/supervise/qmail-pop3d/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/pop3d

# Build services
chmod 755 /var/qmail/rc
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
chmod 755 /var/qmail/supervise/qmail-pop3d/run
chmod 755 /var/qmail/supervise/qmail-pop3d/log/run

ln -s /var/qmail/supervise/qmail-send /service
ln -s /var/qmail/supervise/qmail-smtpd /service
ln -s /var/qmail/supervise/qmail-pop3d /service

# Create controller
# Create /var/qmail/bin/qmailctl
@see qmailctl-script
chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/bin

# Create test - ~/qmailsrc/inst_test
@see inst_test

#------------------------------------------------------------------------------
# Test mail server status
[1] inst_check
[2] qmailctl stat
[3] ps -eflww | grep "service errors" | grep -v grep
[4] ps axfww

#------------------------------------------------------------------------------
# End


 alsonluo 回复于:2005-05-29 20:15:54

不是说了吗,“readproctitle service errors”




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=356486
转载请注明作者名及原文出处



收藏本页到: