社交网站搭建LNMP+SVN+NFS

建站服务器

社交网站搭建详解

晋宁网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

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

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

本案例拓扑:

案例环境:

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

php-5.6.38.tar.gz

Mysql MasterCentOS 7192.168.88.130MYSQL-5.6.41.tar.gzMYSQL SlaveCentOS 7192.168.88.131mysql-5.6.41.tar.gzSVNCentOS 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 # 复制启动脚本

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


本文名称:社交网站搭建LNMP+SVN+NFS
本文路径:http://hbruida.cn/article/chohhd.html