分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

搭建SVN,部署社交网站

发布时间:2023-09-06 02:16责任编辑:顾先生关键词:SVN
概述:
社交网站的第一个版本部署在LNMP平台之上,前段为Nginx服务器,通过fastcgi协议访问后端的PHP服务器。为了保证数据安全,要求搭建MySQL数据库主从集群。

项目介绍:

本项目案例结合SVN、LNMP和MySQL三种环境,部署一个社交网站,本社交网站采用PHP语言开发,搭建SVN服务器进行版本控制和集中管理PHP程序员开发的代码,以Nginx作为前端服务器,通过fastcgi协议访问后端的PHP服务器,调用PHP页面;为保证数据安全,搭建MySQL主从复制环境存储用户重要数据;另外搭建MFS分布式文件系统来存储用户照片。

项目实验图解:

项目案例拓扑图:

网络关系原理如下图所示:

案例实施步骤:

* 部署SVN服务器,为PHP程序员创建repo目录的访问账户,通知程序员可以导入代码。* 部署MySQL主从服务器,根据PHP程序员的要求创建数据库与表。* 部署Nginx服务器。* 部署PHP服务器。* 部署MFS,将MFS文件系统挂载在前端PHP服务器的相关目录下。* 通知上线部署人员可以发布上线。* 保证数据库服务、PHP服务、Nginx服务依次启动,并通知测试人员开始测试,网站维护人员检查Nginx、PHP与数据库服务器是否正常工作。

接下来部署实验:

环境准备:

主机操作系统IP地址主要软件
NginxCentOS7.5 x86_64172.20.10.9nginx-1.12.0.tar.gz
PHPCentOS7.5 x86_64172.20.10.10php-5.6.11.tar.bz2/ mfs-1.6.27-5.tar.gz/fuse-2.9.2.tar.gz
MySQL MasterCentOS7.5 x86_64172.20.10.11mysql-5.5.24.tar.gz
MySQL SlaveCentOS7.5 x86_64172.20.10.12mysql-5.5.24.tar.gz
Master ServerCentOS7.5 x86_64172.20.10.13mfs-1.6.27-5.tar.gz
MetaLoggerCentOS7.5 x86_64172.20.10.14mfs-1.6.27-5.tar.gz
Chunk Server01CentOS7.5 x86_64172.20.10.2mfs-1.6.27-5.tar.gz
Chunk Server02CentOS7.5 x86_64172.20.10.3mfs-1.6.27-5.tar.gz
SVNCentOS7.5 x86_64172.20.10.4subversion 1.7.14

实验过程:

  • 部署SVN服务器

安装SVN:

* ?systemctl stop firewalld.service* setenforce 0* yum install -y subversion ???#安装SVN* svnserve --version ?#查看版本

为PHP程序员创建仓库 目录repo:

* mkdir -p /opt/svn/repo/ ??????????#创建目录* svnadmin create /opt/svn/repo/ ???????#创建一个新的仓库


调整SVN参数:

* [general] ???#总体配置* vim /opt/svn/repo/conf/svnserve.conf ???????# ??修改配置* 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/* netstat -tunlp | grep svnserve ?#监听端口3690


接下来为PHP程序员创建账户并赋权:

* vim /opt/svn/repo/conf/passwd* [users]* zhangsan = abc123 ????????#格式:用户名=用户密码* sysadmin = abc123
* vim /conf/authz* [/]* zhangsan = r ?????????#根目录即/opt/svn/repo目录下,zhangsan和sysadmin具有读的权限* sysadmin = r* [/webphp]* zhangsan = rw ?????#zhangsan和sysadmin用户对此目录有读写的权限,用户导入PHP代码* sysadmin = ?rw ???????
* mkdir /opt/svn/repo/webphp* svn import webphp/ file:///opt/svn/repo/webphp -m "初始化svn目录"
  • 部署MySQL主从服务器
    这里安装两台MySQL服务器直接用如下写好的shell脚本执行自动安装启动:

    #!/bin/bashyum -y install ncurses-devel cmake gcc gcc-c++ ncurses bison libaio-develcd ~/tar xzvf mysql-5.5.24.tar.gzcd mysql-5.5.24/cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/home/mysql/ -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_SSL=system -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1 -DWITH_SSL=bundled make && make install\cp support-files/my-medium.cnf /etc/my.cnfcp support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqld ??????chkconfig --add mysqldchkconfig --level 35 mysqld on echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profilesource /etc/profileuseradd -s /sbin/nologin mysqlchown -R mysql.mysql /usr/local/mysql/usr/local/mysql/scripts/mysql_install_db --user=mysql --ldata=/var/lib/mysql --basedir=/usr/local/mysql --datadir=/home/mysql sed -i ‘46c basedir=/usr/local/mysql‘ /etc/init.d/mysqldsed -i ‘47c datadir=/home/mysql‘ /etc/init.d/mysqldservice mysqld startnetstat -anpt | grep 3306

    执行脚本安装完成、启动之后查看监听端口:

    修改MySQL主服务器配置文件:

    登录MySQL程序,给从服务器授权:

    主服务器上给PHP授权:

    接下来修改MySQL从服务器配置文件:

    启动从服务器之后查看监听端口:

    登录MySQL从服务器配置同步:

    在从服务器中可以验证,可以查看到从主服务器上同步过来的库daima:

  • 部署Nginx服务器
    这里安装Nginx服务器直接用如下写好的shell脚本执行自动安装启动:

    #!/bin/bashyum -y install pcre-devel zlib-devel gcc gcc-c++ makeuseradd -M -s /sbin/nologin nginxtar xzvf nginx-1.12.0.tar.gz -C /optcd /opt/nginx-1.12.0/./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module make && make installln -s /usr/local/nginx/sbin/* /usr/local/sbin/nginx ??netstat -antp | grep nginx

    安装完成之后修改nginx配置文件:

  • 部署PHP服务器
    这里安装配置PHP服务器直接用如下写好的shell脚本执行自动安装启动:#!/bin/bashyum -y install gd libxml2-devel libjpeg-devel libpng-devel zlib-devel fontconfig-devel openssl-devel bzip2-develcd ~/tar xjvf php-5.6.11.tar.bz2 cd php-5.6.11/./configure --prefix=/usr/local/php5 --with-gd --with-zlib -with-config-file-path=/usr/local/php5 --enable-mbstring --with-jpeg-dir=/usr/lib --with-openssl --disable-ipv6 --enable-fpm make && make installcp php.ini-development /usr/local/php5/php.iniln -s /usr/local/php5/bin/* /usr/local/bin/ln -s /usr/local/php5/sbin/* /usr/local/sbin/#配置php识别加速器cd ~/tar xzvf ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gzcd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.xcp ZendGuardLoader.so /usr/local/php5/lib/phpsed -i ‘$a [Zend Guard Loader]\nzend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so\nzend_loader.enable=1‘ ?/usr/local/php5/php.ini#开启nginx的php支持cd /usr/local/php5/etc/cp ?php-fpm.conf.default php-fpm.confuseradd -M -s /sbin/nologin php sed -i ‘25s/;//g‘ /usr/local/php5/etc/php-fpm.confsed -i ‘149,150s/nobody/php/g‘ /usr/local/php5/etc/php-fpm.confsed -i ‘235s/5/50/g‘ /usr/local/php5/etc/php-fpm.confsed -i ‘240s/2/20/g‘ /usr/local/php5/etc/php-fpm.confsed -i ‘245s/1/5/g‘ /usr/local/php5/etc/php-fpm.confsed -i ‘250s/3/35/g‘ /usr/local/php5/etc/php-fpm.confsed -i ‘/^listen/c listen = 0.0.0.0:9000‘ /usr/local/php5/etc/php-fpm.conf/usr/local/sbin/php-fpmnetstat -tnal | grep 9000mkdir -p /var/www/html

    提示:安装完成之后shell脚本执行已经改好了配置,我们可以通过以下图示看一下:




配置加速器:

启动PHP-fpm进程 ?/usr/local/php/sbin/php-fpm ?然后查看监听端口:

  • 部署MFS
* ?安装环境包:* yum install -y zlib-devel gcc gcc-c++ ?????????????#安装所需的环境包* useradd mfs -s /sbin/nologin ?????????????????????????#创建用户mfs
* 解压下载好的软件包并进行手工编译安装:* * tar zxvf mfs-1.6.27-5.tar.gz -C /opt/* cd mfs-1.6.27 ????????????????????#切换到opt/mfs-1.6.27下插入如下配置* ./configure --prefix=/usr/local/mfs --with-default-user=mfs \ ??????????--with-default-group=mfs --disable-mfschunkserver --disable-mfsmount* make && make install
* 切换到配置文件下复制并去掉模板的dist后缀,开启配置文件:* cd /usr/local/mfs/etc/mfs/ ?????cp mfsmaster.cfg.dist mfsmaster.cfg ?????cp mfsexports.cfg.dist mfsexports.cfg ?cp mfstopology.cfg.dist mfstopology.cfg* cd /usr/local/mfs/var/mfs/ ?cp metadata.mfs.empty metadata.mfs
* ??关闭防火墙、关闭增强性安全功能:* systemctl stop firewalld.service* setenforce 0* ?/usr/local/mfs/sbin/mfsmaster start ???#开启服务* ps -ef | grep mfs ???????#查看监听状态* /usr/local/mfs/sbin/mfsmaster -s ?#停止

到此master server已经搭建完成,接下来搭建metalogger server:

* 安装编译环境、关闭防火墙、关闭增强性安全功能:* ?yum install -y zlib-devel gcc gcc-c++* systemctl stop firewalld.service* setenforce 0

创建mfs用户,解压软件包进行手工编译:

* useradd -s /sbin/nologin mfs* tar xzvf mfs-1.6.27-5.tar.gz -C /opt/* cd mfs-1.6.27./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfschunkserver --disable-mfsmount* make && make install

切换到配置文件下复制并去掉模板的dist后缀,开启配置文件:

* cd /usr/local/mfs/etc/mfs/cp mfsmaster.cfg.dist mfsmaster.cfgcp mfsexports.cfg.dist mfsexports.cfgcp mfsmetalogger.cfg.dist mfsmetalogger.cfg
* vim mfsmetalogger.cfgMASTER_HOST = 172.20.10.13 ????去掉#注释 添加主机地址
* cd /usr/local/mfs/var/mfs ?mv metadata.mfs.empty metadata.mfs* /usr/local/mfs/sbin/mfsmetalogger start ???#开启服务

到此metalogger server已经搭建完成,接下来搭建两台节点服务器 chunk server
先搭建第一台chunk server:

* systemctl stop firewalld.service* setenforce 0* yum install -y zlib-devel gcc gcc-c++* useradd -s /sbin/nologin mfs* tar xzvf mfs-1.6.27-5.tar.gz -C /opt/
* cd /opt/mfs-1.6.27./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfsmount* make && make install
* cd /usr/local/mfs/etc/mfs/ ?cp mfschunkserver.cfg.dist mfschunkserver.cfg ?cp mfshdd.cfg.dist mfshdd.cfg
* vim mfschunkserver.cfg ???MASTER_HOST = 172.20.10.13 ?????去掉#注释 添加主机地址* vim mfshdd.cfg ??/data ??????????????#末尾添加`` 提供存储空间* mkdir /data* chown -R mfs:mfs /data* /usr/local/mfs/sbin/mfschunkserver start* netstat -ntap * 提示: 第一台 chunk server搭建完成,第二台和第一台安装配置是一样的,这里就不再写了。


接下来配置PHP客户端:

* systemctl stop firewalld.service* setenforce 0* yum install -y zlib-devel* tar xzvf fuse-2.9.2.tar.gz -C /opt/
* cd /opt/fuse-2.9.2 ?./configure* make && make install 
* vim /etc/profile ?export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH ?#末尾插入* source /etc/profile
* 安装mfs客户端:* useradd mfs -s /sbin/nologin* tar zxvf mfs-1.6.27-5.tar.gz -C /opt/* cd /opt/mfs-1.6.27./configure --prefix=/usr/local/mfs --with-default-user=mfs --with-default-group=mfs --disable-mfsmaster --disable-mfschunkserver --enable-mfsmount* make && make install 
* mkdir /opt/mfs* modprobe fuse ?#加载fuse模块到内核* /usr/local/mfs/bin/mfsmount /opt/mfs -H 172.20.10.13 ??#指向master主机* df -hT ??#查看挂载
* 优化客户端:* vim /etc/profile* export PATH=/usr/local/mfs/bin:$PATH ??????#设置环境变量 在末尾插入* cd /opt/mfs(可在mfs里写入内容进行验证:echo "this is test" > test.txt)* source /etc/profile ???#重新加载* mfsgetgoal -r 2 /opt/mfs/ ???????#复制2份文件


最后一步在master server启动监控程序:

* /usr/local/mfs/sbin/mfscgiserv* http://172.20.10.13:9425 ???????#客户端浏览器上进行访问测试

最后映射SVN仓库webphp服务目录到Nginx和PHP服务器的webphp目录上:

Nginxf服务器上:


PHP服务器上:

测试PHP、解析MySQL:


搭建SVN,部署社交网站

原文地址:http://blog.51cto.com/13721050/2288064

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved