??xml version="1.0" encoding="utf-8" standalone="yes"?>一区二区网站,超碰免费公开在线,亚洲成人av高清http://www.aygfsteel.com/xiaosao/category/15985.html不懂我的?, M了我 , 该了解了解我 !而懂我的?, 更离不了?, 因ؓ(f)他们爱我 ?/description>zh-cnFri, 02 Mar 2007 03:32:35 GMTFri, 02 Mar 2007 03:32:35 GMT60如何?Linux 拨号上网http://www.aygfsteel.com/xiaosao/articles/92148.htmlcAng^ErcAng^ErSat, 06 Jan 2007 01:09:00 GMThttp://www.aygfsteel.com/xiaosao/articles/92148.htmlhttp://www.aygfsteel.com/xiaosao/comments/92148.htmlhttp://www.aygfsteel.com/xiaosao/articles/92148.html#Feedback0http://www.aygfsteel.com/xiaosao/comments/commentRss/92148.htmlhttp://www.aygfsteel.com/xiaosao/services/trackbacks/92148.html http://fanqiang.chinaunix.net/a1/b1/20010822/0800001162.html
如何?Linux 拨号上网
本文: 作? 陈汉?(2001-08-22 08:00:00)
一、Linux 上的 PPP
Linux 中已l包括了点对点协议PPPQ其M是 pppd Q如果你已经使用q Windows95 或 NT 的拨L(fng)l,
那么你已l具备了 PPP 的基本经验了。在 Windows95 的 PPP 在同 ISP q接后,视 ISP 情况不同Q会(x)?
动ؓ(f) Windows 客户机提供 IP 地址和 DNS 服务器地址Q而 Linux 的 PPP 不会(x)自动接收 DNS 地址Q这是?
Linux 与 Windows 的一点区别,所以,Linux 上的 PPP 在协议连接成功后Q要多一步 DNS 的配|。?

二、Kernel 的准?
你的 Linux pȝ必须在 kernel 中配|支持 PPP 功能。如果你的 kernel 目前不支持 PPPQ你需要重新生
成一个支持 PPP 的 kernel。重新编译 kernel 的方法可看相ꐠHowto。?

三、用辅助脚本配置 PPP 拨号|络
我一开始想q行 pppd 来连接拨L(fng)l,但很快发现这是太ȝ了,因ؓ(f)选项太多。后来我发现Q其实在 
Linux 上已l提供了几个 PPP 拨号E序模版Q只要对q些模板略作修改Q就可轻松联上 PPP 了。根据我
的经验,如果利的话Q?0分钟p完成配置。?

Q?Q拨L(fng)序所在的目录 

对于 RedHat 5.0Q这几个拨号E序QScriptQ在 /usr/doc/ppp-2.2.0f/scripts 下,如果要用这些脚本,
需要把它们拯到正的目录中,具体如下Q?
ppp-onQ PPP q接脚本 拯刊W?usr/sbin 
ppp-offQ PPP 断开脚本 拯刊W?usr/sbin 
ppp-on-dialerQ PPP d?x)话脚本 拯刊W?etc/ppp 
ppp-redialerQ 可轮@多个?sh)话L(fng)的登陆脚本 拷贝到 /usr/sbin Q本文不用) 
对于 Slackware 的用Pq些脚本已经安装到正的目录了,无需做什么?
假定你在你的pȝ上找不到上述文gQ可直接在本文后面的附录中cut。?

Q?Q创q拨号E序 

假定现在我们要用 PPP q接 163 |,我们可以利用上q脚本来作很单的配置。虽然我们可以直接在q?
些模板上做修改,我还是徏议ؓ(f)自己拯一份模板,在新的拷贝上作修Ҏ(gu)较好。所以,我们先做如下拯Q?

cd /usr/sbin
cp ppp-on ppp.163
chmod +x ppp.163
cd /etc/ppp
cp ppp-on-dialer dialer.163
chmod +x dialer.163

此外Q要保证 ppp-off 也是可执行的 

Q?Q定制自q拨号E序 

首先~辑你的 ppp.163Q其中多数内定w不必改动Q只要修改以下几处:(x) 

TELEPHONE=163
ACCOUNT=
PASSWORD=
DIALER_SCRIPT=/etc/ppp/dialer.163

另外Q在最后的 exec 启动 pppd 一行里Q注意提供你的 Modem 所在的串口讑֤文gQ通常?
 COM1 /dev/cua0 或?dev/ttyS0QCOM2 /dev/cua1 或?dev/ttyS1Q,q设|串口的通信速度Q缺省是 38400Q?
 对于现在的高速 ModemQ这个速度太低了,可设|成 57600以上Q。完成后的 ppp.163 内容是:(x) 

#!/bin/sh
#
# Script to initiate a ppp connection. This is the first part of the
# pair of scripts. This is not a secure pair of scripts as the codes
# are visible with the 'ps' command. However, it is simple.
#
# These are the parameters. Change as needed.
TELEPHONE=163 # 拨号L(fng)
ACCOUNT=YourUserName # 用户名?
PASSWORD=YourPassword # 口oQ注意限制其他hd本文Ӟ
LOCAL_IP=0.0.0.0 # 本地IP地址Q?.0.0.0 表示动态分?
REMOTE_IP=0.0.0.0 # 原端IP地址Q一般是 0.0.0.0
NETMASK=255.255.255.0 # 子网掩码
export TELEPHONE ACCOUNT PASSWORD

# This is the location of the script which dials the phone and logs
# in. Please use the absolute file name as the $PATH variable is not
# used on the connect option. (To do so on a 'root' account would be
# a security hole so don't ask.)
#
DIALER_SCRIPT=/etc/ppp/dialer.163 # 拨号d脚本文g?
#
# Initiate the connection

# I put most of the common options on this command. Please, don't
# forget the 'lock' option or some programs such as mgetty will not
# work. The asyncmap and escape will permit the PPP link to work with
# a telnet or rlogin connection. You are welcome to make any changes
# as desired. Don't use the 'defaultroute' option if you currently
# have a default route to an ethernet gateway.
#
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttycua0 57600 \
asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT

然后Q检查一下你的登录会(x)话程序?etc/ppp/dialer.163Q在我所在的 163 ISPQ这个从模板拯q来?
?x)话E序可直接用,如果有以下情况,你需要对q个?x)话E序略作改动Q?

Q?Q如果拨hC入用户名的提C符不是 login: 
Q?Q如果登录成功后q要用户再交互打入命令 ,才启动 ppp 协议
本文后面的附录三是一个根据上q要求略加修改后的登录脚本。?
Q假如你有多个 ISP 可连接,创建多个拨号 PPP q接脚本和相应的 PPP d脚本。?

四、启动 PPP 和断开 PPP
启动你的 PPP q接唯一要做的就是开启 ModemQ运行刚才写好的 ppp.163。你的 ppp.163 脚本自动拨
受送出d信息、完成协议认证,{你看到你的 Modem 上的数据传输指示灯不再闪动ƈ保持q接状态,
PPP q接完成了Q你可以打命令:(x) 

netstat -r 

查看当前的\pQ如果 PPP 协议q接成功的话Q\p里就?x)有q接你的 ISP 的缺省\由。你的 PPP
 已经配置成功了。?

如果没有成功Q注意看一下?etc/ppp 下的 PPP 出错记录文g。?

要断开 PPP q接Q运行 ppp-off。?

五、DNS 的配|?
PPP q接成功后,如果要用 WWW 览器、Ftp、Telnet {服务,必须正确配置 DNS 域名解析。所以,
一旦 PPP q接完毕Q应该在 /etc/resolv.conf 中加入一行:(x) 

nameserver  

注意 nameserver 后面的是你的 ISP 的 DNS 服务器的 IP 地址Qƈ且这一行说明必L在其他的 
nameserver 说明之前Q否则,你的 Linux pȝ不会(x)讉K你的 ISP 的 DNS 服务器。然后,你就能用各
 Internet 服务了。?

六、自动配| DNS 解析
本节内容q不是配| PPP 必需的,但能对 PPP 的用提供一些方ѝ?

׃你的 Linux q不Lq在 Internet 上,所以在不连接 PPP Ӟ需要的 resolv.conf 是不同的?
所以,我们希望有一U办法能Ҏ(gu)不同的情况,在 Linux pȝ上自动设|合适的 resolv.conf 。?

在?etc/ppp 下,有两个根据 PPP q接状态自动运行的脚本Qip-up 和 ip-downQ分别在 PPP 建立q接
和断开q接时运行,如果用户希望在 PPP q接或断开时执行某些命令,可以在?etc/ppp 目录下徏立脚
本文件 ip-up.local 和 ip-up.localQ在q两个文件中攑օ要执行的命o。当 PPP 建立q接后,ip-up 
?x)调用 ip-up.localQ执行用户命令;当 PPP 断开q接后,ip-down ?x)调用 ip-down.local Q执行用?
命o。?

所以我们可以利用这个机制实玊WDNS 解析的自动配|,Ҏ(gu)如下Q?

Q?Q在 /etc 下编辑分别适用于 PPP q接状态和正常本地状态的 DNS 解析配置文gQ我们假定这两个
文g是 resolv.ppp 和 resolv.normal。?

Q?Q在 /etc/ppp 下徏立 ip-up.localQ设|其执行权限Qƈ在文件中加入Q?

cp /etc/resolv.ppp /etc/resolv.conf 

Q?Q在 /etc/ppp 下徏立 ip-down.localQ设|其执行权限Qƈ在文件中加入Q?

cp /etc/resolv.normal /etc/resolv.conf 

q样讄后,每当 PPP q接成功后,/etc/resolv.conf 的内容就是 resolv.pppQ而 PPP 断开后,
/etc/resolv.conf 被恢复成 resolv.normal 的内宏V?

附录一QPPP q接脚本模板 ppp-on

#!/bin/sh
#
# Script to initiate a ppp connection. This is the first part of the
# pair of scripts. This is not a secure pair of scripts as the codes
# are visible with the 'ps' command. However, it is simple.
#
# These are the parameters. Change as needed.
TELEPHONE=555-1212 # The telephone number for the connection
ACCOUNT=george # The account name for logon
PASSWORD=gracie # The password for this account
LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0
NETMASK=255.255.255.0 # The proper netmask if needed
#
# Export them so that they will be available at 'ppp-on-dialer' time.
export TELEPHONE ACCOUNT PASSWORD

# This is the location of the script which dials the phone and logs
# in. Please use the absolute file name as the $PATH variable is not
# used on the connect option. (To do so on a 'root' account would be
# a security hole so don't ask.)
#
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#
# Initiate the connection

# I put most of the common options on this command. Please, don't
# forget the 'lock' option or some programs such as mgetty will not
# work. The asyncmap and escape will permit the PPP link to work with
# a telnet or rlogin connection. You are welcome to make any changes
# as desired. Don't use the 'defaultroute' option if you currently
# have a default route to an ethernet gateway.
#
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 \
asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT

附录二:(x)PPP d脚本模板 ppp-on-dialer

#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 30 \
OK ATDT$TELEPHONE \
CONNECT '' \
ogin:--ogin: $ACCOUNT \
assword: $PASSWORD

附录三:(x)一个稍作修改的 PPP d脚本
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec chat -v \
TIMEOUT 3 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' \rAT \
'OK-+++\c-OK' ATH0 \
TIMEOUT 30 \
OK ATDT$TELEPHONE \
CONNECT '' \
sername:--sername: $ACCOUNT \
assword: $PASSWORD \
nnex: ppp

说明Q(1Q用L(fng)录提C符从由 login: 改ؓ(f) username: 

Q?Q用L(fng)录后Q访问服务器出现提示W annex: Q需要手工输入 ppp 命o 

附录四:(x)可轮询拨L(fng) PPP q接脚本模板 ppp-redialer

#!/bin/sh
###################################################################
#
# These parameters control the attack dialing sequence.
#
# Maximum number of attempts to reach the telephone number(s)
MAX_ATTEMPTS=10
# Delay between each of the attempts. This is a parameter to sleep
# so use "15s" for 15 seconds, "1m" for 1 minute, etc.
SLEEP_DELAY=15s
###################################################################
#
# This is a list of telephone numbers. Add new numbers if you wish
# and see the function 'callall' below for the dial process.
PHONE1=555-1212
PHONE2=411
###################################################################
#
# If you use the ppp-on script, then these are passed to this routine
# automatically. There is no need to define them here. If not, then
# you will need to set the values.
#
ACCOUNT=my_account_name
PASSWORD=my_password
###################################################################
#
# Function to initialize the modem and ensure that it is in command
# state. This may not be needed, but it doesn't hurt.
#
function initialize
{
chat -v TIMEOUT 3 '' AT 'OK-+++\c-OK'
return
}
###################################################################
#
# Script to dial a telephone
#
function callnumber
{
chat -v \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
'' ATDT$1 \
CONNECT '' \
ogin:--ogin: $ACCOUNT \
assword: $PASSWORD
#
# If the connection was successful then end the whole script with a
# success.
#
if [ "$?" = "0" ]; then
exit 0
fi
return
}
###################################################################
#
# Script to dial any telephone number
#
function callall
{
# echo "dialing attempt number: $1" >/dev/console
callnumber $PHONE1
# callnumber $PHONE2
}
###################################################################
#
# Initialize the modem to ensure that it is in the command state
#
initialize
if [ ! "$?" = "0" ]; then
exit 1
fi
#
# Dial telephone numbers until one answers
#
attempt=0
while : ; do
attempt=`expr $attempt + 1`
callall $attempt
if [ "$attempt" = "$MAX_ATTEMPTS" ]; then
exit 1
fi 
sleep "$SLEEP_DELAY"
done

附录五:(x)PPP 断开脚本 ppp-off

#!/bin/sh
######################################################################
#
# Determine the device to be terminated.
#
if [ "$1" = "" ]; then
DEVICE=ppp0
else
DEVICE=$1
fi
######################################################################
#
# If the ppp0 pid file is present then the program is running. Stop it.
if [ -r /var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
#
# If the kill did not work then there is no process running for this
# pid. It may also mean that the lock file will be left. You may wish
# to delete the lock file at the same time.
if [ ! "$?" = "0" ]; then
rm -f /var/run/$DEVICE.pid
echo "ERROR: Removed stale pid file"
exit 1
fi
#
# Success. Let pppd clean up its own junk.
echo "PPP link to $DEVICE terminated."
exit 0
fi
#
# The ppp process is not running for ppp0
echo "ERROR: PPP link is not active on $DEVICE"
exit 1


cAng^Er 2007-01-06 09:09 发表评论
]]>
Linux+Apache+Mysql+PHP典型配置http://www.aygfsteel.com/xiaosao/articles/73739.htmlcAng^ErcAng^ErSun, 08 Oct 2006 03:43:00 GMThttp://www.aygfsteel.com/xiaosao/articles/73739.htmlhttp://www.aygfsteel.com/xiaosao/comments/73739.htmlhttp://www.aygfsteel.com/xiaosao/articles/73739.html#Feedback0http://www.aygfsteel.com/xiaosao/comments/commentRss/73739.htmlhttp://www.aygfsteel.com/xiaosao/services/trackbacks/73739.htmlLinux+Apache+Mysql+PHP典型配置<?gt;

调试环境QRedhat9.0 Apache1.3.29 Mysql3.23.58 PHP4.3.4

Linuxpȝ的安装我׃讲了Q这是基本功Q其实这文章在cMRedhat的其他linux也应该通用Q大家只要掌握我提供的方法就行。记得安装Redhat9?的时候不要安装系l默认的apacheQmysql和php以及相关的Y件。已l安装的L(fng)rpm -e * 删除已经安装的包?/p>

1. 安装Mysql3.23.58

? 实老实说直接安装Mysql官方|站提供的rpm包也是一个比较可行的办法Q他的官方网站的rpm包的提供基本跟tar包发行是同步的,q点我比较喜Ƣ, 臛_安装rpm包的在后面的调试中不?x)出现mysql库文件找不到的情c但q里q是有必要讲一下自定义安装的步骤,毕竟|友自定义安装的q说挺多的?/p>

软g获取Q?a >http://www.mysql.com/downloads/index.html

安装步骤Q?/p>

tar zxvf mysql-3.23.58.tar.gz
cd mysql-3.23.58

./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql

make

make install

#prefix=/usr/local/mysql mysql安装的目标目?/p>

#sysconfdir=/etc my.ini配置文g的\?/p>

#localstatedir=/var/lib/mysql 数据库存攄路径

安装完以后要初始化数据库Q当然你是升U的话不用做q步Q?/p>

/usr/local/mysql/bin/mysql_install_db

如果pȝ没有mysqlq个用户的话Q最好做以下q步Q?/p>

useradd -M -o -r -d /var/lib/mysql -s /bin/bash -c "MySQL Server" -u 27 mysql

然后我启动mysql

/usr/local/mysql/bin/safe_mysqld &

okQ先看看mysql能否正常工作

mysql -uroot mysql

一般情况下都是不能正常链接数据库,错误提示一般ؓ(f)Q?/p>

ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

其实|上大家问的最多的都是整个问题Q说什么链接不到mysqld.sockQ其实大家不妨看看mysql的错误日志就明白怎么回事Q我q里的错误日志是?/p>

/var/lib/mysql/*.err 你会(x)发现mysql只所以不能启动,是因?var/lib/mysql的权限不允许mysql服务讉KQ英文mysql默认是调用mysql用户来启动服务的Q好了,既然知道是什么原因找C能启动,那就单了。我们只?/p>

chown -R mysql:mysql /var/lib/mysql pQ如果还是启动不了,再慢慢调试权限,反正一般启动不了都是权限的问题?/p>

如果大家q是不能启动不了的话Q那q我的比较J琐的权限的讄Q反正我每次都是q么做的Q一般不?x)有问题Q见下:(x)

chown -R root /usr/local/mysql
chgrp -R mysql /usr/local/mysql
chown -R root /usr/local/mysql/bin
chgrp -R mysql /usr/local/mysql/bin
chgrp -R mysql /var/lib/mysql
chmod 777 /var/lib/mysql
chown -R root /var/lib/mysql/mysql
chgrp -R mysql /var/lib/mysql/mysql
chmod 777 /var/lib/mysql/mysql
chown -R root /var/lib/mysql/mysql/*
chgrp -R mysql /var/lib/mysql/mysql/*
chmod 777 /var/lib/mysql/mysql/*
chmod 777 /usr/local/mysql/lib/mysql/libmysqlclient.a

 

做完上面的步骤,然后把你~译目录的一个脚本COPYq去

cp support-files/mysql.server /etc/rc.d/init.d/mysqld

chkconfig --add mysqld

用ntsysv讄使mysql每次启动都能自动q行?/p>

好了Q至此mysql安装完毕Q你可以q样起动你的mysql服务

/etc/rc.d/init.d/mysqld start

下面q步比较关键Q?/p>

ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql

大家可以不做q步Q大可以在编译其他Y件的时候自定义myslq的库文g路径Q但我还是喜Ƣ把库文仉接到默认的位|,q样你在~译cMPHPQVpopmail{Y件时可以不用指定mysql的库文g地址?/p>

2. 安装Apache1.3.29。我没有选择安装Apache2.0是我对他q是不放心,因ؓ(f)|上最新公布的apache的漏z基本上是针?.0Q当然大家可以自己选择安装相应的版本。我q里讲的都是采用DSO动态编译的Ҏ(gu)~译Apache.

至于有关apache的编译方法,可以参考我以前的文?a >《apache的静?动态编译在apache+php+mysql的应用?/a>http://www.5ilinux.com/apache01.html

软g获取Q?a >http://httpd.apache.org/

tar zvxf apache_1.3.29.tar.gz
cd apache_1.3.29
修改src/include/httpd.h 增大最大线E数

#define HARD_SERVER_LIMIT 256

Ҏ(gu)

#define HARD_SERVER_LIMIT 2560

保存退出编译apache


./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite --enable-shared=max --htdocsdir=/var/www &&
make &&
make install

# q里我们通过enable-module参数告诉讄脚本Q我们需要启动so和rewrite模块Qso模块是用来提DSO支持的apache核心模块Q? 而rewrite模块则是用意实现地址重写的模块,׃rewrite模块需要DBM支持Q如果在初次安装时没有编译进apacheQ以后需要用到时需? 重新~译整个apache才可以实现。ؓ(f)此除非你可以定以后不会(x)用到rewrite模块Q否则还是徏议你在第一ơ编译的时候把rewrite模块~译 好?/p>

enable-shared=max q个参数的作用时~译apacheӞ把除了so以外的所有apache的标准模块都~译成DSO模块。而不是编译进apache核心内?/p>

 

好了安装apache很简单的哦,启动apache看看

/usr/local/apache/bin/apachectl start

然后用ie看http://你的服务器地址。应该能看到熟?zhn)的apache毛标志?/p>

3. 安装PHP4.3.4

软g获取Q?a >http://www.php.net/downloads.php

tar zvxf php-4.3.4.tar.gz
cd php-4.3.4

./configure \
--prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--enable-force-cgi-redirect \
--with-freetype-dir=/usr \
--with-png-dir=/usr \
--with-gd --enable-gd-native-ttf \
--with-ttf \
--with-gdbm \
--with-gettext \
--with-iconv \
--with-jpeg-dir=/usr \
--with-png \
--with-zlib \
--with-xml \
--enable-calendar \
--with-apxs=/usr/local/apache/bin/apxs

make

make install

 

# 我这里由于服务器需要用到GD库,所以加了一些支持GD的编译参? QGD直接用了redhat自带的GD库,大家没有安装的话可以从安装盘安装Q注意除了安装GD以外Q还要安装libjpegQlibpng{库文g。另 ?-with-mysql=/usr/local/mysql指向你安装mysql的\径?-with-apxs指向apache的apxs文g的\ 径?/p>

vi /usr/local/apache/conf/httpd.conf

查找<IfModule mod_mime.c>

在此范围d

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

 

然CPOPY PHP的配|文?/p>

cp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini

修改php.ini文g
register_globals = On

okQ重新启动一下apache服务?
/usr/local/apache/bin/apachectl restart

然后写个php试info.php:内容如下

<?php
phpinfo();
?>

正常的话Q应该能看到php的信息了Q恭喜你的Apche+Mysql+PHP安装成功?/p>

 

好了写了q么多,希望对大家有所帮助Q!Q?/p>

参看文档Q?/font>

apache的静?动态编译在apache+php+mysql的应?http://www.5ilinux.com/apache01.html

作者:(x)张微?/p>

2003q?2?日于北京




cAng^Er 2006-10-08 11:43 发表评论
]]>
linux 9 ?apache2.2.2+svn 1.3.1安装(?http://www.aygfsteel.com/xiaosao/articles/73735.htmlcAng^ErcAng^ErSun, 08 Oct 2006 03:34:00 GMThttp://www.aygfsteel.com/xiaosao/articles/73735.htmlhttp://www.aygfsteel.com/xiaosao/comments/73735.htmlhttp://www.aygfsteel.com/xiaosao/articles/73735.html#Feedback0http://www.aygfsteel.com/xiaosao/comments/commentRss/73735.htmlhttp://www.aygfsteel.com/xiaosao/services/trackbacks/73735.htmllinux 9 ?apache2.2.2+svn 1.3.1安装(?

本文基本上网l上都能扑ֈ,只是安装的过E中略有不同,有问题?转蝲的基上略有改?我是完全按照下面步骤安装,q取得成功的

apache的安?
httpd是web服务器,用来通过web讉KsubversionQ我下蝲到httpd-2.2.2.tar.bz2?br /> 解压该文?
#bunzip2 httpd-2.2.2.tar.bz2
#tar xvf httpd-2.2.2.tar

//q入解压后的目录
# cd httpd-2.2.2
//配置a(chn)pache安装Q前两个参数是必要加的Q你q可以根据?zhn)的需要添加其他的参数?br /> //后面的参数制定你要把apache安装哪里
# ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/
# make
//安装
# make install
# cd /usr/local/apache2/bin
//启动apache服务
# ./apachectl start
//打开览?a href="http://localhost/" target="_blank">http://localhost/如果有测试页"It works!"出现则证明已l安装成功?br /> //打开览?a href="http://localhost/" target="_blank">http://localhost/如果有测试页"It works!"出现则证明已l安装成功?br /> //如果配置文g/apache2/conf/httpd.conf?下面两行没有注释掉的?需要先注释,然后再启动apache,否则可能报错: "httpd: Syntax error on line 232 of /usr/local/apache2/conf/httpd.conf: API m....."提示不能加蝲svn?so文g
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

//q个时候只要把上面两行注释?p成功q行apache,当然,试apache成功q行?把注释干?q是要加载这?so模块
3. 安装Subversion
//解压SubVersion安装?(root用户q行下面的操?
# tar xvzf Subversion-1.3.1.tar.gz
//q入解压后的目录
# cd Subversion-1.3.1
//配置subversion安装
#./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion
--with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib
--enable-maintainer-mode
# make
//安装
# make install
//创徏库文件所在的目录 (svnroot用户q行下面的操?
# mkdir /home/svnroot/repository
//q入subversion的bin目录
# cd /usr/local/subversion/bin
//创徏仓库"test"
# ./svnadmin create /home/svnroot/repository/test
# cd /home/svnroot/repository/test
//看看是不是多了些文gQ如果是则说明Subversion安装成功?br /> # ls –l
# cd /usr/local/subversion/bin
//q条语句把路径/home/user/import下找到的文g导入C创徏的Subversion 仓库中去Q?br /> //提交后的修订版ؓ(f)1?br /> # ./svn import /home/user/import file:///home/svnroot/repository/test –m "注释"
//不让其他人有该目录的权限
# chmod 700 /home/svnroot/repository

//**注意,直接q么chmod?x)导致svn客户端无法访?需要修改apache配置文g/conf/httpd.conf文g
//q个文g中有q么一D内?
User nobody
Group #-1
//把上q内Ҏ(gu)?
User apache
Group apache
//(我的pȝ在安装apache的时?自动增加了apache用户和apachel?如果你系l没有这个用户和l?则请自己d该用户和l?
//修改svn仓库的所有?br /> chown -R apache:apache /home/svnroot/repository
//修改该目录权限只能apache拥有
# chmod 700 /home/svnroot/repository



4. 修改Apache配置文g
# cd /usr/local/apadche2/bin
//启动Apache
# ./apachect1 start
# vi /usr/local/apache2/conf/httpd.conf
   //在最下面d
   LoadModule dav_svn_module modules/mod_dav_svn.so
   LoadModule authz_svn_module modules/mod_authz_svn.so
   <Location /svn>
   DAV svn
   SVNParentPath /home/svnroot/repository/ //svn父目?
   AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文g
   AuthType Basic //q接cd讄
   AuthName "Subversion.zoneyump" //q接框提C?
   AuthUserFile /home/svnroot/repository/authfile //用户配置文g
   Require valid-user //采用何种认证
   </Location>
   //其中authfile是通过"htpasswd [–c] /home/svnroot/repository/authfile username password"来创建的
   //"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它Q?br />    //则只能第一个用户可以访问新建库


5. 重启apache # ./usr/local/apache2/bin/apachectl restart
//打开览器访?a href="http://localhost/svn/test/" target="_blank">http://localhost/svn/test/Q如果有东西昄p明成功?br />

6. 权限理
1)增加用户
# htpasswd [-c] /home/svnroot/repository/authfile wooin
//W一ơ设|用h使用-c表示新徏一个用h件。回车后输入用户密码Q完成对用户的增?br /> # htpasswd authfile 用户?加入新的用户)

2)权限分配
# vi /home/svnroot/repository/authz.conf
   [test:/] //q表C,仓库test的根目录下的讉K权限
   wooin = rw //test仓库wooin用户hd写权?
   bao = r //test仓库bao用户hL?
   [test2:/] //test2仓库根目录下的访问权?
   wooin = r //wooin用户在test2仓库根目录下只有L?
   bao = //bao用户?test2仓库根目录下无Q何权?
   [/] //q个表示在所有仓库的根目录下
   * = r //q个表示Ҏ(gu)有的用户都具有读权限
   #[groups] //q个表示组讄
   #svn1-developers = wooin, bao //q个表示某群l里的成?
   #svn2-developers = wooin
   #[svn1:/]
   #@svn1-developers = rw //如果在前面加上@W号Q则表示q是个群l权限设|?br />
这个设|完成后。重启ApacheQ就可以通过
http://localhost/svn/test
q个URL来访问仓库了Q当Ӟ受权限的限制Q必L合法用户才能讉K且具有相应的权限


7. 一些备忘:(x)
1. svn checkout http://localhost/svn/hello.world

2. svn commit 时的默认~辑器的环境变量$SVN_EDITOR=vi需要手动设定,用kate好像有问?br />
3. 如果linux的登录用户名密码都和svn的其中一个用户名密码相同Ӟ在checkout的时候不?x)要求? 入用户名密码直接可以checkout出来。比如:(x)linux有个用户wooinQsvn也有一个用户wooinQƈ且密? 都是一L(fng)Q当用wooindlinux后,执行checkoutQ可以直接提取出源码文gQ不用输入认证信息?br />
4. 在svn使用q程中牵扯到几种权限Q文件系l的权限Qlinuxpȝ权限Qsvn用户的权限,apacheq程的权限?br />
文gpȝ的权限,linuxpȝ权限Q这里相同的意思,是qx大家使用linux时文件夹和文件的讉K权限。在 svn建立仓库Q文件夹Q配|文件的时候用svnroot用户Qƈ仓库权限设|ؓ(f)700Q不允许其他用户直接通过 文gpȝ查看Q只能由svnrootq行理?br />
apacheq程的权限:(x)因ؓ(f)所有跟仓库传输的操作都是通过apacheq程q行的,所以即使你lsvn用户讄? 很大的权限,但是apacheq程没有讉K仓库或者相x件的权限也没有用Qapacheq程的权限设|在 /usr/local/apache2/conf/httpd.conf 文g中配|,扑ֈ文g中的q两行:(x)
User daemon # daemon改ؓ(f)svnrootQ让apacheq程以svnroot的n份运?
Group daemon


svn用户的权限:(x)是在repository/authz.conf文g中设|的权限信息Q是svn用来理仓库讉K权限的?br />
5. svn服务器设|有两种方式Qhttp ?svnserve。这里介l的是httpҎ(gu)

6. ?etc/profile的结设|一些svn启动时要做的工作 # start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi


7. APR libraries 安装 SVN 的时候最好指?--with-apr= ?--with-apr-util= 参数?Apache 安装的根目录
QServerRootQ下Q而不是用缺省的 SVN 安装包中自带?apr 。否则如果你安装?Apache
版本不同有可能导?APR 库不匚wQ出现类|(x)
Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的错误?br /> Updated 2006-04-20 16:30 -- 比如说如果你安装的是apache 2.2.0版本Q就需要在~译安装svn的时候指?
--with-apxs?-with-apr参数C的apache2.2.0安装目录下:(x)
./configure --prefix=${subversionInstallFolder} /
--with-apxs=${apacheInstallFolder}/bin/apxs /
--with-apr=${apacheInstallFolder} /
--with-apr-util=${apacheInstallFolder} /
--with-ssl /
--with-zlib /
--enable-maintainer-mode


cAng^Er 2006-10-08 11:34 发表评论
]]>
վ֩ģ壺 | ϲ| | Ӻ| | ʯ| | | ƽ| Ϫ| | Ϫ| ɽʡ| | | | ˫| ԭƽ| | | | Ԫ| | ǿ| ʯ| ˱| Ȫ| Ҷ| ں| | ˹| | | | | | | Ϫ| | Ϫ| ͤ|