案例概述
某公司的社交网站采用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 //安装SVN
svnserve --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 PID
netst at -ntap | grep svnserve
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 3585/svnserve
systemctl stop firewalld.service
setenforce 0 //关闭防火墙和安全功能
5、为PHP程序员alpha建立账户,配置仓库具有读写权限,并将账户信息及仓库目录信息反馈给PHP程序员
cd /opt/svn/repo
vim conf/passwd //创建账户密码文件
[users]
alpha = 123123 //格式:用户名 = 用户密码
sysadmin = 123123
vim conf/authz //创建权限文件
[/]
sysadmin = r
alpha = r
[/webphp]
sysadmin = r //运维工程师账户具有读权限,用于部署
alpha = rw //alpha用户对此目录具有读写权限
mkdir webphp
svn 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 //安装svn
cd /usr/local/nginx/html/webphp
svn co svn://192.168.43.230/webphp //根据提示先输root密码再使用账户sysadmin登录,即可部署代码
取出版本 2。
ls //当前目录下可查看到webphp文件夹
PHP服务器的部署方式与Nginx服务器类似
实验完成,可进行测试
也可以在宿主机上安装SVN的Windows客户端,然后导入代码
原文地址:http://blog.51cto.com/13641879/2151787
时间: 2024-10-08 18:12:48