项目案例:部署社交网站


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


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



二、实验拓扑

wKiom1nMXurwXUbhAABn6XZs4l4229.png-wh_50


三、搭建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

wKiom1nMYBrApJAXAAGSZYQRUpE272.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)

wKiom1nMYESiMWydAABiF3lsIYs314.png-wh_50

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

wKiom1nMYGqQeD1CAABDsIdDA44418.png-wh_50

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

wKiom1nMYLqjoOcHAAAvkqVq18c391.png-wh_50

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

wKiom1nMYOqBmox_AAATXtfGjwU025.png-wh_50


wKioL1nMYMujdga_AAAnZ5V9ofM119.png-wh_50

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

wKiom1nMYUahtKd6AABOmwSiXmw608.png-wh_50

在win7上安装svn客户端软件

wKiom1nMYhDjTOlQAAC9R0AU_BA711.png-wh_50

打开软件:


wKioL1nMYeKQ1cfDAAA850-kDYY229.png-wh_50

输入svn服务器地址

wKiom1nMYjeCGAuKAAAT-eD5Z34957.png-wh_50

wKiom1nMYkORLMjaAABvvEQl8-E990.png-wh_50

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

wKioL1nMYiCwEXiAAAAPeyoAiEA283.png-wh_50


然后拖到webphp文件夹中

wKioL1nMYjvSdmxeAAB9S3qMQzY455.png-wh_50

在nginx服务器上进行同步

wKiom1nMYp_g_s6WAAE6N8N95oY979.png-wh_50

在php服务器上同步

wKiom1nMYtjgqA2PAAFEbTqvkmo433.png-wh_50

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


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

wKiom1nMYwCS1To7AAA8AdWTFX0462.png-wh_50

wKioL1nMY7TgS0hWAADxtFoztOE859.png-wh_50

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

wKiom1nMZDCS3_AKAABo6geOzvY232.png-wh_50

wKiom1nMZFyRfkUqAADNiN0lDXk657.png-wh_50



2)优化并开启服务

wKioL1nMZETBSSiXAACVonHPzXU938.png-wh_50

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

wKioL1nMZKixN7NcAADJhN4poIc194.png-wh_50


2)建立用户


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


4)编译安装PHP

wKiom1nMZR7Tv5-XAADkIyS0y1g669.png-wh_50

wKiom1nMZWqS_JiDAABf3c6fEf4497.png-wh_50

wKiom1nMZZGSrmA6AABheF3J1mA148.png-wh_50

wKioL1nMZXXC3PoyAABz9OFEOBU491.png-wh_50

3、启动php-fpm

wKiom1nMZeGSD9tkAABm8CV-Cn0884.png-wh_50


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

wKioL1nMZcrz_N9zAAAoHNXAz5o423.png-wh_50

5、访问测试页

wKioL1nMZe3D3vQ4AACKmimK678929.png-wh_50

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

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。