CentOS7 SVN服务器+Tomcat+Windows+Ec
服务器:阿里云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执行了。