某公司的社交網站採用PHP語言開發,爲了管理PHP程序員開發的代碼,上級領導要求搭建SVN服務器進行版本控制。社交網站的第一個版本部署在LNMP平臺之上,前端爲Nginx服務器,經過fastcgi協議訪問後端的PHP服務器。爲了保證數據安全,要求搭建MySQL數據庫主從集羣。php
社交網站項目包含用戶的相冊功能,容許用戶上傳照片,上傳照片須要使用共享存儲來存放。針對共享存儲可用的開源方案有不少,如MFS、FastDFS 等。公司決定使用MFS分佈式文件系統來實現,並將MFS掛載在PHP服務器的相關目錄下。html
根據公司的需求,實施過程大體分爲如下步驟。前端
yum install subversion -y //安裝SVN svnserve --version //查版本 svnserve,版本 1.7.14 (r1542130) 編譯於 Apr 11 2018,02:40:28 ......
mkdir -p /opt/svn/repo //建立目錄 svnadmin create /opt/svn/repo/ //建立新倉庫
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 //用戶信息文件 .....
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 //關閉防火牆和安全功能
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。
經過SVN服務器的sysadmin帳戶部署代碼至nginx服務器及PHP服務器,注意nginx和PHP服務器配置的服務目錄分別是/usr/local/nginx/html/webphp和/var/www/html/webphpnginx
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服務器相似程序員
實驗完成,可進行測試web