项目案例:部署社交网站


前言:本次项目是搭建一套动态网站服务器平台,在上面运行社交网站(例如:人人网,开心网,天涯论坛)。相关知识点在前面的课程中都有所涉及,今天的实验就是一个综合运用,体现了真实的项目实施流程和思路。本次实验有一个新的知识点,就是SVN服务器,SVN服务器可以统一存储程序员开发的代码,避免代码混乱,说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的,有点类似于文件服务器,但是比文件服务器要更安全,有利于多人维护,避免工作协调出现问题。此外,我们今天的环境要实现nginx、php、mysql的分离,这样有助于环境的优化,提升性能和安全性。


一、项目说明
1、搭建SVN服务器
2、部署nginx服务器,用于处理静态网页
3、部署php服务器,用于处理动态网页
4、部署mysql服务器,用于动态网站数据库存储
5、配置nginx和php,使用svn发布开发好的网站
6、在客户机上浏览网站



二、实验拓扑

部署社交网站_第1张图片


三、搭建svn服务器


1、安装svn(默认已经装好)

wKioL1nMXw3yhzQZAABJFaVHx10453.png-wh_50


2、为PHP程序员创建仓库目录repo(用于统一存储开发数据)

wKiom1nMX2jiXzQgAABu9amuvzQ589.png-wh_50

3、调整svn参数
Vim /opt/svn/repo/conf/svnserve.conf

wKiom1nMX_KRm30RAAA4ONtQEMU950.png-wh_50

上图解释:
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)

部署社交网站_第2张图片

5、为PHP程序员YDW建立用户,配置对repo仓库具有读写权限,并将账户信息及仓库目录信息反馈给PHP程序员。

wKiom1nMYGqQeD1CAABDsIdDA44418.png-wh_50

创建账户密码文件,用于客户端同步时候的身份验证

部署社交网站_第3张图片

创建权限配置文件,设置读写权限

部署社交网站_第4张图片


部署社交网站_第5张图片

建立用户存储开发数据的子目录webphp,并初始化svn目录

wKiom1nMYUahtKd6AABOmwSiXmw608.png-wh_50

在win7上安装svn客户端软件

部署社交网站_第6张图片

打开软件:


部署社交网站_第7张图片

输入svn服务器地址

部署社交网站_第8张图片

在win7上用记事本制作网页test1.html

wKioL1nMYiCwEXiAAAAPeyoAiEA283.png-wh_50


然后拖到webphp文件夹中

部署社交网站_第9张图片

在nginx服务器上进行同步

部署社交网站_第10张图片

在php服务器上同步

部署社交网站_第11张图片

上图可以看出,已经从svn服务器同步到nginx和php服务器


四、部署nginx服务器192.168.0.10
1、安装nginx服务器

wKiom1nMYwCS1To7AAA8AdWTFX0462.png-wh_50

部署社交网站_第12张图片

wKioL1nMY7_jtOSfAAAU8aJFE5M355.png-wh_50

2、修改nginx配置
1)配置后端PHP程序的fastcgi访问接口
Vim /usr/local/nginx/conf/nginx.conf

或者yum安装 Vim /usr/local/nginx/cond/defautlt.conf

部署社交网站_第13张图片

部署社交网站_第14张图片



2)优化并开启服务

部署社交网站_第15张图片

五、部署PHP服务器192.168.0.12
1、安装php
1)安装支持包

部署社交网站_第16张图片


2)建立用户


3)拷贝mysql模块到/usr/lib下(因为php默认去/usr/lib搜索libmysqlclient.so)


4)编译安装PHP

部署社交网站_第17张图片

部署社交网站_第18张图片

部署社交网站_第19张图片

部署社交网站_第20张图片

3、启动php-fpm

部署社交网站_第21张图片


4、建立网站主目录,并且编写php测试页

部署社交网站_第22张图片

5、访问测试页

部署社交网站_第23张图片

6、然后在nginx网站主目录里面制作静态网页index.html

部署社交网站_第24张图片


说明静态网页由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。