破解天下论坛's Archiver

wumingxiaozu 发表于 2010-5-12 16:15

FreeBSD8.0下配置MySql+Postgresql+Apache+PHP+SVN+GD+Memcached

一、无关紧要的配置.

硬盘划分方式:
01. 分区,开始安装系统; // OK

02. 配置相关选项; // OK

03. 第一次启动系统; // OK

04. 配置IP/hostname/FTP/SSH; // OK

05. Apache + PHP + SVN + Memcached + Memcache; // OK

06. 安装PostgreSQL; // OK

07. 安装MySql; // OK

08. WebMail;

一、硬盘划分.

/ 8G
/usr/ports/distfiles/ 10G
/work 160G


二、数据存放.

所有数据均放在/work下,其它地方只需要建立link即可.



系统安装方式:
最小化安裝 + Ports


基本配置:
============================================================================================================

  1.FreeBSD指定ports下载地址.

    MASTER_SITE_OVERRIDE=ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}

  2.RamDisk.

    vi /etc/fstab  // 添加一行:md /tmp mfs rw,noatime,-s256M 0 0

  3.光驱的使用.

    mount /cdrom                      # 挂载光驱
    umount /cdrom                      #
    mount -t cd9660 /dev/acd0 /mnt             # 挂载光盘
    cp /dev/acd0 /home/my.iso                # 制作ISO

    id li                           # 查看用户id
    sockstat                        # 查看端口所对应的程序

============================================================================================================

  一、IP及路由配置.

    vi /etc/rc.conf

    ifconfig_le0="DHCP"
    ifconfig_le0="inet 192.168.11.21 netmask 255.255.255.0"
    ifconfig_le1="inet 192.168.18.21 netmask 255.255.255.0"
    defaultrouter="192.168.18.2"

    ifconfig le0 192.168.11.21
    ifconfig le0 down
    ifconfig le0 up

    vi /etc/resolv.conf

    nameserver 192.168.18.2

  二、SSH的打開.

    vi /etc/ssh/sshd_config
    /etc/rc.d/sshd restart

  三、FTP的配置.

    /etc/ftpusers
    /etc/inetd.conf
    /etc/ftpchroot

    /usr/libexec/ftpd -4DU
    /etc/rc.d/sshd reload
    /etc/rc.d/inetd restart

    1、禁止登录用户列表.  vi /etc/ftpusers
    2、不知道是啥意思.   vi /etc/inetd.conf 去掉第一行ftp前面的#号

    3、指定用户登录后的目录(如果不指定则用户可到处乱走).

      vi /etc/ftpchroot
      root /

    4、查看允许登录SSH的用户(FTP用户不允许登录,如只允许root用户登录,则在最后添加一行:AllowUsers root)

      vi /etc/ssh/sshd_config

      AllowUsers fang
      AllowUsers li

      AllowUsers root           // root   可从任何地方登录
      AllowUsers [email]admin@192.168.1.180[/email]   // admin  可从192.168.1.180登录

    5、添加FTP用户.

      adduser
      username  : fang
      Full name  : fang
      用户组   : ftp

    6、开机启动ftp

      vi /etc/rc.conf      加入 inetd_enable="YES"

    N、使变更有效:重启ftp和sshd

      /usr/libexec/ftpd -4DU
      /etc/rc.d/sshd reload
      /etc/rc.d/inetd restart

二、安装Postgresql.

引用
cd /work/soft/postgresql-8.4.2
./configure --prefix=/work/webServer/postgresql8.4.2 --without-readline --without-zlib
make
make install

  adduser postgres
passwd postgres
mkdir -p /work/webServer/postgresql8.4.2/data
chown -R postgres /work/webServer/postgresql8.4.2

# 初始化数据库

  su postgres
/work/webServer/postgresql8.4.2/bin/initdb -D /work/webServer/postgresql8.4.2/data

# 有必要的情况下可以修改

  vi /work/webServer/postgresql8.4.2/data/postgresql.conf
listen_addresses = 'localhost' -> listen_addresses = '*'

# 有必要的情况下可以修改

  vi /work/webServer/postgresql8.4.2/data/pg_hba.conf
host  all     all     127.0.0.1/32     trust
host  all     all     192.168.1.0/24    password

# 启动数据库服务

  su postgres
initdb -D /usr/local/pgsql/data
/work/webServer/postgresql8.4.2/bin/pg_ctl start -D /work/webServer/postgresql8.4.2/data

# 创建root用户,方便执行命令

  /work/webServer/postgresql8.4.2/bin/psql -U postgres postgres
postgres=# create role root with superuser createdb createrole login;  # 创建root用户
postgres=# alter user root with password '111111';           # 修改root用户密码
postgres=# ALTER USER postgres WITH PASSWORD '111111';         # 修改postgres用户密码

# 创建常用命令快捷方式

  ln -s /work/webServer/postgresql8.4.2/bin/psql /usr/sbin/psql
ln -s /work/webServer/postgresql8.4.2/bin/createdb /usr/sbin/createdb
ln -s /work/webServer/postgresql8.4.2/bin/createuser /usr/sbin/createuser
ln -s /work/webServer/postgresql8.4.2/bin/pg_dump /usr/sbin/pg_dump
ln -s /work/webServer/postgresql8.4.2/bin/pg_ctl /usr/sbin/pg_ctl

# 创建表空间

  mkdir -p /work/webServer/postgresql8.4.2/data/test/indexspace
mkdir -p /work/webServer/postgresql8.4.2/data/test/tablespace
chown -R postgres /work/webServer/postgresql8.4.2/data/data
/work/webServer/postgresql8.4.2/bin/psql -U postgres postgres
postgres=#CREATE TABLESPACE test_is OWNER test LOCATION '/home/db/test/indexspace';
postgres=#CREATE TABLESPACE test_ts OWNER test LOCATION '/home/db/test/tablespace';

三、安装MySql.


引用
====================================================== Ports安装 ======================================================

# 安装

cd /usr/ports/databases/mysql50-server/
make install clean

# 配置

  # 第一句好像才是正确的
  cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf
  cp /usr/local/share/mysql/my-small.cnf /usr/local/etc/my.cnf  // 不确认这句是否有效,之前是写放到这里的,后来使用了上面那一句

  # 说明:服务器与apache在一起,在/usr/local/share/mysql下面有5个my-xxxx.cnf文件:
  my-small.cnf        最小配置安装,内存<=64M,数据数量最少
  my-large.cnf        内存=512M
  my-medium.cnf       32M<内存<64M,或者内存有128M,但是数据库与web服务器公用内存
  my-huge.cnf        1G<内存<2G,服务器主要运行mysql
  my-innodb-heavy-4G.cnf  最大配置安装,内存至少4G

# 初始化

  /usr/local/bin/mysql_install_db
  chown -R mysql:mysql /var/db/mysql
  /usr/local/bin/mysqld_safe -u mysql &

# 将mysql端口绑定到127.0.0.1主要因为该服务器只为本站提供服务,为了增加安全性,所以这样做。

  vi /usr/local/etc/my.cnf 
  [mysqld]
  bind_address=127.0.0.1

# 启动MySQL

  /usr/local/etc/rc.d/mysql-server start

# 修改密码

  /usr/local/bin/mysql        // 默认没有密码,这一句就完全的OK了
  /usr/local/bin/mysql -u root -p

  grant all privileges on *.* to 'lizs'@'localhost' identified by "111111" with grant option;

  grant all privileges on *.* to 'root'@'localhost' identified by "111111" with grant option;

  FLUSH PRIVILEGES;
  exit;

# 开机启动

  mysql_enable="YES"

====================================================== 二进制安装 ======================================================

/usr/local/mysql/support-files/mysql.server start  // 能启动
/usr/local/mysql/bin/mysqld_safe --user=mysql &   // 一起无法启动,郁闷中

1、創建用戶: adduser -> mysql

2、鏈接.

  mkdir -p /work/webService/mysql-5.1.37-freebsd7.0-i386
  ln -s /work/webService/mysql-5.1.37-freebsd7.0-i386 /usr/local/mysql

3、進入目錄設置.

  cd /usr/local/mysql

  chmod -R 0777 /usr/local/mysql
  chmod -R 0777 /work/webService/mysql-5.1.37-freebsd7.0-i386

  chown -R mysql .
  chgrp -R mysql .
  // 下面这一步要执行一两次才成功,奇怪
  ./scripts/mysql_install_db --user=mysql

  chown -R root .
  chown -R mysql data

  // 没有这个会报提示
  chown mysql:mysql /usr/local/mysql/my.cnf
  chmod 644 /usr/local/mysql/my.cnf

  ./support-files/mysql.server start
  ./bin/mysqld_safe --user=mysql &

4、配置my.cnf,有必要的話.

  cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf

5、配置登錄帳號密碼.

  /usr/local/mysql/bin/mysql

  grant all privileges on *.* to root@'%' identified by "111111" with grant option;
  FLUSH PRIVILEGES;
  exit;

6、开机启动.

  /usr/local/mysql/support-files/mysql.server start

四、安装Apache.PHP.Memcached.

引用

====================================================== Ports安裝相關軟體 ======================================================

// 只適合於順序安裝

cd /usr/ports/www/apache22 // 如果需要SVN服務,則(這樣SVN才可以使用DBA): make WITH_BERKELEYDB=db4 install clean
cd /usr/ports/lang/php5           // 記得選擇Apache模塊,不然又要重新安裝嘿嘿
cd /usr/ports/lang/php5-extensions/

cd /usr/ports/databases/memcached/
cd /usr/ports/databases/pecl-memcache/
cd /usr/ports/devel/ZendOptimizer/ // 暫不安裝,這玩意能用上的可能性並不是很大

====================================================== 配置 Apache ======================================================

1、安裝配置.

vi /usr/local/etc/apache22/httpd.conf

ServerName 127.0.0.1:80
AddType application/x-httpd-php .php
LoadModule php5_module libexec/apache/libphp5.so                    // 如果這一行不存在也給加上
DirectoryIndex index.htm index.html index.php default.htm default.html default.php

2、开机启动.

apache22_enable="YES"

3、vi /boot/loader.conf

accf_data_load="YES"
accf_http_load="YES"

====================================================== 配置 PHP ======================================================

cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

根據情況判斷是否需要配置php.ini

# GD庫安裝

cd /usr/ports/graphics/php5-gd/

# GD庫加載

vi /usr/local/etc/php/extensions.ini

extension=gd.so

/usr/local/etc/rc.d/apache22 restart

====================================================== 配置 memcached ======================================================

创建用户:memcached

adduser

ln -s /usr/local/lib/libevent-1.4.so.3 /usr/lib


/usr/local/bin/memcached -u memcached -f 1.25 -p 12345 -m 1m -v

/usr/local/bin/memcached -u memcached -f 1.25 -p 12346 -m 2m -v


/usr/local/bin/memcached -u memcached -f 1.25 -p 12347 -m 3m -v


/usr/local/bin/memcached -u memcached -f 1.25 -p 12348 -m 4m -v


/usr/local/bin/memcached -u memcached -f 1.25 -p 12349 -m 5m -v



/usr/local/bin/memcached -u memcached -f 1.25 -p 12345 -m 1m -d


/usr/local/bin/memcached -u memcached -f 1.25 -p 12346 -m 2m -d


/usr/local/bin/memcached -u memcached -f 1.25 -p 12347 -m 3m -d


/usr/local/bin/memcached -u memcached -f 1.25 -p 12348 -m 4m -d

/usr/local/bin/memcached -u memcached -f 1.25 -p 12349 -m 5m -d

/usr/local/sbin/httpd -k start
/usr/local/sbin/httpd -k restart

五、安装WebMail.

引用:这个是从网上复制下来,并没有测试成功,先临时存放一下.

这个是

[url]http://www.young21.cn/?p=32[/url]

cd /usr/ports/mail/postfix && make install celan // PCRE、SASL2、TLS、MYSQL、VDA、TEST
cd /usr/ports/mail/openwebmail && make install clean // QUOTA(邮箱配额功能)
cd /usr/ports/mail/vm-pop3d && make install clean

vi /etc/rc.conf

sendmail_enable=”YES”
sendmail_flags=”-bd”
sendmail_pidfile=”/var/spool/postfix/pid/master.pid”
sendmail_outbound_enable=”NO”
sendmail_submit_enable=”NO”

vi /usr/local/etc/postfix/main.cf

myhostname = mail.young21.cn
mydomain = mail.young21.cn
virtual_alias_maps=hash:/usr/local/etc/postfix/virtual
alias_maps=hash:/usr/local/etc/postfix/aliases
default_privs=nobody
allow_mail_to_commands = alias,forward,include
allow_mail_to_files = alias,forward,include

# 添加虚拟域,生成aliases.db
vi /usr/local/etc/postfix/virtual

mail.young21.cn anything
[email]admin@mail.young21.cn[/email] admin.mail.young21.cn

cd /usr/local/etc/postfix/
postmap virtual
vi /usr/local/etc/postfix/aliases

admin.mail.young21.cn:/var/spool/virtual/mail.young21.cn/admin

cd /usr/local/etc/postfix
postalias aliases

# 配置vm-pop3d并加入启动自动执行
cd /usr/local/etc/rc.d
mv vm-pop3d.sh.sample vm-pop3d.sh

# 配置openwebmail
vi /usr/local/www/cgi-bin/openwebmail/etc/sites.conf/mail.young21.cn

auth_module auth_vdomain.pl
auth_withdomain yes
mailspooldir /var/spool/virtual/mail.young21.cn
use_syshomedir no
use_homedirspools no
enable_autoreply no
enable_setforward no
enable_vdomain yes
# 域管理员
vdomain_admlist admin
vdomain_maxuser 100
vdomain_vmpop3_pwdpath /usr/local/etc/virtual
vdomain_vmpop3_pwdname passwd
vdomain_vmpop3_mailpath /var/spool/virtual
vdomain_postfix_aliases /usr/local/etc/postfix/aliases
vdomain_postfix_virtual /usr/local/etc/postfix/virtual
vdomain_postfix_postalias /usr/local/sbin/postalias
vdomain_postfix_postmap /usr/local/sbin/postmap
quota_module quota_du.pl
# 邮箱大小,100M
quota_limit 102400
quota_threshold 85
delmail_ifquotahit no
delfile_ifquotahit no

mkdir -p /var/spool/virtual/mail.young21.cn
chown nobody /var/spool/virtual/mail.young21.cn
chgrp mail /var/spool/virtual/mail.young21.cn
mkdir -p /usr/local/etc/virtual/mail.young21.cn
touch /usr/local/etc/virtual/mail.young21.cn/passwd
chmod 644 /usr/local/etc/virtual/mail.young21.cn/passwd
htpasswd /usr/local/etc/virtual/mail.young21.cn/passwd admin
chmod 755 /usr/local/www/cgi-bin/openwebmail/etc/users
sync


============================================================================================================

[url]http://bbs.chinaunix.net/thread-1631260-1-1.html[/url]

cd /usr/ports/mail/postfix && make install celan // PCRE、SASL2、TLS、MYSQL、VDA、TEST
cd /usr/ports/security/openssl/ && make install clean // 默认安装
cd /usr/ports/mail/maildrop/ && make WITH_AUTHLIB=yes install clean

pw group add vmail -g 1000
pw user add vmail -u 1000 -g 1000 -s /sbin/nologin -d /dev/null

mkdir -p /home/domains/extmail.org/test/Maildir/new
mkdir -p /home/domains/extmail.org/test/Maildir/cur
mkdir -p /home/domains/extmail.org/test/Maildir/tmp
chown -R vmail:vmail /home/domains/
chmod -R 700 /home/domains/



1、配置Postfix.

vi /etc/rc.conf // 开机启动

postfix_enable="YES"

vi /etc/aliases // 确保有如下一行:

postfix: root

替换掉系统带的sendmail程序:

mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
cp /usr/local/sbin/sendmail /usr/sbin/sendmail

vi /etc/periodic.conf,加入如下内容,禁掉sendmail的自动维护。

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

执行如下命令

/usr/local/sbin/postalias /etc/aliases
/usr/local/sbin/postconf -e 'mydomain = extmail.org'
/usr/local/sbin/postconf -e 'myhostname = mail.extmail.org'
/usr/local/sbin/postconf -e 'myorigin = $mydomain'
/usr/local/sbin/postconf -e 'virtual_mailbox_base = /home/domains'
/usr/local/sbin/postconf -e 'virtual_uid_maps=static:1000'
/usr/local/sbin/postconf -e 'virtual_gid_maps=static:1000'
chown postfix:postfix /etc/opiekeys

执行如下命令对查询表进行配置

cp /usr/local/www/extman/docs/mysql_virtual_* /usr/local/etc/postfix/
/usr/local/sbin/postconf -e 'virtual_alias_maps = $alias_maps, mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf'
/usr/local/sbin/postconf -e 'virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf'
/usr/local/sbin/postconf -e 'virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf'

SMTP认证设置:

vi /usr/local/lib/sasl2/smtpd.conf

pwcheck_method:authdaemond
log_level:3
mech_list:PLAIN LOGIN
authdaemond_path:/var/run/authdaemond/socket

对postfix做如下配置使支持smtp认证:

/usr/local/sbin/postconf -e 'smtpd_sasl_auth_enable=yes'
/usr/local/sbin/postconf -e 'broken_sasl_auth_clients = yes'
/usr/local/sbin/postconf -e 'smtpd_sasl_local_domain = $myhostname'

postfix反垃圾设置:此处的反垃圾邮件只是在MTA级的一些预防垃圾邮件的设置,可根据实际情况以及自己的需要进行调整。

/usr/local/sbin/postconf -e 'smtpd_helo_required=yes'
/usr/local/sbin/postconf -e 'smtpd_delay_reject=yes'
/usr/local/sbin/postconf -e 'disable_vrfy_command=yes'
/usr/local/sbin/postconf -e 'smtpd_client_restrictions = check_client_access hash:/usr/local/etc/postfix/client_access'
/usr/local/sbin/postconf -e 'smtpd_helo_restrictions=reject_invalid_hostname,check_helo_access hash:/usr/local/etc/postfix/helo_access'
/usr/local/sbin/postconf -e 'smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain, check_sender_access hash:/usr/local/etc/postfix/sender_access'
/usr/local/sbin/postconf -e 'smtpd_recipient_restrictions=permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_recipient, reject_unknown_recipient_domain'
/usr/local/sbin/postconf -e 'smtpd_data_restrictions=reject_unauth_pipelining'
/usr/local/sbin/postconf -e 'header_checks = regexp:/usr/local/etc/postfix/head_checks'
/usr/local/sbin/postconf -e 'body_checks = regexp:/usr/local/etc/postfix/body_checks'
touch /usr/local/etc/postfix/head_checks
touch /usr/local/etc/postfix/body_checks
touch /usr/local/etc/postfix/client_access
touch /usr/local/etc/postfix/sender_access
touch /usr/local/etc/postfix/helo_access
/usr/local/sbin/postmap /usr/local/etc/postfix/head_checks
/usr/local/sbin/postmap /usr/local/etc/postfix/body_checks
/usr/local/sbin/postmap /usr/local/etc/postfix/client_access
/usr/local/sbin/postmap /usr/local/etc/postfix/sender_access
/usr/local/sbin/postmap /usr/local/etc/postfix/helo_access

TLS设置:生成证书,在这里默认私钥的访问密码为123qwe98,请根据自己的情况决定,以后可能会用得到。

mkdir -p /usr/local/etc/postfix/certs/CA
cd /usr/local/etc/postfix/certs/CA
mkdir certs crl newcerts private
echo "01" > serial
touch index.txt

cp /usr/local/openssl/openssl.cnf .
cp /usr/local/openssl/openssl.cnf /usr/local/etc/postfix/certs/CA/

# 这个地方要注意上面这句后面有个点,也可以执行cp /usr/local/openssl/openssl.cnf /usr/local/etc/postfix/certs/CA/
# 编辑openssl.cnf 其中 dir = /usr/local/etc/postfix/certs/CA 这个地方一定要看,很多朋友证书不能生成就是因为这个地方
# 编辑openssl.cnf,确认dir参数的值是/usr/local/etc/postfix/certs/CA。然后继续执行如下命令,并根据情况输入信息。输入信息类似如下:

Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:BJ
Locality Name (eg, city) []:Bei Jing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Extmail
Organizational Unit Name (eg, section) []:extmail
Common Name (eg, YOUR name) []:extmail.org
Email Address []:ppabc@qq.com

# 这里的信息是 POP3s 证书 IMAP 证书 下面输入信息要一致

命令如下:
openssl req -new -x509 -keyout private/cakey.pem -out cacert.pem -days 3650 -config openssl.cnf
openssl req -nodes -new -x509 -keyout mykey.pem -out myreq.pem -days 3650 -config openssl.cnf

openssl x509 -x509toreq -in myreq.pem -signkey mykey.pem -out tmp.pem
openssl ca -config openssl.cnf -policy policy_anything -out mycert.pem -infiles tmp.pem
rm tmp.pem
cp cacert.pem /usr/local/etc/postfix/certs/
cp mycert.pem /usr/local/etc/postfix/certs/
cp mykey.pem /usr/local/etc/postfix/certs/
cd /usr/local/etc/postfix/certs/
chown root:wheel cacert.pem mycert.pem
chown root:postfix mykey.pem
chmod 755 cacert.pem
chmod 644 mycert.pem
chmod 440 mykey.pem
ln -s cacert.pem `openssl x509 -noout -hash < cacert.pem `.0

# 配置postfix支持TLS

/usr/local/sbin/postconf -e 'smtpd_use_tls=yes'
/usr/local/sbin/postconf -e 'smtpd_tls_auth_only=no'
/usr/local/sbin/postconf -e 'smtp_tls_CAfile = /usr/local/etc/postfix/certs/cacert.pem'
/usr/local/sbin/postconf -e 'smtp_tls_cert_file = /usr/local/etc/postfix/certs/mycert.pem'
/usr/local/sbin/postconf -e 'smtp_tls_key_file = /usr/local/etc/postfix/certs/mykey.pem'
/usr/local/sbin/postconf -e 'smtpd_tls_CAfile=/usr/local/etc/postfix/certs/cacert.pem'
/usr/local/sbin/postconf -e 'smtpd_tls_cert_file=/usr/local/etc/postfix/certs/mycert.pem'
/usr/local/sbin/postconf -e 'smtpd_tls_key_file=/usr/local/etc/postfix/certs/mykey.pem'
/usr/local/sbin/postconf -e 'smtpd_tls_received_header=yes'
/usr/local/sbin/postconf -e 'smtpd_tls_loglevel=3'
/usr/local/sbin/postconf -e 'smtpd_starttls_timeout=60s'


# 配置master.cf,添加如下信息
vi /usr/local/etc/postfix/master.cf

smtps   inet n    -    n    -    -    smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject


2、Maildrop的安装和配置-MDA.

MDA-邮件分发代理。他从MTA那儿拿到信,然后存入您的邮箱里面。MDA在投递邮件到您的目录里面时,会先对邮件进行一些过滤,过滤规则会根据您的配置文件来进行。1,进行全局过滤设置,读取/etc/maildroprc(Linux)或者/usr/local/etc /maildroprc(BSD),根据配置该配置文件执行相应的操作,影响到所有用户;2,根据每个用户的配置进行过滤,读取$HOME /.mailfilter,根据每个用户的设置进行相应的操作,仅影响单个用户。基于这样的特点,WEBMAIL通过编辑$HOME /.mailfilter可以实现一些特色化的东西,比如:黑白名单、SPAM自动转入垃圾邮件夹、SMS提醒等等。


# 修改master.cf的maildrop,类似修改为:
vi /usr/local/etc/postfix/master.cf

#maildrop unix -    n    n    -    -    pipe
# flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
maildrop unix -    n    n    -    -    pipe
flags=DRhu user=vmail:vmail argv=/usr/local/bin/maildrop -w 90 -d ${recipient}

# 修改main.cf
vi /usr/local/etc/postfix/main.cf

/usr/local/sbin/postconf -e 'virtual_transport=maildrop:'
/usr/local/sbin/postconf -e 'maildrop_destination_concurrency_limit=1'
/usr/local/sbin/postconf -e 'maildrop_destination_recipient_limit=1'

# 确保是如下内容:
vi /usr/local/etc/maildroprc

logfile "/home/domains/maildrop.log"
#logfile "/var/log/maildrop.log"
TEST="/bin/test -f"
#
# Check for custom user .mailfilter file
#
CUSTOM_FILTER="$HOME/.mailfilter"
`$TEST $CUSTOM_FILTER && exit 1 || exit 0`
if ( $RETURNCODE == 0 )
{
to "$HOME/Maildir"
}

六、安装SVN.

引用
  cd /usr/ports/devel/subversion # 记得选apache模块,不然就不能使用apache来配合了
  make install clean

  # 所有用戶的密碼都是:111111

  mkdir -p /work/svnData
  chown -R www:www /work/svnData
  chmod -R 0777 /work/svnData

  # 初始化

  mkdir -p create /work/svnData/CCode
  mkdir -p /work/svnData/PhpCode

  svnadmin create /work/svnData/CCode
  svnadmin create /work/svnData/PhpCode

  chown -R www:www /work/svnData/
  chmod -R 0777 /work/svnData

  # 創建刪除帳號

  htpasswd -cm /work/svnData/SvnUserList test   # 第一次建立SVN帐号
  htpasswd -m /work/svnData/SvnUserList root   # 第二个以后的帐号都不要 -c
  htpasswd -m /work/svnData/SvnUserList admin  # 第二个以后的帐号都不要 -c
  htpasswd -D /work/svnData/SvnUserList test   # 删除用户

  # 建立 SVN 权限控制文件
  # vi /work/svnData/SvnUserAccess

  [/]
  # 一般情況下呢所有人都是可以訪問的的,不過不裏測試,誰也不可以訪問
  # * = r
  [/CCode]
  root = rw
  [/PhpCode]
  admin = rw

  # 配置apache

  vi /usr/local/etc/apache22/httpd.conf


  # 以下這三項一般情況下應該在安裝SVN的時候就會自動加上了的,如果找不到這三項說明安裝時出了點小意外了
  #LoadModule dav_module modules/mod_dav.so
  #LoadModule dav_svn_module modules/mod_dav_svn.so
  #LoadModule authz_svn_module modules/mod_authz_svn.so

  #<Location /test1> # "/repos"是在url上指定的访问路径,客户访问需要键入这个路径。
  # DAV svn # 声明svn
  # SVNPath create /work/svnData/CCode # "E:\svn"是服务器上svn的repository的目录。
  # SVNListParentPath On
  # # SVNParentPath /work/svnData # 对于一个目录下存在多个工程的情况,可以声明这个变量。
  # AuthType Basic
  # AuthName "test1" # 认证的名字
  # AuthUserFile /work/webService/SVNUserList1 # D:\svn_auth_file里面存放的是使用htpasswd -m D:\svn_auth_file user
  # 生成的用户名与密码的加密文件。注意,此处的路径不能有空格。
  # #AuthzSVNAccessFile /work/webService/SvnUserAccess # D:\svn_authz文件是根据%respository%/conf/authz的规则编写,其实就
  # 是svn对用户权限读取的文件格式,mod_authz_svn.so要求的格式。
  # SVNIndexXSLT "d:\svnindex.xsl" # d:\svnindex.xsl是用户可以自定义的显示模版,设计好模板,html上的显
  # 会更漂亮。
  # <LimitExcept GET PROPFIND OPTIONS REPORT>
  # Require valid-user # 声明,必须是有效的用户才可以访问
  # </LimitExcept>
  #</Location>

  <Location /svn>
  DAV svn
    # SVNPath create /work/svnData/CCode
    SVNListParentPath On
    SVNParentPath /work/svnData
    AuthType Basic
    AuthName "svn"
    AuthUserFile /work/svnData/SvnUserList
    #AuthzSVNAccessFile /work/svnData/SvnUserAccess
    <LimitExcept GET PROPFIND OPTIONS REPORT>
      Require valid-user
    </LimitExcept>
  </Location>

  /usr/local/sbin/httpd -k start
  /usr/local/sbin/httpd -k restart

  /usr/local/etc/rc.d/apache22 restart

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.