CentOS7|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_modulemodules/mod_dav_svn.so 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 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,如下图:

CentOS7|CentOS7 SVN服务器+Tomcat+Windows+Eclipse开发环境搭建
文章图片

提示: 我的Linux中已经是禁用状态,根据自己的情况设置。若防火墙开启状态,还需要开放防火墙80端口或者关闭防火墙并禁止自启动,命令为: chkconfig --level 345 iptables off
至此,Subversion部分的基本配置工作已经完成,现在可以重新启动机器,然后打开浏览器访问http://xxxx/svn/即可看到效果,此时浏览器会弹出一个窗体提示你输入访问svn目录所需的账户,如图所示。

CentOS7|CentOS7 SVN服务器+Tomcat+Windows+Eclipse开发环境搭建
文章图片

配置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

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

CentOS7|CentOS7 SVN服务器+Tomcat+Windows+Eclipse开发环境搭建
文章图片

CentOS7|CentOS7 SVN服务器+Tomcat+Windows+Eclipse开发环境搭建
文章图片
  • 接下来修改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

CentOS7|CentOS7 SVN服务器+Tomcat+Windows+Eclipse开发环境搭建
文章图片
  • 修改httpd.conf文件,并配置主机公钥:
vim /etc/httpd/conf/httpd.conf

在httpd.conf文件中增加下面所示的内容:
NameVirtualHost*:8000 NameVirtualHost*:443 ServerName localhost DocumentRoot /var/www/html DocumentRoot /var/www/html ServerName localhost SSLEngine On SSLOptions +StrictRequire SSLCertificateFile /etc/httpd/conf/httpd.pem SSLCertificateKeyFile /etc/httpd/conf/httpd.key SSLProtocol TLSv1

提示:修改完并保存以上所有内容,重启Apache服务,此时使用http://xxxx/svn/和https://xxxx/svn/都可以正常工作。如果出现只能http访问apache,那么请检查httpd.conf是否有以下内容:
Options FollowSymLinks AllowOverride None # 把下面这行注释掉即可。 #SSLRequireSSL

附: 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

在其中输入以下内容:

保存修改并退出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

【CentOS7|CentOS7 SVN服务器+Tomcat+Windows+Eclipse开发环境搭建】这样,所有在浏览器地址栏的 http://xxxx/tomcat/test.jsp 就被转交给Tomcat执行了。

    推荐阅读