千家信息网

社交网站搭建LNMP+SVN+NFS

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,社交网站搭建详解社交网站搭建是为了管理PHP程序员开发的代码,要求待见SVN服务器进行版本控制。社交网站第一个版本部署在LNMP平台之上,前端为Nginx服务器,通过fastcgi协议访问后端PHP服
千家信息网最后更新 2025年12月01日社交网站搭建LNMP+SVN+NFS

社交网站搭建详解

社交网站搭建是为了管理PHP程序员开发的代码,要求待见SVN服务器进行版本控制。社交网站第一个版本部署在LNMP平台之上,前端为Nginx服务器,通过fastcgi协议访问后端PHP服务器,为了保证数据安全,mysql数据库搭建主从复制。

社交网站项目包含用户相册功能,允许用户上传照片,上传照片需要使用共享存储来存放。共享存储可用的开源方案有很多,如NFS,MFS,FastDFS等。本文简化存储方案,使用NFS代替MFS的功能,现网根据公司要求进行相关搭建。


本案例拓扑:

案例环境:

主机操作系统IP地址主要软件
NginxCentOS 7192.168.88.128nginx-1.14.0.tar.gz
PHPCentOS 7192.168.88.129

php-5.6.38.tar.gz

MYSQL MasterCentOS 7192.168.88.130mysql-5.6.41.tar.gz
MYSQL SlaveCentOS 7192.168.88.131mysql-5.6.41.tar.gz
SVNCentOS 7192.168.88.132yum安装
NFSRedhat 6192.168.88.133yum安装

本文所有软件使用wget和yum安装。


一、搭建Nginx

1、安装环境包

yum install gcc gcc-c++ pcre pcre-devel zlib-devel -y

2、创建Nginx用户

useradd -M -s /sbin/nologin nginx

3、下载nginx

cd /opt/ #下载到opt目录下

wget http://nginx.org/download/nginx-1.14.0.tar.gz #下载nginx

4、解压编译安装

tar zxf nginx-1.14.0.tar.gz #解压

cd nginx-1.14.0/

./configure \

--prefix=/usr/local/nginx \ #指定安装路径

--user=nginx \ #指定用户

--group=nginx \ #指定组

--with-http_stub_status_module #开启统计模块

make && make install #安装

5、优化

ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ #软链接优化


vim /etc/init.d/nginx #添加启动脚本

#!/bin/bash

#chkconfig: - 99 20

#this is nginx init

PROG="/usr/local/nginx/sbin/nginx"

PIDF="/usr/local/nginx/logs/nginx.pid"

case "$1" in

start)

$PROG

;;

stop)

kill -s QUIT $(cat $PIDF)

;;

restart)

$0 stop

$0 start

;;

reload)

kill -s HUP $(cat $PIDF)

;;

*)

echo "please use: {start|stop|restart|reload}"

exit 1

esac

exit 0

#kill -s QUIT $(cat $PIDF)表示根据PID终止Nginx进程

#kill -s HUP $(cat $PIDF)表示根据进程号重载配置

6、修改配置文件中的fastcgi访问接口,才能访问PHP页面。

vim /usr/local/nginx/conf/nginx.conf #修改配置文件

location ~ \.php$ {

root /var/www/html/webphp;

fastcgi_pass 192.168.88.131:9000;

fastcgi_index index.php;

include fastcgi.conf;

}


二、搭建MYSQL主从服务器

1、安装环境包

yum install gcc gcc-c++ make cmake ncurses-devel bison libaio-devel autoconf -y

2、下载mysql5.6

cd /opt/ #下载到opt目录下

wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.41.tar.gz #wget命令下载

3、创建mysql用户

useradd -s /sbin/nologin mysql

4、编译安装

cd mysql-5.6.41/

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/ \

-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_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 #安装

5、优化

cp support-files/my-default.cnf /etc/my.cnf # 复制配置文件

cp support-files/mysql.server /etc/init.d/mysqld # 复制启动脚本

vim /etc/init.d/mysqld #修改启动脚本

basedir=/usr/local/mysql

datadir=/home/mysql

chmod +x /etc/init.d/mysqld #添加执行权限

chkconfig --add mysqld #添加至启动项

chkconfig --level 35 mysqld on #35 模式启动

echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile #添加环境变量

source /etc/profile #刷新环境变量

chown -R mysql.mysql /usr/local/mysql #改mysql安装目录的属主属组

6、初始化数据库

/usr/local/mysql/scripts/mysql_install_db \

--user=mysql \

--ldata=/var/lib/mysql \

--basedir=/usr/local/mysql \

--datadir=/home/mysql

ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock #建立sock文件软链接

7、启动两台mysql服务器

service mysql start

8、修改主从服务器配置文件

主服务器)

vim /etc/my.cnf

[mysqld] #mysqld模块下添加

server-id = 11

log-bin=/usr/local/mysql/data/master-bin #指定日志文件位置

log-slave-updates=true #从服务器可以读取主服务器内容

service mysqld restart #重启mysql

从服务器)

vim /etc/my.cnf

[mysqld] #mysqld模块下添加

server-id = 22

log-bin=/usr/local/mysql/data/slave-bin

relay-log=realy-log-bin

relay-log-index=slave-relay-bin.index

service mysqld restart #重启mysql

9、建立mysql主从关系

主服务器)

mysql> grant replication slave on *.* to 'myslave'@'192.168.88.%' identified by '123123'; #提权

mysql> show master status; #查看主服务器master状态

+-------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+-------------------+----------+--------------+------------------+-------------------+

| master-bin.000001 | 411 | | | |

+-------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

从服务器)

mysql> change master to master_host='192.168.88.129',master_user='myslave',master_password=='123123',

master_log_file='master-bin.000001',master_log_pos=411;

mysql> start slave; #开始slave

Query OK, 0 rows affected (0.04 sec)

mysql> show slave status\G; #查看主从状态,查看下面两行为yes主从同步成功

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

三、搭建PHP服务器

1、安装环境包

yum -y install gd libxml2-devel libjpeg-devel libpng-devel zlib-devel fontconfig-devel openssl-devel bzip2-devel gcc gcc-c++ -y

2、下载php

wget http://101.96.10.64/cn2.php.net/distributions/php-5.6.38.tar.gz #wget命令下载

3、编译安装

./configure --prefix=/usr/local/php-fpm \

--enable-fpm --with-zlib \

--with-pdo-mysql \

--enable-mbstring \

--with-gd --with-png-dir=/usr/lib64 \

--with-jpeg-dir=/usr/lib64 \

--with-freetype-dir=/usr/lib64

make && make install #安装

4、优化

cp php.ini-development /usr/local/php-fpm/php.ini #复制配置文件

ln -s /usr/local/php-fpm/bin/* /usr/local/bin/ #php命令文件软链接

ln -s /usr/local/php-fpm/sbin/* /usr/local/sbin/ #php命令文件软链接

5、为php安装加速器

tar zxf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /opt/

cd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x

cp ZendGuardLoader.so /usr/local/php-fpm/lib/php #拷贝加速器模块到php目录下

6、php识别加速器

vim /usr/local/php-fpm/php.ini #修改配置文件,添加如下三行

[Zend Guard Loader]

zend_extension=/usr/local/php-fpm/lib/php/ZendGuardLoader.so

zend_loader.enable=1

7、开启Nginx的php支持

cd /usr/local/php-fpm/etc

cp php-fpm.conf.default php-fpm.conf #复制配置文件模板

vi php-fpm.conf #修改如下内容

pid = run/php-fpm.pid

user = php

group = php

pm.max_children=50

pm.start_servers = 20

pm.min_spare_servers = 5

pm.max_spare_servers = 35

listen = 0.0.0.0:9000 #监听所有端口

8、创建php用户,启动服务

useradd -M -s /sbin/nologin php #创建php用户

/usr/local/sbin/php-fpm #启动服务

[root@localhost etc]# netstat -ntap | grep php #查看9000端口

tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 15183/php-fpm: mast

9、建立php站点

mkdir -p /var/www/html/webphp

cd /var/www/html/webphp

echo "THIS IS PHP-NGINX TEST" >index.php #创建站点首页

10、测试,访问http://192.168.88.128/index.php

四、搭建SVN服务器


1、安装SVN

yum install subversion -y #安装SVN

[root@localhost ~]# svnserve --version #查看版本信息

svnserve,版本 1.7.14 (r1542130)

编译于 Apr 11 2018,02:40:28

版权所有 (C) 2013 Apache 软件基金会。

此软件包含了许多人的贡献,请查看文件 NOTICE 以获得更多信息。

Subversion 是开放源代码软件,请参阅 http://subversion.apache.org/ 站点。

2、创建SVN仓库

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

svnadmin create /opt/svn #svnadmin命令将该目录作为仓库

[root@localhost ~]# ls /opt/svn/ #查看svn仓库

conf db format hooks locks README.txt

3、SVN配置文件设置

vim /opt/svn/conf/svnserve.conf #修改配置文件

anon-access = none

auth-access = write

password-db = /opt/svn/conf/passwd

authz-db = /opt/svn/conf/authz

4、配置passwd和authz文件

vim /opt/svn/conf/passwd

[users]

# harry = harryssecret

# sally = sallyssecret

phpuser = 123123 #添加用户和密码


vim /opt/svn/conf/authz #末行添加如下内容

[/]

phpuser = r #在/opt/svn目录下有读取权限

[/webphp]

phpuser = rw #对webphp有读写权限,用于上传下载

5、开启SVN服务

[root@localhost svn]# svnserve -d -r /opt/svn #关闭svn使用kill命令杀死进程

[root@localhost svn]# netstat -ntap | grep svn #查看端口

tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 39725svnserve

6、创建webphp目录,初始化webphp目录

cd /opt/svn #在/opt/svn下创建

mkdir webphp #创建webphp目录

[root@localhost svn]# cd webphp/

[root@localhost webphp]# touch test.txt #webphp下写入内容

[root@localhost webphp]# ls #查看文件

test.txt

[root@localhost svn]# svn import webphp file:///opt/svn/repo/webphp -m "初始化" #初始化webphp目录

正在增加 webphp/test.txt

提交后的版本为 1。

7、测试SVN

yum install subversion -y #先安装svn

切换到nginx服务器,在/usr/local/nginx/html下

svn cp svn://192.168.88.132/webphp

SVN测试成功

五、 搭建NFS服务器

1、开启rpcbind和nfs服务

service rpcbind start

service nfs start

2、修改配置文件

vim /etc/exports

/opt/php * (rw,sync) #所有主机可挂载/opt/php目录且拥有读写权限

3、创建目录,发布共享

mkdir /opt/php

exportfs -rv #发布共享

4、客户机查看

[root@localhost html]# showmount -e 192.168.88.133

Export list for 192.168.88.133:

/opt/php *

5、挂载

mount.nfs 192.168.88.133:/opt/php /var/www/html/webphp/ #挂载nfs到本地使用

若使用MFS分布式存储方式挂载请阅:https://blog.51cto.com/13760226/2286907

服务 文件 服务器 目录 配置 用户 主从 命令 环境 版本 软件 社交 网站 内容 权限 模块 链接 存储 编译 仓库 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 郑州的互联网科技公司 ims网络安全 校园网络安全竞赛试题 专科网络技术学什么学高数吗 kld数据库 维度 录像机显示无法连接到服务器 如何进行网络安全范 上海应用软件开发哪家公司好 深圳美鹰软件开发 中国工具书资源全文数据库 网络安全竞赛是什么 系统软件开发完整性保证 主题下载软件开发 云服务器怎么把文件夹安全信任 济南柏楚电子软件开发 软件开发驻场怎么样 溧水区企业app软件开发 糖豆人各个服务器的价格 获取网站后台数据库数据 智胜网络技术有限公司 2020全球网络安全大会 网络安全为人民征文300字 幼儿园网络安全教育美篇 聘请网络安全第三方机构的请示 网站服务器操作系统怎么选 域控服务器无法修改时间 数据库实用教程答案第五单元 游戏王决斗链接玩哪个服务器 自查工作总结网络安全工作计划 济南迪卡软件开发有限公司
0