项目案例:部署社交网站
前言:本次项目是搭建一套动态网站服务器平台,在上面运行社交网站(例如:人人网,开心网,天涯论坛)。相关知识点在前面的课程中都有所涉及,今天的实验就是一个综合运用,体现了真实的项目实施流程和思路。本次实验有一个新的知识点,就是SVN服务器,SVN服务器可以统一存储程序员开发的代码,避免代码混乱,说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的,有点类似于文件服务器,但是比文件服务器要更安全,有利于多人维护,避免工作协调出现问题。此外,我们今天的环境要实现nginx、php、mysql的分离,这样有助于环境的优化,提升性能和安全性。
一、项目说明
1、搭建SVN服务器
2、部署nginx服务器,用于处理静态网页
3、部署php服务器,用于处理动态网页
4、部署mysql服务器,用于动态网站数据库存储
5、配置nginx和php,使用svn发布开发好的网站
6、在客户机上浏览网站
二、实验拓扑
650) this.width=650;" title="2017-09-28_102838.png" alt="wKiom1nMXurwXUbhAABn6XZs4l4229.png-wh_50" src="https://s5.51cto.com/wyfs02/M00/07/99/wKiom1nMXurwXUbhAABn6XZs4l4229.png-wh_500x0-wm_3-wmp_4-s_735339614.png" />
三、搭建svn服务器
1、安装svn(默认已经装好)
650) this.width=650;" title="2017-09-28_103143.png" alt="wKioL1nMXw3yhzQZAABJFaVHx10453.png-wh_50" src="https://s4.51cto.com/wyfs02/M00/A6/4B/wKioL1nMXw3yhzQZAABJFaVHx10453.png-wh_500x0-wm_3-wmp_4-s_3219016064.png" />
2、为PHP程序员创建仓库目录repo(用于统一存储开发数据)
650) this.width=650;" title="2017-09-28_103217.png" alt="wKiom1nMX2jiXzQgAABu9amuvzQ589.png-wh_50" src="https://s3.51cto.com/wyfs02/M02/07/9A/wKiom1nMX2jiXzQgAABu9amuvzQ589.png-wh_500x0-wm_3-wmp_4-s_4200069496.png" />
3、调整svn参数
Vim /opt/svn/repo/conf/svnserve.conf
650) this.width=650;" title="2017-09-28_103430.png" alt="wKiom1nMX_KRm30RAAA4ONtQEMU950.png-wh_50" src="https://s3.51cto.com/wyfs02/M01/07/9A/wKiom1nMX_KRm30RAAA4ONtQEMU950.png-wh_500x0-wm_3-wmp_4-s_2272301088.png" />
650) this.width=650;" title="2017-09-28_103514.png" alt="wKiom1nMYBrApJAXAAGSZYQRUpE272.png-wh_50" src="https://s1.51cto.com/wyfs02/M02/07/9A/wKiom1nMYBrApJAXAAGSZYQRUpE272.png-wh_500x0-wm_3-wmp_4-s_3589342374.png" />
上图解释:
Anon-access = none //匿名用户没有任何权限
Auth-access = write //认证用户具有写权限
Password-db = /opt/svn/repo/conf/passwd //用户的密码文件
Authz-db = /opt/svn/repo/conf/authz //用户信息文件
4、启动svn服务(停止svnserve使用killall -9 svnserve)
650) this.width=650;" title="2017-09-28_103557.png" alt="wKiom1nMYESiMWydAABiF3lsIYs314.png-wh_50" src="https://s4.51cto.com/wyfs02/M01/07/9A/wKiom1nMYESiMWydAABiF3lsIYs314.png-wh_500x0-wm_3-wmp_4-s_2083904452.png" />
5、为PHP程序员YDW建立用户,配置对repo仓库具有读写权限,并将账户信息及仓库目录信息反馈给PHP程序员。
650) this.width=650;" title="2017-09-28_103635.png" alt="wKiom1nMYGqQeD1CAABDsIdDA44418.png-wh_50" src="https://s2.51cto.com/wyfs02/M00/07/9A/wKiom1nMYGqQeD1CAABDsIdDA44418.png-wh_500x0-wm_3-wmp_4-s_370163136.png" />
创建账户密码文件,用于客户端同步时候的身份验证
650) this.width=650;" width="526" height="422" title="2017-09-28_103736.png" style="width:404px;height:349px;" alt="wKiom1nMYLqjoOcHAAAvkqVq18c391.png-wh_50" src="https://s4.51cto.com/wyfs02/M00/07/9A/wKiom1nMYLqjoOcHAAAvkqVq18c391.png-wh_500x0-wm_3-wmp_4-s_3490918985.png" />
创建权限配置文件,设置读写权限
650) this.width=650;" title="2017-09-28_103842.png" alt="wKiom1nMYOqBmox_AAATXtfGjwU025.png-wh_50" src="https://s4.51cto.com/wyfs02/M01/07/9A/wKiom1nMYOqBmox_AAATXtfGjwU025.png-wh_500x0-wm_3-wmp_4-s_70558086.png" />
650) this.width=650;" width="525" height="357" title="2017-09-28_103915.png" style="width:424px;height:317px;" alt="wKioL1nMYMujdga_AAAnZ5V9ofM119.png-wh_50" src="https://s3.51cto.com/wyfs02/M00/A6/4B/wKioL1nMYMujdga_AAAnZ5V9ofM119.png-wh_500x0-wm_3-wmp_4-s_2649346503.png" />
建立用户存储开发数据的子目录webphp,并初始化svn目录
650) this.width=650;" title="2017-09-28_104011.png" alt="wKiom1nMYUahtKd6AABOmwSiXmw608.png-wh_50" src="https://s3.51cto.com/wyfs02/M02/07/9A/wKiom1nMYUahtKd6AABOmwSiXmw608.png-wh_500x0-wm_3-wmp_4-s_4109098741.png" />
在win7上安装svn客户端软件
650) this.width=650;" width="526" height="413" title="2017-09-28_104048.png" style="width:371px;height:316px;" alt="wKiom1nMYhDjTOlQAAC9R0AU_BA711.png-wh_50" src="https://s4.51cto.com/wyfs02/M01/07/9A/wKiom1nMYhDjTOlQAAC9R0AU_BA711.png-wh_500x0-wm_3-wmp_4-s_54767509.png" />
打开软件:
650) this.width=650;" width="526" height="522" title="2017-09-28_104100.png" style="width:488px;height:345px;" alt="wKioL1nMYeKQ1cfDAAA850-kDYY229.png-wh_50" src="https://s4.51cto.com/wyfs02/M00/A6/4C/wKioL1nMYeKQ1cfDAAA850-kDYY229.png-wh_500x0-wm_3-wmp_4-s_4143443084.png" />
输入svn服务器地址
650) this.width=650;" title="2017-09-28_104112.png" alt="wKiom1nMYjeCGAuKAAAT-eD5Z34957.png-wh_50" src="https://s3.51cto.com/wyfs02/M02/07/9A/wKiom1nMYjeCGAuKAAAT-eD5Z34957.png-wh_500x0-wm_3-wmp_4-s_772498940.png" />
650) this.width=650;" title="2017-09-28_104219.png" alt="wKiom1nMYkORLMjaAABvvEQl8-E990.png-wh_50" src="https://s1.51cto.com/wyfs02/M01/07/9A/wKiom1nMYkORLMjaAABvvEQl8-E990.png-wh_500x0-wm_3-wmp_4-s_948431759.png" />
在win7上用记事本制作网页test1.html
650) this.width=650;" title="2017-09-28_104454.png" alt="wKioL1nMYiCwEXiAAAAPeyoAiEA283.png-wh_50" src="https://s2.51cto.com/wyfs02/M02/A6/4C/wKioL1nMYiCwEXiAAAAPeyoAiEA283.png-wh_500x0-wm_3-wmp_4-s_2006466701.png" />
然后拖到webphp文件夹中
650) this.width=650;" title="2017-09-28_104523.png" alt="wKioL1nMYjvSdmxeAAB9S3qMQzY455.png-wh_50" src="https://s3.51cto.com/wyfs02/M00/A6/4C/wKioL1nMYjvSdmxeAAB9S3qMQzY455.png-wh_500x0-wm_3-wmp_4-s_3745440803.png" />
在nginx服务器上进行同步
650) this.width=650;" title="2017-09-28_104600.png" alt="wKiom1nMYp_g_s6WAAE6N8N95oY979.png-wh_50" src="https://s5.51cto.com/wyfs02/M01/07/9A/wKiom1nMYp_g_s6WAAE6N8N95oY979.png-wh_500x0-wm_3-wmp_4-s_1775716089.png" />
在php服务器上同步
650) this.width=650;" title="2017-09-28_104647.png" alt="wKiom1nMYtjgqA2PAAFEbTqvkmo433.png-wh_50" src="https://s5.51cto.com/wyfs02/M00/07/9A/wKiom1nMYtjgqA2PAAFEbTqvkmo433.png-wh_500x0-wm_3-wmp_4-s_414735637.png" />
上图可以看出,已经从svn服务器同步到nginx和php服务器
四、部署nginx服务器192.168.0.10
1、安装nginx服务器
650) this.width=650;" title="2017-09-28_104735.png" alt="wKiom1nMYwCS1To7AAA8AdWTFX0462.png-wh_50" src="https://s3.51cto.com/wyfs02/M02/07/9A/wKiom1nMYwCS1To7AAA8AdWTFX0462.png-wh_500x0-wm_3-wmp_4-s_3147022287.png" />
650) this.width=650;" title="2017-09-28_104830.png" alt="wKioL1nMY7TgS0hWAADxtFoztOE859.png-wh_50" src="https://s2.51cto.com/wyfs02/M00/A6/4C/wKioL1nMY7TgS0hWAADxtFoztOE859.png-wh_500x0-wm_3-wmp_4-s_3044723418.png" />
650) this.width=650;" title="2017-09-28_104858.png" alt="wKioL1nMY7_jtOSfAAAU8aJFE5M355.png-wh_50" src="https://s2.51cto.com/wyfs02/M01/A6/4C/wKioL1nMY7_jtOSfAAAU8aJFE5M355.png-wh_500x0-wm_3-wmp_4-s_1533495865.png" />
2、修改nginx配置
1)配置后端PHP程序的fastcgi访问接口
Vim /usr/local/nginx/conf/nginx.conf
或者yum安装 Vim /usr/local/nginx/cond/defautlt.conf
650) this.width=650;" title="2017-09-28_105241.png" alt="wKiom1nMZDCS3_AKAABo6geOzvY232.png-wh_50" src="https://s2.51cto.com/wyfs02/M00/07/9A/wKiom1nMZDCS3_AKAABo6geOzvY232.png-wh_500x0-wm_3-wmp_4-s_3716674214.png" />
650) this.width=650;" title="2017-09-28_105321.png" alt="wKiom1nMZFyRfkUqAADNiN0lDXk657.png-wh_50" src="https://s5.51cto.com/wyfs02/M01/07/9A/wKiom1nMZFyRfkUqAADNiN0lDXk657.png-wh_500x0-wm_3-wmp_4-s_3867867691.png" />
2)优化并开启服务
650) this.width=650;" title="2017-09-28_105401.png" alt="wKioL1nMZETBSSiXAACVonHPzXU938.png-wh_50" src="https://s4.51cto.com/wyfs02/M00/A6/4C/wKioL1nMZETBSSiXAACVonHPzXU938.png-wh_500x0-wm_3-wmp_4-s_2313712584.png" />
五、部署PHP服务器192.168.0.12
1、安装php
1)安装支持包
650) this.width=650;" title="2017-09-28_105450.png" src="https://s2.51cto.com/wyfs02/M00/A6/4C/wKioL1nMZKixN7NcAADJhN4poIc194.png-wh_500x0-wm_3-wmp_4-s_2949951486.png" alt="wKioL1nMZKixN7NcAADJhN4poIc194.png-wh_50" />
2)建立用户
3)拷贝mysql模块到/usr/lib下(因为php默认去/usr/lib搜索libmysqlclient.so)
4)编译安装PHP
650) this.width=650;" title="2017-09-28_105636.png" src="https://s4.51cto.com/wyfs02/M01/07/9A/wKiom1nMZR7Tv5-XAADkIyS0y1g669.png-wh_500x0-wm_3-wmp_4-s_3216809905.png" alt="wKiom1nMZR7Tv5-XAADkIyS0y1g669.png-wh_50" />
650) this.width=650;" title="2017-09-28_105740.png" src="https://s4.51cto.com/wyfs02/M00/07/9A/wKiom1nMZWqS_JiDAABf3c6fEf4497.png-wh_500x0-wm_3-wmp_4-s_492439555.png" alt="wKiom1nMZWqS_JiDAABf3c6fEf4497.png-wh_50" />
650) this.width=650;" title="2017-09-28_105832.png" src="https://s5.51cto.com/wyfs02/M01/07/9A/wKiom1nMZZGSrmA6AABheF3J1mA148.png-wh_500x0-wm_3-wmp_4-s_1739550017.png" alt="wKiom1nMZZGSrmA6AABheF3J1mA148.png-wh_50" />
650) this.width=650;" title="2017-09-28_105909.png" src="https://s3.51cto.com/wyfs02/M02/A6/4C/wKioL1nMZXXC3PoyAABz9OFEOBU491.png-wh_500x0-wm_3-wmp_4-s_692247512.png" alt="wKioL1nMZXXC3PoyAABz9OFEOBU491.png-wh_50" />
3、启动php-fpm
650) this.width=650;" title="2017-09-28_105952.png" src="https://s4.51cto.com/wyfs02/M01/07/9A/wKiom1nMZeGSD9tkAABm8CV-Cn0884.png-wh_500x0-wm_3-wmp_4-s_837533050.png" alt="wKiom1nMZeGSD9tkAABm8CV-Cn0884.png-wh_50" />
4、建立网站主目录,并且编写php测试页
650) this.width=650;" title="2017-09-28_110034.png" src="https://s5.51cto.com/wyfs02/M01/A6/4C/wKioL1nMZcrz_N9zAAAoHNXAz5o423.png-wh_500x0-wm_3-wmp_4-s_483889113.png" alt="wKioL1nMZcrz_N9zAAAoHNXAz5o423.png-wh_50" />
5、访问测试页
650) this.width=650;" title="2017-09-28_110108.png" src="https://s4.51cto.com/wyfs02/M00/A6/4C/wKioL1nMZe3D3vQ4AACKmimK678929.png-wh_500x0-wm_3-wmp_4-s_156973217.png" alt="wKioL1nMZe3D3vQ4AACKmimK678929.png-wh_50" />
6、然后在nginx网站主目录里面制作静态网页index.html
650) this.width=650;" title="2017-09-28_110215.png" src="https://s4.51cto.com/wyfs02/M02/A6/4C/wKioL1nMZjijw99oAADJkBpiYo0717.png-wh_500x0-wm_3-wmp_4-s_143090188.png" alt="wKioL1nMZjijw99oAADJkBpiYo0717.png-wh_50" />
说明静态网页由nginx服务器处理,动态网页由php服务器处理,实现了动静分离。
六、部署mysql服务器
安装步骤略(与之前的安装完全一样)
注意:如果要部署网站,则需要mysql服务器上创建数据库,并且授权
Create database xxx
Grant all privileges on xxx.* to ‘php’@’192.168.0.%’ identified by ‘123456’
七、以discuz论坛为例,在平台上部署,并最终能够浏览
操作步骤略(参考前面的文档)
注意:平时网站开发人员修改网页一般在windows系统上操作,修改完成之后通过SVN服务器上传给nginx和php。
本文出自 “李世龙” 博客,谢绝转载!
部署社交网站
原文地址:http://lwm666.blog.51cto.com/11811339/1969358