某公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制。社交网站的第一个版本部署在LNMP平台之上,前端为Nginx服务器,通过fastcgi协议访问后端的PHP服务器。为了保证数据安全,要求搭建MySQL数据库主从集群。
社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放。针对共享存储可用的开源方案有很多,如MFS、FastDFS 等。公司决定使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器的相关目录下。
案例实施
根据公司的需求,实施过程大致分为以下步骤。
- 部署SVN服务器,为PHP程序员创建repo目录的访问账户,通知程序员可以导入代码。
- 部署MySQL主从服务器,根据PHP程序员的要求创建数据库与表。
- 部署Nginx服务器。部署PHP服务器。
- 部署MFS,将MFS文件系统挂载在前端PHP服务器的相关目录下。
- 通知上线部署人员可以发布上线。
部署SVN服务器
1、安装SVN服务
yum install subversion -y ????????//安装SVNsvnserve --version ???//查版本svnserve,版本 1.7.14 (r1542130) ??编译于 Apr 11 2018,02:40:28 ??......
2、为PHP程序员创建仓库目录repo
mkdir -p /opt/svn/repo ???????????//创建目录svnadmin create /opt/svn/repo/ ????//创建新仓库
3、调整SVN参数
vim /opt/svn/repo/conf/svnserve.conf ?????//调整SVN参数[general] ???????//总体配置anon-access = none ?????//匿名用户没有任何权限auth-access = write ????????//认证用户具有写权限password-db = /opt/svn/repo/conf/passwd ????????????//用户的密码文件authz-db = /opt/svn/repo/conf/authz ???????//用户信息文件.....
4、启动SVN服务
svnserve -d -r /opt/svn/repo/ ???????????//启动SVN服务,关闭通过kill PIDnetst at -ntap | grep svnservetcp ???????0 ?????0 0.0.0.0:3690 ???????????0.0.0.0:* ??????????????LISTEN ?????3585/svnservesystemctl stop firewalld.service setenforce 0 ????????//关闭防火墙和安全功能
5、为PHP程序员alpha建立账户,配置仓库具有读写权限,并将账户信息及仓库目录信息反馈给PHP程序员
cd /opt/svn/repovim conf/passwd ????????//创建账户密码文件[users]alpha = 123123 ?????????//格式:用户名 = 用户密码sysadmin = 123123vim conf/authz ?????????//创建权限文件[/]sysadmin = ralpha = r[/webphp]sysadmin = r ????????????????//运维工程师账户具有读权限,用于部署alpha = rw ??????????????????//alpha用户对此目录具有读写权限mkdir webphpsvn import webphp file:///opt/svn/repo/webphp -m "初始化目录". ??????//导入webphp提交后的版本为 1。
发布上线
PHP程序员将代码导入webphp项目中。
通过SVN服务器的sysadmin账户部署代码至nginx服务器及PHP服务器,注意nginx和PHP服务器配置的服务目录分别是/usr/local/nginx/html/webphp和/var/www/html/webphp
nginx端部署代码yum install -y svn ??????//安装svncd /usr/local/nginx/html/webphp ?????svn co svn://192.168.43.230/webphp ???????//根据提示先输root密码再使用账户sysadmin登录,即可部署代码取出版本 2。ls ?????//当前目录下可查看到webphp文件夹
PHP服务器的部署方式与Nginx服务器类似
实验完成,可进行测试
也可以在宿主机上安装SVN的Windows客户端,然后导入代码
社交网站部署——SVN服务器搭建并发布上线
原文地址:http://blog.51cto.com/13641879/2151787