您的位置:首页 > 理论基础 > 计算机网络

centos7+mysql+svn(https方式访问)通过外网访问的配置

2015-07-26 21:28 531 查看

前言:

第一次用linux系统来做服务器。这次整个安装以及配置过程花了四天时间,主要是需要通过外网进行访问,因此期间遇到很多问题,在此记录下来。

参考链接:

centos7 U盘安装工具

CentOS-7下安装MySQL5.6.22

端口映射方式通过外网访问

CentOS搭建svn服务器支持https访问

在linux安装配置svn并实现支持ssl认证https安全访问方式

正文:

1.安装centos7

首先下载一个centos7的iso文件,资源好找,安装首先用的其他工具,一开始进行格式化,本来选的是NTFS格式,做了启动盘以后就变成了FAT32,然而iso文件大于4G,只能放弃该工具。

使用前面介绍的工具,很easy了。对新接触linux的来说,还是选择带有图形界面的吧,第一次装就是忽视了这个,如果不想重装在软件选择步骤中请慎重选择。(高手请无视T_T)

最好所有操作都在系统的root用户下进行,出现权限不足状况又要切换麻烦。

2.安装mysql

安装步骤已经有前辈发过,我就不再重复了。

我遇到一个问题:设置root密码。并没有象正常情况下让我输入初始密码,而是登录失败。

解决方案就是先绕过验证,直接操作user表,修改密码。(具体操作自行搜索)

在设置mysql随系统启动时还有个尚未解决的问题。如果用该命令设置自启动

chkconfig --add mysqld


会出现此错误
ERROR!The server quit without updating PID file


可用此命令找到mysql对应的PID

netstat -ntlp


kill之,重新启动mysql。

虽然看到有人说是selinux导致的问题,我把它禁用掉了也无果。而且开机启动测试太耗时,没有做更多测试。有知道解决方案的请告诉我,在此谢过了。

3.配置外网访问

都怪网络课没有认真学,连如何访问公网上的服务器都不知道。好在有花生壳,nat123等网站给我指引。花生壳配置失败,放弃了。

主要来说说nat123。

一切都为了让mysql通过外网访问。

PS:本机是有一个路由器的,路由宽带连接以后,服务器直接就有网。

首先注册一个帐号,充1块钱进行认证,不认证的无法使用非全端口映射的。

新增一个端口映射,在网页上进行设置如下



内网端口3306,也就是mysql的默认端口,这里毫无疑问。

内网地址填写路由器分配的IP。

外网端口本来也打算填3306可是提示被占用,改个就行。

外网域名可以用免费的,自己定义前缀就好。

nat123服务器端的安装启动根据官网的指示就行。

注意:在测试外网访问数据库之前先确认mysql本地功能是否正常,然后设置iptables,开放3306端口,同时路由器中要设置虚拟服务器(不同品牌称呼不一样,我这里是tplink)


详细设置步骤附上链接

- 设置iptables

- 设置路由器

路由器中内外端口都填3306,ip填路由分配的内网ip

如果不出意外的话,在另一台电脑上通过外网就能访问了,下图是通过mysql workbench新建连接。



4.配置svn

svn的安装与基本配置在一开始提供的链接里已经有前辈总结了。

安装好svn以后,首先测试在本地能否通过svn://进行访问,如果是找不到路径,请检查路径是svn的根目录还是版本库的目录?如果要求输入密码,并且输入正确还是无法访问,请检查权限配置。成功再开始配置https的。

首先要做端口映射,同样在nat123中添加一个映射,配置如下图,



相应的在路由器中新添加一个内外端口都为443映射。

不要忘记在iptables中添加允许3690(svn默认端口),和443(https默认端口)。

提示:在配置文件过程中,很可能出现文件名称、路径与教程不一致的情况,比如subversion.conf在我的系统里是10-subversion.conf。这时灵活运用搜索功能,全盘搜索也花不了多长时间。


做到这里不出意外可在其他电脑通过客户端进行访问了



注意链接的最终路径,可能是svn根目录,可能是版本库所在目录。

成功checkout以后,很有成就感,我以为我终于解决了。

然而并没有,当我提交时,总是失败,原来是权限不足。

下面说说权限配置。

apache进程的权限:因为所有跟仓库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了很大的权限,但是apache进程没有访问仓库或者相关文件的权限也没有用,apache进程的权限设置在httpd.conf(由于我的系统中文件路径和网上说的也不一致,建议通过搜索找这个文件)文件中配置,找到文件中的这两行:

User apache

Group apache

这个apache用户需要修改。我改的是svnroot。

所以还要先新建用户

useradd svnroot #创建用户
passwd svnroot #修改密码


因此我将版本库建立在/home/svnroot/目录下,在其他路径是否可行未做测试。

此处需要修改subversion.conf文件。

之前添加的

<Location  /svn>


修改成

<Location  /svnroot>


AuthUserFile
这个文件是可以与svn的用户配置文件共用的,建议共用一个,虽然修改用户的时候会比较麻烦,但是权限才能统一(略坑)。apache的用户添加方法如下:

htpasswd -c /home/svnroot/repository/authfile svnroot
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码

htpasswd authfile svnroot
(加入新的用户)

这个是加密的密码,而svn的用户配置密码是未加密的。

修改用户以后在文件顶部加上
[users]
即可。

以保证svn可以读取用户配置。

下次新添用户之前还要去掉[users],改完再加上。

好了这次如果不出意外就可以通过外网访问svn了。

第一次写博客,如有什么纰漏请见谅,也欢迎指正,有问题也可以留言探讨。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: