Linux下源码方式
安装apache 2.2.14 &svn 1.6.6 Created by okala at 2009-12-25环境:Red Hat Enterprise Linux Server release 5.3 (Tikanga)httpd-2.2.14.tar.gzsubversion-1.6.6.tar.gz 到官网 http://subversion.tigris.org/ 下载当前最新的稳定版本subversion-1.6.6.tar.gz到官网 http://httpd.apache.org/ 下载当前最新的稳定版本httpd-2.2.14.tar.gz 1. 安装Apache2.2.14用root
账号执行以下命令:tar zxf httpd-2.2.14.tar.gz#解压到当前目录cd httpd-2.2.14#进入解压后的目录./configure --prefix=/local/svnroot/apache2 --enable-so --enable-mods-shared=all --enable-dav=share --enable-dav-fs --with-ldap --enable-ldap --enable-authnz-ldap --enable-authn-alias#定义安装的目标路径(可据自己需要修改),使能LDAPmake#编译make install#安装/local/svnroot/apache2/bin/apachectl start#启动Apache用IE访问以下网址,http://hostIP/,如果提示It works!,则Apache安装成功。然后就可以先停止Apache了:/local/svnroot/apache2/bin/apachectl stop#停止Apache 2. 安装Subversion 1.6.6用root账号执行以下命令:tar zxf subversion-1.6.6.tar.gz #解压到当前目录cd subversion-1.6.6#进入解压后的目录./configure --with-apxs=/local/svnroot/apache2/bin/apxs --prefix=/local/svnroot/subversion --with-apr=/local/svnroot/apache2 --with-apr-util=/local/svnroot/apache2 --with-ssl --enable-maintainer-mode#定义安装的目标路径(可据自己需要修改),指明Apache的安装路径,使能SSLmake#编译make install#安装 3. 安装后的系统设置用root账号执行以下命令:useradd svnroot#创建Linux系统里的账号svnrootpasswd svnroot#设置svnroot账号的密码chown –R svnroot.svnroot /local/svnroot#把svn目录下所有
文件改为属于svnrootchmod 750 /local/svnroot#把svn目录设为其他Linux用户不可读 4. Apache设置su svnroot#由root账号切换到svnroot账号来执行以下的命令vi /local/svnroot/apache2/conf/httpd.conf#编辑Apache服务器的配置文件下述参数根据自己的安装情况进行相应修改:ServerRoot "/local/svnroot/apache2"Listen 80#可修改为其他的端口,则访问时也要在URL里加上对应的端口号 User svnrootGroup svnroot#前面把svn安装目录的所有文件改为属于svnroot,这里这样设置,那么Apache运行时就会切换到使用该Linux里的账号svnroot与组svnroot ServerAdmin sample@sample.com#定义一个邮箱地址ServerName 192.18.1.1#该主机的地址 #ErrorLog "logs/error_log"ErrorLog "|/local/svnroot/apache2/bin/rotatelogs /local/svnroot/apache2/logs/error_log.%Y%m%d.log 86400 480"#修改Errorlog记录的方式为按天记录,避免一个log文件过大 #CustomLog "logs/access_log" commonCustomLog "|/local/svnroot/apache2/bin/rotatelogs /local/svnroot/apache2/logs/access_log.%Y%m%d.log 86400 480" common#修改accesslog记录的方式为按天记录,避免一个log文件过大 #在末尾开始加入这部分集成LDAP方面使用的参数LDAPSharedCacheSize 200000LDAPCacheEntries 1024LDAPCacheTTL 600LDAPOpCacheEntries 1024LDAPOpCacheTTL 600 <AuthnProviderAlias ldap abc>AuthLDAPURL "ldap://192.168.1.1:3268/DC=lala,DC=lala,DC=lala,DC=com?sAMAccountName?sub?(objectClass=*)" NONEAuthLDAPBindDN "CN=la\, lala,OU=users,OU=lala,ou=lala ,DC=lala,DC=lala,DC=la,dc=com"AuthLDAPBindPassword "password"</AuthnProviderAlias>#这部分指定访问LDAP服务器的URL、用户名、密码 RewriteEngine onRewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)RewriteRule .* - [F] include /local/svnroot/apache2/conf/httpd.project#我把各个库的配置信息用一个独立的文件来管理 5. svn库的配置su svnroot#切换到svnroot账号,如果用root账号创建svn库,会有导致无法提交文件到该库的错误/local/svnroot/subversion/bin/svnadmin create --fs-type fsfs /local/svnroot/repository/sw1#该命令用svnadmin创建fsfs存储格式的svn库“sw1” vi /local/svnroot/apache2/conf/httpd.project#创建httpd.project文件,输入以下内容:<Location /sw1> #到时访问的路径就是http://hostip/sw1DAV svn#使用dav传输SVNPath /local/svnroot/repository/sw1#sw1库在Linux系统中的真实物理路径AuthzSVNAccessFile /local/svnroot/permission/sw1.perm#配置各个用户访问权限的文件AuthType BasicAuthName "sw1 SVN repository."#客户端访问该库时显示的登陆提示信息AuthBasicProvider file abc#先看文件中是否有该用户名,再看LDAP中有无该用户名AuthzLDAPAuthoritative offAuthUserFile /local/svnroot/user/sw1.user#记录各个用户名与其密码的文件Satisfy Any#允许匿名访问,若不允许,可注释掉此行Require valid-user#要求用户名与密码验证</Location>Shift+分号,输入wq保存后退出编辑模式:wq vi /local/svnroot/permission/sw1.perm#创建sw1.perm权限控制文件,输入:[/]test = rw#账号test拥有读写权限* = #其他账号没有读写权限Shift+分号,输入wq保存后退出编辑模式:wq /local/svnroot/apache2/bin/htpasswd -cm /local/svnroot/user/sw1.user test#-c参数表明创建文件sw1.user,若此文件已存在,则不要-c参数#-m表示用MD5加密协议#此命令往sw1.user里添加用户test,随后设置其密码 至此,安装好了Apache、SVN,配置好了svn安装目录的权限,配置好了Apache建立好了库设立了库里目录的访问权限创建了该库的账户于是,可以运行啦 6. 运行SVN服务器用root账号执行:/local/svnroot/apache2/bin/apachectl start然后用IE或TortoiseSVN访问建立好的svn库:http://hostip/sw1输入账号test及其密码,应该就能访问了,里面什么内容也没有呢 如果是LDAP账户,则只需要在sw1.perm文件里分配权限给相应的账号就可以了,不需要再创建到sw1.user文件里。目的:linux系统默认使用自己的Unix用户,我们有时需要多台主机都使用同一个用户,这样的还用户管理就比较麻烦。比较简单的解决方法是配置这些linux主机都使用同一个ldap的用户,这样只需要在ldap中进行用户更改即可,不再需要所有主机都进行更改了。
配置客户端:
a、安装ldap客户端:
yum install nss-pam-ldapd pam_ldap -y
b、图形化配置:
LANG=C authconfig-tui
或者用命令修改:
authconfig --enablemkhomedir --disableldaptls --enableldap --enableldapauth --ldapserver=ldap://110.1.236.51 --ldapbasedn='dc=yinkp,dc=com' --update
cat /etc/sysconfig/authconfig |grep yes
1、增加/etc/openldap/ldap.conf
2、修改 /etc/nsswitch.conf中sss为ldap
3、 修改/etc/pam.d/system-auth,/etc/pam.d/password-auth
sed -i 's/pam_sss.so/pam_ldap.so/g' /etc/pam.d/system-auth
sed -i 's/pam_sss.so/pam_ldap.so/g' /etc/pam.d/password-auth
4、修改sssd配置文件:
vi /etc/sssd/sssd.conf
5、修改nslcd配置文件:
vi /etc/nslcd.conf
6、重启nslcd/sssd
service nslcd restart
service sssd restart
验证:
切换为系统中没有,ldap中有的用户。如果OK,则成功。
ldapsearch -x -b 'ou=people,dc=yinkp,dc=com'
批量修改主机使用ldap用户:
分发上面已经配置好的主机上的文件到其它linux主机
注:如果没有分发脚本,也可以一个一个文件scp
deploy.sh /etc/sysconfig/authconfig /etc/sysconfig/ all
deploy.sh /etc/openldap/ldap.conf /etc/openldap/ all
deploy.sh /etc/nsswitch.conf /etc/ all
deploy.sh /etc/pam.d/system-auth /etc/pam.d/ all
deploy.sh /etc/sssd/sssd.conf /etc/sssd/ all
deploy.sh /etc/nslcd.conf /etc/ all
重启nslcd/sssd服务
runRemoteCmd.sh "/bin/systemctl restart nslcd.service &&/bin/systemctl restart sssd.service" ldap_client
评论列表(0条)