永利皇宫注册如何在Linux环境下安装SVN服务器

最近帮同事看了一下RedHat
Linux 9.0上apache的配置,希望用一台Linux机器作为web
服务器,以前都是在debian上做的,差不多半年左右没有配置过服务器了,这次换成了redhat
9.0,呵呵还好Linux机器都是相通的。很快帮他搞定。

重点参考链接

apache做反向代理服务器

http://blog.51cto.com/yahoon/162922

Linux Apache 配置反向代理

http://blog.csdn.net/zhdl11/article/details/44182725

SVN-Subversion
是一个版本控制软件,帮助开发者管理源代码。本文将教大家如何在Linux环境安装一个SVN服务器,并且配置成http可以访问的模式,也就是浏览器可以直接访问。

apache服务是一个最常用的服务之一,以为现在人们获取信息的主要方式主要是通过
 浏览网页,因此apache服务是服务中主要的一个应用。
 首先apache服务主要的安装
 源码安装或者rpm包安装
 一下使用的是rpm安装的方式:
 我这里使用本地的yum源安装
 一、简单的安装和配置
 #yum install httpd
 #service httpd start //启动http服务
 # echo “hello” > /var/www/html/index.html
 然后在浏览器中输入
 如果你做了一个本地缓存DNS的话,也可以使用域名直接访问
 或者使用一下命令也能访问
 #curl or #curl
 #service httpd status //查看httpd的运行状态
 #netstat -tnl | grep :80 //查看使用的端口号
 #httpd -t or service httpd configtest 测试
 
 apache多道处理模块
   perfork(进程模式:每一个用户独立的进程)
   worker(线程模式:开两个进程,用户在进程区域中开辟新的线程)
  
RedHat常使用prefirk
 二、UserDir,用户可以访问自己家目录下的网站
   在家目录上给apache用户执行的权限,然后访问
  
   #vim /etc/httpd/conf/httpd.conf
      UserDir enable redhat,student
      UserDir  public_html
   #mkdir /home/redhat/public_html
   #mkdir /home/student/public_html
   #echo “redhat userdir page test”
>/home/redhat/public_html/index.html
   #echo “student userdir page test”
>/home/student/public_html/index.html
   #setfacl -m u:apache:x /home/redhat
   #setfacl -m u:apache:x /home/student
   #setenforce 0 //关闭selinux
  
在浏览器中输入
 三、Alias路径下的别名
   Alias /aa “/PATH/index.html”  
   然后通过
   #vim /etc/httpd/conf/httpd.conf
    Alias /ro “/www/web/”
   #mkdir -pv /www/web
   #echo “alias test page” >/www/web/index.html
   #setenforce0
   #service httpd restart
   在浏览器中输入
 四、基于用户名认证的网站
   web认证的方式:文本文件,表单,mysql,ldap;加密方式有basic,md5
  
通过设置认证网站,来增强网站的安全性,只有通过认证的的用户才有权限访问
   网站。
   具体步骤如下:
   #vim /etc/httpd/conf/httpd.conf
    添加如下内容
     <Directory “/www/web”>
       AllowOverride Authconfig
       AuthName “Auth web”                     //提示信息
       AuthType basic                          //加密方式
       AuthUserFile /etc/httpd/conf/.webuser   //认证用户文件
       Require User user1                      //允许认证的用户
     </Directory>
   #htpasswd -c -m /etc/httpd/conf/.webuser user1 
//创建.webuser文件,添加用户
   输如新密码
   #htpasswd -m /etc/httpd/conf/.webuser user2  //添加用户
   输入新密码
   #setenforce 0
   如果想设置组认证,需要在文件中添加如下内容
    #vim /etc/httpd/conf/.webgrps
      mygrp: user1 user2 。。。
    #groupadd mygrp
      <Directory “/www/web”>
       AllowOverride Authconfig
       AuthName “Auth web”                     //提示信息
       AuthType basic                          //加密方式
       AuthUserFile /etc/httpd/conf/.webuser   //认证用户文件
       AuthGroupFile /etc/httpd/conf/.webgrps
       Require group mygrp                      //允许认证的用户组
     </Directory>  
  
由于我是借用上面的别名网站,所以直接在浏览器中输入
   提示用户输入帐号和密码
   关于htpasswd的用法:
     htpasswd   创建apache认证用户的帐号和密码
         -c 创建
         -m 使用MD5加密
         -D 删除用户
 五、虚拟主机
   1、基于端口的虚拟主机
      #vim /etc/httpd/conf/httpd.conf
        添加如下内容:
         </VirtualHost *:80>
          DocumentRoot “/www/web/web1”
          ServerName  www.linuxidc.com
         </VirtualHost>
         </VirtualHost *:8080>
          DocumentRoot “/www/web/web2”
          ServerName  www.linuxidc.com
         </VirtualHost>          
       同时把DocumentRoot “/var/www/html”给注释掉
       #mkdir -vp /www/web/web{1,2}
       #echo “web1” > /www/web/web1/index.html
       #echo “web2” >/www/web/web2/index.html
      
然后在浏览器中访问
       测试(注:我这做了DNS服务器,解析www.linuxidc.com)
   2、基于IP的虚拟主机
       #vim /etc/httpd/conf/httpd.conf
        添加如下内容:
         </VirtualHost 192.168.1.103:80>
          DocumentRoot “/www/web/web1”
          ServerName  www.linuxidc.com
         </VirtualHost>
         </VirtualHost 192.168.1.104:80>
          DocumentRoot “/www/web/web2”
          ServerName  www.linuxidc.com
         </VirtualHost>          
       同时把DocumentRoot “/var/www/html”给注释掉
       #mkdir -vp /www/web/web{1,2}
       #echo “web1” > /www/web/web1/index.html
       #echo “web2” >/www/web/web2/index.html
       #ifconfig eth0:0 192.168.1.103/24
       #ifconfig eth0:1 192.168.1.104/24
      
然后在浏览器中输入
   3、基于域名的虚拟主机
      假如我这里使用linuxidc.com和linuxidc.cn两个主机名
      那么一下的配置如下:
      NameServer *:80
       #vim /etc/httpd/conf/httpd.conf
        添加如下内容:
         </VirtualHost 192.168.1.103:80>
          DocumentRoot “/www/web/web1”
          ServerName  web1.linuxidc.com
         </VirtualHost>
         </VirtualHost 192.168.1.104:80>
          DocumentRoot “/www/web/web2”
          ServerName  web2.linuxidc.com
         </VirtualHost>          
       同时把DocumentRoot “/var/www/html”给注释掉
       #mkdir -vp /www/web/web{1,2}
       #echo “web1” > /www/web/web1/index.html
       #echo “web2” >/www/web/web2/index.html     
       #service httpd reload
     
这样在浏览其中分别输入
      如果你没有DNS服务器的话,可以在C:\Windows\System32\drivers\etc
添加解析名字
      格式如下:
      IP DOMAINNAME
      192.168.1.103 web1.linuxidc.com
      192.168.1.103 web2.linuxidc.com
      #httpd -S 查看使用的虚拟主机情况
六、cgi 通用网关接口 
      #vim /etc/httpd/conf/httpd.conf
      找到ScriptAlias  /cgi-bin/ “/var/www/cgi-bin/”
这是系统默认定义好的
      一个,cgi的位置。
      接下来就���上面的目录中创建一个a.cgi的脚本
      #cd /var/www/cgi-bin/
      #vim a.cgi
        #!/bin/bash
        echo -e “Content-type: text/html\n\n”
       
        echo “The current time is:`date`”
      #chmoe +x a.cgi
      然后在浏览器中输入
七、ssl实现https
      ssl机制应用到http支持https
      要想支持ssl现状模块mod_ssl
      #yum install mod_ssl
      创建一个ca
      #cd /etc/pki/CA
      #openssl genrsa 1024 > private/cakey.pem
      #chmoe 700 !$
      #vim /etc/pki/tls/openssl.cnf修改如下
       dir             = /etc/pki/CA 
      #openssl req -new -x509 -key private/cakey.pem -out cacert.pem
-days 3650
      #mkdir certs newcerts crl
      #touch index.txt
      #echo 01 > serial
      #cd /etc/httpd/conf/
      #mkdir ssl
      #cd ssl
      #(umask 077;openssl genrsa 1024 > httpd.key)
      #openssl req -new -key httpd.key -out httpd.csr  证书请求
      #
      #openssl ca -in httpd.csr -out httpd.crt -days 3650
      把上面生成的cacert.pem改名为cacert.crt并导入浏览器中
     
“工具”–>Internet选项–>内容–>证书–>受信任的根证书颁发机构–>导入就行了
      #cd /etc/httpd/conf.d/
      #vim ssl.conf修改一下几项
        DocumentRoot “/www/web/web1”
        ServerName web1.linuxidc.com:443
        SSLCertificateFile /etc/httpd/ssl/httpd.crt
        SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
      保存就可以了
      #httpd -S
      #netstat -ntul |grep :443查看端口是否启用
     
然后在浏览器中输入
一个小锁,呵呵,这就是效果,如果不把ca的证书导入到浏览器中,在你打开网页的时候
会有个提示的。 
永利皇宫注册 1

首先redhat 9.0自带httpd这个服务器,无需再下载一个软件包。

概念简述

        apache代理分为正向代理和反向代理:

        1、正向代理:
客户端无法直接访问外部的web,需要在客户端所在的网络内架设一台代理服务器,客户端通过代理服务器访问外部的web(需要在客户端的浏览器中设置代理服务器)适用于:

         ①局域网的代理服务器(一般是网关,相当于squid的一般用法);

       
 ②访问某个受限网络的代理服务器,如教育网访问某些国外网站需要找代理;

        2、反向代理:
客户端能访问外部的web,但是不能访问目标web,目标web所在的网络内一台机器充当目标web的代理,客户端直接访问代理就像访问目标web一样(此代理对客户端透明,即客户端不用做如何设置,并不知道实际访问的只是代理而已,以为就是访问的目标)适用于: 

       
①idc的某台目标机器只对内开放web,外部的客户端要访问,就让另一台机器做proxy,外部直接访问proxy即相当于访问目标;

       
②idc的目标机器的某个特殊的web服务跑在非正常端口如9000,而防火墙上只对外开放了80,此时可在80上做proxy映射到9000,外部访问80即相当于9000。

        简单示意图如下:

正向代理示意图

反向代理示意图

背景

我的Linux机器环境是CentOS release 6.8 (Final)。

vi /etc/httpd/conf/http.conf

配置简述

    apache安装完成后,进入 /etc/httpd/conf目录,打开
httpd.conf文件,然后:

    1、先检查代理模块是否开启;

    2、配置最基本的反向代理;

    3、重启apache;

安装SVN Server

安装一个全新的SVN服务器,因为我们打算之后使用http的形式来访问我们的svn
server ,
所以我们需要提前安装一个web服务器,比如Apache的httpd、nginx、lighttpd等,
这几个服务器里面任选一个就可以了 ,
功能都是一样的,这里我们拿httpd去离子。然后依次安装mod_dav_svn 和
subversion。

yum install -y http

yum install -y subversion

yum install -y mod_dav_svn

OK 这样就完成了安装。下面是SVN的配置:

#当使用浏览器时,就是访问这个目录下的资源,这个是默认的目录,可以换成任意的你需要的目录

具体实施步骤

SVN的配置

首先建一个用于存放SVN资源文件的目录。 这个不是必选的,
但是这是一个比较好的实践。

mkdir /data/svn

然后,我们在这个目录下面创建第一个叫repo1的SVN库。为了让用户可以通过浏览器或SVN客户端访问repo1库,我们让apache有权限访问。

svnadmin create /data/svn/repo1
chown -R apache:apache /data/svn/repo1

接下来,我们配置SVN用户,
首先进入到repo1目录下面,修改svnserve.conf文件

cd /data/svn/repo1/conf
vim svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

然后添加一个SVN账户,这里我们使用htpasswd命令,R
参数表示把之前的数据都先清除,再加新的用户。

htpasswd -R /data/svn/repo1/conf/passwd frank 
htpasswd  /data/svn/repo1/conf/passwd frank1 

这时候可以通过查看passwd命令看到我们配置的用户:

cat passwd

最后, 我们通过修改配置文件authz来配置不同用户的权限:

vim authz

[repo1:/]
frank = r
frank1 = rw
* =

如上所示,我们给frank用户只读权限,给frank1用户可读可写权限,其他的用户什么权限都没有。
以上,我们就完成了SVN相关配置了
重启:

killall svnserve
svnserve -d -r /data/svn

DocumentRoot=/var/www/html

第一步

   
看一下如下Module是否已打开,如果没有打开,去掉下面代码前面的注释符号#

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

LoadModule proxy_http_module modules/mod_proxy_http.so

配置Apache

接下来,我们还需要配置一下httpd

vim /etc/httpd/conf/httpd.conf

httpd.conf中找找看有没有以下代码,如果没有,写进去:

[.....]
Include conf.d/*.conf
[.....]

接下来,
我们找到/etc/httpd/conf.d/目录,这里应该已经有subversion.conf文件了。修改它:

cd /etc/httpd/conf.d/
ls
vim subversion.conf

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /repo1>
DAV svn
SVNPath /data/svn/repo1
Authtype Basic
AuthName "My Repository"
AuthzSVNAccessFile /data/svn/repo1/conf/authz
AuthUserFile /data/svn/repo1/conf/passwd
Require valid-user
</Location>

代码的前两行是导入apache
SVN模块,后面的代码定义地址/repo1指向我们刚刚创建的目录。

OK,现在我们重启httpd服务,让刚刚修改的配置文件生效。

service httpd restart 

#当使用浏览器访问linux的web时,如果不想以具体的文件去显示,而是整个目录都显示出来需要把下边的这个注释掉

第二步

    打开/etc/httpd/conf目录下的httpd.conf,在末尾添加如下代码:

    简单说一下这几个参数:

        123.123.123.123 是服务器使用的IP地址

        8800 是apache所监听的端口

        ProxyPass 与 ProxyPassReverse
后面的『http://www.baidu.com/』是需要我们的请求的真正的目的服务器,其前边的
空格+/+空格
也是属于我们配置的一部分。在正式配置中,反向代理一般统一在extra目录的httpd-vhosts.conf文件中配置。

测试

直接在浏览器的地址栏输入:http://SVN服务器的IP/repo1,如果提示你输入账号密码,
代表本次配置成功。输入在配置SVN时设置好的账号密码即可。

Options indexes

第三步

        重启apache, 进入 /etc/init.d/ 目录,执行 ./httpd restart

       
验证:在客户端浏览器中输入http://123.123.123.123:8800/,页面将返回百度首页,当我们访问访问http://123.123.123.123:8800/admin/index.html时,应该返回http://www.baidu.com/search/error.html,因为访问的路径不存在。

        以上就是最基本的使用apache配置代理转发请求。

PS 跟其他服务器端口冲突怎么办

如果你Linux服务器在同时跑着其他的web服务器(如nginx),你可以使用你现有的web服务器,就不用安装httpd了。
当然也可以同时跑两个web服务器,只要端口不冲突就可以。
如何改端口?以httpd举例:
修改配置文件httpd.conf

vim /etc/httpd/conf/httpd.conf

找到Listen关键字,默认为80端口,为了不跟其他服务器冲突,随便改一个端口,如:

Linten 8181

永利皇宫注册 2

参考链接

apache做反向代理服务器

http://blog.51cto.com/yahoon/162922

Linux Apache 配置反向代理

http://blog.csdn.net/zhdl11/article/details/44182725

apache配置正向代理与反向代理

Ubuntu配置反向代理

参考链接

安装SVN:
https://www.howtoforge.com/tutorial/how-to-setup-a-svn-server-on-centos-6/

HTTPD相关:
https://techjourney.net/apache-httpd-address-already-in-use-make\_sock-could-not-bind-to-address-80-443-error/

发表评论

电子邮件地址不会被公开。 必填项已用*标注