社交网站搭建LNMP+SVN+NFS-创新互联

                       社交网站搭建详解

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

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

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

本案例拓扑:

      社交网站搭建LNMP+SVN+NFS

案例环境:

主机操作系统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

社交网站搭建LNMP+SVN+NFS

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

社交网站搭建LNMP+SVN+NFS

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到本地使用

社交网站搭建LNMP+SVN+NFS

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

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页题目:社交网站搭建LNMP+SVN+NFS-创新互联
网站URL:http://azwzsj.com/article/desdce.html