CentOS7 SVN服务器+Tomcat+Windows+Eclipse开发环境搭建

服务器:阿里云ECS
Windows下工具:Xshell5、Xftp、Eclipse
CentOS安装方式:在线yum源
JDK版本:JDK_1.8.0_144
Tomcat版本:Tomcat 8.5.20
MySQL版本:MySQL 5.7.19(yum源安装高版本yum源设置参考这里
SVN版本:Subversion 1.7.14(yum源安装)
注:JDK与Tomcat是官网下载的xxxx.tar.gz包解压安装,并配置环境变量。可在网站搜索相关教程,不是本文的重点内容。


1. 准备工作


  • 设置软件服务开机启动
systemctl enable httpd.service
systemctl enable tomcat.service
systemctl enable mysqld.service
  • 配置Apache端口
    我的Tomcat设置的是web默认80端口,Apache设置的是8000端口:
#Listen 12.34.56.78:80
Listen 8000

测试Apache:打开http://106.166.166.12:8000即可访问Apache的123样式首页,说明安装成功没问题。

  • 安装 mod_dav_svn 模块支持
# 与subversive版本匹配,yum源自动识别
yum install mod_dav_svn

2. 配置Apache和SVN服务

  • 查看SVN版本:
svnserve --version
# 或者
svn --version
  • SVN配置:
#SVN的仓库目录为/var/svn/repos,repos目录中可能包含repo1、repo2等多个仓库。
cd /var/
mkdir svn
mkdir repos
cd /var/svn/repos

# 创建SVN仓库
svnadmin create test_repo1
chown -R apache.apache test_repo1

说明:创建SVN仓库test_repo1之后并将test_repo1目录的所有者改为apache,这样方便Apache能够正常访问并修改subversive.conf配置文件。

  • 配置SVN的http://访问方式:
# 新增配置subversive.conf
vi /etc/httpd/conf.d/subversion.conf

添加以下内容:

LoadModule dav_svn_module  modules/mod_dav_svn.so

<Location /svn/>
    DAV svn
    SVNParentPath /var/svn/repos
    SVNListParentPath on
    AuthType Basic
    AuthName "Lmsite SVN Repo"
    AuthUserFile "/var/svn/userfile"
    AuthzSVNAccessFile "/var/svn/accessfile"
    Require valid-user
</Location>

RedirectMatch ^(/svn)$ $1/
  • 添加Apache账户
    为了限制匿名访问svn的目录,这里在apache中添加几个访问账户。
# 重复执行改变用户名即可添加多个账户,会提示输入密码,执行代码如下:
htpasswd -c /data/svn/userfile testuser01
htpasswd -c /data/svn/userfile testuser02
  • 指定访问模式:
vi /data/svn/accessfile

加入一下内容,表示访问用户可以通过apache对其进行读写操作:

[/]
*=rw
  • 设置禁止启动SElinux:
vi /etc/sysconfig/selinux

将SELINUX的值改为disabled,如下图:


提示: 我的Linux中已经是禁用状态,根据自己的情况设置。若防火墙开启状态,还需要开放防火墙80端口或者关闭防火墙并禁止自启动,命令为:chkconfig --level 345 iptables off

至此,Subversion部分的基本配置工作已经完成,现在可以重新启动机器,然后打开浏览器访问http://xxxx/svn/即可看到效果,此时浏览器会弹出一个窗体提示你输入访问svn目录所需的账户,如图所示。

配置HTTP/HTTPS访问SVN服务

  • 首先创建一个私钥文件:
cd /etc/httpd/conf
openssl genrsa -out httpd.key 1024 
openssl req -new -key httpd.key -out httpd.pem -days 3650 -x509

最后这个命令执行后需要输入一系列信息,比如国家,省份,城市,公司,部门,网络名,邮箱,然后才算完成,如图所示:



  • 接下来修改apache使ssl生效:
vim /etc/httpd/conf.d/ssl.conf

指定为刚刚创建的两个密钥文件的路径名称,将其中的两行内容修改成如下:

SSLCertificateFile /etc/httpd/conf/httpd.pem
SSLCertificateKeyFile /etc/httpd/conf/httpd.key
  • 修改rc.local文件,将svnserve服务加入开机自启动。
vim /etc/rc.local
# 在末尾添加下面内容:
svnserve -d -r /data/svn/repos
  • 修改httpd.conf文件,并配置主机公钥:
vim /etc/httpd/conf/httpd.conf

在httpd.conf文件中增加下面所示的内容:

NameVirtualHost*:8000
NameVirtualHost*:443
 
<VirtualHost *:8000>
   ServerName localhost
   DocumentRoot /var/www/html
</VirtualHost>
 
<VirtualHost *:443>
   DocumentRoot /var/www/html
   ServerName localhost
   SSLEngine On
   SSLOptions +StrictRequire
   SSLCertificateFile /etc/httpd/conf/httpd.pem
   SSLCertificateKeyFile /etc/httpd/conf/httpd.key
   SSLProtocol TLSv1
</VirtualHost>

提示:修改完并保存以上所有内容,重启Apache服务,此时使用http://xxxx/svn/https://xxxx/svn/都可以正常工作。如果出现只能http访问apache,那么请检查httpd.conf是否有以下内容:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    # 把下面这行注释掉即可。
    #SSLRequireSSL
</Directory>

附:

1、前面是直接关闭了Linux的防火墙,更合适的做法是在iptables中增加允许80(HTTP)、8080(Tomcat)、443(HTTPS)、3690(SVN)的端口开放权限
执行:

setup
chkconfig --level 345 iptables on

setup命令可启动iptables的端口配置,你在其中增加上述几个端口的允许访问权限即可。chkconfig是把前面关闭自启动的iptables改为默认启动。

2、Apache、PHP、MySQL、Tomcat服务的配置文件路径
Apache的配置文件是 /etc/httpd/conf/
模块放在/usr/lib/httpd/
PHP的配置文件在 /etc/php.d/ 里和 /etc/php.ini
模块放在 /usr/lib/php/modules
MySQL的配置文件在 /etc/my.cnf
Tomcat安装目录位于 /usr/tomcat/
配置文件位于 /etc/tomcat/ 里,或者 /etc/tomcat/conf/
3、测试PHP是否正常工作
执行:

vim /var/www/html/phpinfo.php

在其中输入以下内容:

<?php
    phpinfo();
?>

保存修改并退出vim编辑器,在浏览器中输入网址 http://xxxx/phpinfo.php ,可以看看php页面是否正常显示。
4、Apache与Tomcat的整合
如果网站需同时整合Apache与Tomcat,此时可以使用JK或者Proxy方式
执行:

vim /etc/httpd/conf.d/proxy_ajp.conf

在其中输入下面的内容:

ProxyPass /tomcat/ ajp://localhost:8009

保存修改并退出vim编辑器,
执行:

/etc/init.d/httpd restart
/etc/init.d/tomcat6 restart

这样,所有在浏览器地址栏的 http://xxxx/tomcat/test.jsp 就被转交给Tomcat执行了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • 1、第八章 Samba服务器2、第八章 NFS服务器3、第十章 Linux下DNS服务器配站点,域名解析概念命令:...
    哈熝少主阅读 3,707评论 0 10
  • 架构师必须知道的26项PHP安全实践 PHP是一种开源服务器端脚本语言,应用很广泛。Apache web服务器提供...
    meng_philip123阅读 6,053评论 1 161
  • 文/李延军 “好记者讲好故事”,作为一名有25年新闻工龄的老记者,能够得到这样一个演讲的机会...
    许永杰阅读 715评论 1 1
  • ——读《奇特的一生》 时间对于你来说是什么?我相信很多人都思考过这个问题,但是你得出来的结论十有八九是:时...
    智Lin阅读 337评论 0 1