部署社交网站-SVN 与 LNMP架构

案例概述

公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制。社交网站的第一个版本部署在LNMP平台之上,前端为 Nginx服务器,通过 fastcgi协议访问后端的PHP服务器。为了保证数据安全,
要求搭建 MYSQL数据库主从集群。

社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享
存储来存放。针对共享存储可用的开源方案有很多,如MFS、 FastDFS等。公
使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器的相关目录司决定

案例实施

根据公司的需求,实施过程大致分为以下步骤

部署SVN服务器,为PHP程序员创建repo目录的访问账户,通知程序员可
以导入代码

部署 MYSQL主从服务器,根据PHP程序员的要求创建数据库与表

部署 Nginx服务器

使用keepalived对Nginx服务器做热备

部署PHP服务器

部署MFS,将MFS文件系统挂载在前端PHP服务器的相关目录下

通知上线部署人员可以发布上线。

保证数据库服务、PHP服务、 Nginx服务依次启动,并通知测试人员开始测试,
网站维护人员检查 Nginx、PHP与数据库服务器是否正常工作。

本篇将部署SVN 与 LNMP 架构

SVN 部署 (IP:192.168.100.101)

yum install subversion     

subversion --version   ##查看版本

mkdir -p /opt/svn/repo    ##创建目录

svnadmin create /opt/svn/repo    ##创建一个新的仓库

vim /opt/svn/repo/conf/svnserve.conf

[general]       ##总体配置
anon-access = none     ##匿名用户没有任何权限
auth-access = write     ##认证用户具有写权限
passwd-db = /opt/svn/repo/conf/passwd     ##用户的密码文件
auth-db = /opt/svn/repo/conf/authz     ##用户信息文件

!!  svnserve.conf 配置文件有严格的格式要求,每一行前面不能有空格, 等号前后也都有空格。
如果格式正确仍然无法验证,可以更改
passwd-db =passwd
auth-db = authz
设为默认路径即可

svnserve -d -r /opt/svn/repo     ##启动svn服务
netstat -tunlp | grep svnserve
3690 端口开启

如需关闭svn服务 可以通过kill PID方式

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

vim /opt/svn/repo/conf/passwd
[users]
zhangsan=abc123
## 格式   用户名=密码

vim /opt/svn/repo/conf/authz
[/]
zhangsan = r
[/webphp]
zhangsan = rw     ##zhangsan用户具有读写权限

mkdir /opt/svn/repo/webphp

svn import webphp file:///opt/svn/repo/webphp -m "init web"         ## 导入webphp

SVN部署完成, PHP程序员可以在WINDOWS / LINUX安装客户端, 然后导入代码

部署LNMP架构-Nginx 服务器 (IP : 192.168.100.102 )

yum install pcre-devel zlib-devel -y    ##安装依赖包

useradd -M -s /sbin/nologin nginx

tar xzvf nginx-1.6.0.tar.gz
cd nginx-1.6.0

./configure  --prefix=/usr/local/nginx/     ##安装目录
--user=nginx          ##用户
--group=nginx         ##用户的基本组
--with-http_stub_status_module    ##开启监控模块

vim /usr/local/nginx/conf/nginx.conf

user nginx;

location / {
    root html/webphp;
    index index.html index.htm;
}

location ~\/php$ {
    root /var/www/html/webphp;
    fastcgi_pass 192.168.100.103:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
}

##配置后端PHP程序的fastcgi访问接口

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin   ##创建软连接 系统识别命令路径

nginx     ##开启服务
netstat -ntap | grep nginx
80端口开启 即为 服务开启成功

部署LNMP架构-PHP服务器 (IP : 192.168.100.103)

yum install gd libxml2-devel libjpeg-devel libpng-devel mysql-devel -y

useradd -M -s /sbin/nologin php
tar xzvf php-5.3.28.tar.ga
cd php-5.3.28

cp /usr/lib64/mysql/libmysqlclient.so.18.0.0 /usr/lib/libmysqlclient.so
## PHP默认去 /usr/lib 搜索 libmysqlclient.so

./configure --prefix=/usr/local/php   ##安装目录
--with-gd
--with-zlib
--with-mysql
--with-mysqli
--with-mysql-sock
--with-config-file-path=/usr/local/php   ##配置文件目录
--enable-mbstring    ##配置mbstring和fpm模块
--enalbe-fpm
--with-jpeg-dir=/usr/dir

make && make install

cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf

vim php-fpm.conf

pid = run/php-fpm.pid    ##pid文件
user = php          ##用户
group = php         ##用户基本组
listen = 0.0.0.0:9000      ##监听端口
pm.max_childre = 50    ##子进程最大存在数
pm.start_servers = 20     ##服务开始时的子进程数
pm.min_spare_servers = 5    ##最小等待运行的子进程数
pm.max_spare_servers = 35   ##最大等待运行的子进程数

/usr/local/php/sbin/php-fpm     ##开启fpm模块

mkdir -p /var/www/html/webphp/

vim /var/www/html/webphp/index.php

<?
phpinfo();
?>
##编辑PHP首页

通过keepalived 对nginx 服务器做热备

备份Nging服务器 IP地址为 192.168.100.104
配置如 第一台完全一样

yum install keepalived ipvsadm -y

在主服务器上

vim /etc/keepalived/keepalived.conf

global_defs {
    router_id LVS_01    ##本路由的名称
}

vrrp_instance_VI_1 {
    state MASTER    ##热备状态 此为主服务器状态
    interface ens33   ##承载虚拟IP的物理接口
    virtual_router_id 1    ##虚拟路由的ID,同热备组应在同一ID下
    priority 100     ##优先级  数值越大级别越高
    advert_int 1    ##通告间隔秒数
    virtual_ipaddress {    ##虚拟IP
        192.168.100.200
    }

}

在备份服务器上

vim /etc/keepalived/keepalived.conf
global_defs {
    router_id LVS_02    ##本路由的名称
}

vrrp_instance_VI_1 {
    state BACKUP   ##热备状态 此为备份服务器状态
    interface ens33   ##承载虚拟IP的物理接口
    virtual_router_id 1    ##虚拟路由的ID,同热备组应在同一ID下
    priority 90     ##优先级  数值越大级别越高
    advert_int 1    ##通告间隔秒数
    virtual_ipaddress {    ##虚拟IP
        192.168.100.200
    }

}

通过 systemctl start keepalived 开启服务

测试

通过浏览器访问 Nginx 虚拟IP 192.168.100.200/index.php 能够看到PHP界面

关掉主服务器的keepalived服务 访问虚拟IP仍然可以看到PHP界面

原文地址:http://blog.51cto.com/13625924/2151642

时间: 2024-11-05 20:27:47

部署社交网站-SVN 与 LNMP架构的相关文章

部署社交网站

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

Centos7 部署社交网站(discuz论坛)

Centos7 部署社交网站(discuz论坛) 操作环境: 192.168.80.100 : svn192.168.80.101 : nginx192.168.80.102 : mariadb192.168.80.103 : php192.168.80.104 : nfs注意:为了防止不必要的错误,五台虚拟机都要联网,并且防火墙和selinux都要关闭systemctl stop firewalld //临时关闭防火墙setenforce 0 //临时关闭selinux 实验所需软件包(没有的

部署社交网站全过程(Nginx+PHP+Mysql+MFS+SVN)

案列概述 公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制.社交网站的第一个版本部署在LNMP平台上,前端为Nginx,通过fastcgi协议访问后端的PHP服务器.为了保证数据安全,要求搭建MySQL数据库主从集群.社交网站包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放.公司决定使用MFS分布式文件系统,并将MFS挂载到PHP服务器的相关目录下. 本案拓扑 案列环境 主机 操作系统 IP地址 主要软件 Nginx

搭建SVN,部署社交网站

概述: 社交网站的第一个版本部署在LNMP平台之上,前段为Nginx服务器,通过fastcgi协议访问后端的PHP服务器.为了保证数据安全,要求搭建MySQL数据库主从集群. 项目介绍: 本项目案例结合SVN.LNMP和MySQL三种环境,部署一个社交网站,本社交网站采用PHP语言开发,搭建SVN服务器进行版本控制和集中管理PHP程序员开发的代码,以Nginx作为前端服务器,通过fastcgi协议访问后端的PHP服务器,调用PHP页面:为保证数据安全,搭建MySQL主从复制环境存储用户重要数据:

部署社交网站(SVN+PHP+NGINX+MYSQL+MFS)

案例需求:社交网站采用PHP语言开发,为了管理开发代码,搭建SVN服务器进行版本控制,社交网站的第一个版本部署在LNMP平台上,前端为nginx服务器,通过fastcgi协议访问后端的PHP服务器.这里实现动静分离,动态页面交给PHP服务器来处理,静态页面交给nginx服务器来处理.为了保证数据安全,要求搭建Mysql数据库主从集群. 社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放,针对共享存储采用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器的相关目

部署社交网站- MYSQL主从 与 MFS 文件系统

案例概述 公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制.社交网站的第一个版本部署在LNMP平台之上,前端为 Nginx服务器,通过 fastcgi协议访问后端的PHP服务器.为了保证数据安全,要求搭建 MYSQL数据库主从集群. 社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放.针对共享存储可用的开源方案有很多,如MFS. FastDFS等.公使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务器

项目案例:部署社交网站

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

一篇博客让你学会部署社交网站( SVN+nginx+PHP+MySQL+MFS 内含所有源码包)

根据公司要求,实施过程大致如下:1 部署SVN服务器,为PHP程序员创建repo目录的访问账户,通知程序员可以导入代码2 部署nginx服务器3 部署PHP服务器4 部署MySQL主从服务器,根据程序员的要求创建数据库和表5 部署MFS6 发布上线 实验拓扑图如下: 实验环境:源码包链接:https://pan.baidu.com/s/1JONQrVyqH0qMwVzKmwsoxA 提取码:0zm8实验过程如下:一 部署SVN systemctl stop firewalld.service s

部署社交网站(步骤超详细)

实验具体任务要求:1:部署SVN服务器为PHP程序员创建repo目录的访问账户,通知程序员可以导入代码2:部署MySQL主从服务器,根据PHP程序员要求创建数据库与表3:部署Nginx服务器4:部署PHP服务器5:部署MFS,将MFS文件系统挂载在前端PHP服务器的相关目录下6:通知上线部署人员可以发布上线7:保住数据库服务.PHP服务.Nginx服务依次启动,并通知测试人员开始测试,网站维护人员检查Nginx.PHP与数据库服务器是否正常工作实验拓扑图:实验环境介绍:具体实验步骤: -----