溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

社交網(wǎng)站搭建LNMP+SVN+NFS

發(fā)布時間:2020-07-24 05:53:13 來源:網(wǎng)絡(luò) 閱讀:1939 作者:丁香花下 欄目:建站服務(wù)器

                                            社交網(wǎng)站搭建詳解

    社交網(wǎng)站搭建是為了管理PHP程序員開發(fā)的代碼,要求待見SVN服務(wù)器進行版本控制。社交網(wǎng)站第一個版本部署在LNMP平臺之上,前端為Nginx服務(wù)器,通過fastcgi協(xié)議訪問后端PHP服務(wù)器,為了保證數(shù)據(jù)安全,mysql數(shù)據(jù)庫搭建主從復(fù)制。

   社交網(wǎng)站項目包含用戶相冊功能,允許用戶上傳照片,上傳照片需要使用共享存儲來存放。共享存儲可用的開源方案有很多,如NFS,MFS,FastDFS等。本文簡化存儲方案,使用NFS代替MFS的功能,現(xiàn)網(wǎng)根據(jù)公司要求進行相關(guān)搭建。


本案例拓撲:

          社交網(wǎng)站搭建LNMP+SVN+NFS

案例環(huán)境:

主機操作系統(tǒng)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、安裝環(huán)境包

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

2、創(chuàng)建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  #開啟統(tǒng)計模塊

make && make install           #安裝

5、優(yōu)化

ln -s /usr/local/nginx/sbin/* /usr/local/sbin/     #軟鏈接優(yōu)化


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)表示根據(jù)PID終止Nginx進程

#kill -s HUP  $(cat $PIDF)表示根據(jù)進程號重載配置

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主從服務(wù)器

1、安裝環(huán)境包

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、創(chuàng)建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、優(yōu)化

cp support-files/my-default.cnf  /etc/my.cnf        # 復(fù)制配置文件

cp support-files/mysql.server /etc/init.d/mysqld  # 復(fù)制啟動腳本

vim /etc/init.d/mysqld        #修改啟動腳本

basedir=/usr/local/mysql

datadir=/home/mysql

chmod +x /etc/init.d/mysqld       #添加執(zhí)行權(quán)限

chkconfig --add mysqld              #添加至啟動項

chkconfig --level 35 mysqld on       #35 模式啟動

echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile       #添加環(huán)境變量

source /etc/profile      #刷新環(huán)境變量      

chown -R mysql.mysql /usr/local/mysql     #改mysql安裝目錄的屬主屬組

6、初始化數(shù)據(jù)庫

/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服務(wù)器

service mysql start

8、修改主從服務(wù)器配置文件

主服務(wù)器)

vim /etc/my.cnf

[mysqld]       #mysqld模塊下添加

server-id = 11

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

log-slave-updates=true                                   #從服務(wù)器可以讀取主服務(wù)器內(nèi)容

service mysqld restart                                      #重啟mysql

從服務(wù)器)

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主從關(guān)系

主服務(wù)器)

mysql> grant replication slave on *.* to 'myslave'@'192.168.88.%' identified by '123123';    #提權(quán)

mysql> show master status;             #查看主服務(wù)器master狀態(tài)

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

| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

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

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

1 row in set (0.00 sec)

從服務(wù)器)

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;    #查看主從狀態(tài),查看下面兩行為yes主從同步成功。

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

                                       三、搭建PHP服務(wù)器

1、安裝環(huán)境包

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、優(yōu)化

cp php.ini-development /usr/local/php-fpm/php.ini        #復(fù)制配置文件

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     #復(fù)制配置文件模板

vi php-fpm.conf               #修改如下內(nèi)容

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          #監(jiān)聽所有端口

8、創(chuàng)建php用戶,啟動服務(wù)

useradd -M -s /sbin/nologin php        #創(chuàng)建php用戶

/usr/local/sbin/php-fpm          #啟動服務(wù)

[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        #創(chuàng)建站點首頁

10、測試,訪問http://192.168.88.128/index.php

社交網(wǎng)站搭建LNMP+SVN+NFS

                                                            四、搭建SVN服務(wù)器


1、安裝SVN

yum install subversion -y          #安裝SVN

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

svnserve,版本 1.7.14 (r1542130)

   編譯于 Apr 11 2018,02:40:28

版權(quán)所有 (C) 2013 Apache 軟件基金會。

此軟件包含了許多人的貢獻,請查看文件 NOTICE 以獲得更多信息。

Subversion 是開放源代碼軟件,請參閱 http://subversion.apache.org/ 站點。

2、創(chuàng)建SVN倉庫

mkdir -p /opt/svn/         #先創(chuàng)建svn目錄

svnadmin create /opt/svn    #svnadmin命令將該目錄作為倉庫

[root@localhost ~]# ls /opt/svn/     #查看svn倉庫

conf  db  format  hooks  locks  README.txt

3、SVN配置文件設(shè)置

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      #末行添加如下內(nèi)容

[/]

phpuser = r                          #在/opt/svn目錄下有讀取權(quán)限

[/webphp]              

phpuser = rw                       #對webphp有讀寫權(quán)限,用于上傳下載

5、開啟SVN服務(wù)

[root@localhost svn]#  svnserve -d -r /opt/svn            #關(guān)閉svn使用kill命令殺死進程

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

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

6、創(chuàng)建webphp目錄,初始化webphp目錄

cd /opt/svn               #在/opt/svn下創(chuàng)建

mkdir webphp          #創(chuàng)建webphp目錄

[root@localhost svn]# cd webphp/

[root@localhost webphp]# touch test.txt         #webphp下寫入內(nèi)容

[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服務(wù)器,在/usr/local/nginx/html下

svn cp svn://192.168.88.132/webphp

社交網(wǎng)站搭建LNMP+SVN+NFS

SVN測試成功

                                               五、 搭建NFS服務(wù)器

1、開啟rpcbind和nfs服務(wù)

service rpcbind start

service nfs start

2、修改配置文件

vim /etc/exports

/opt/php * (rw,sync)     #所有主機可掛載/opt/php目錄且擁有讀寫權(quán)限

3、創(chuàng)建目錄,發(fā)布共享

mkdir /opt/php

exportfs -rv         #發(fā)布共享

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

社交網(wǎng)站搭建LNMP+SVN+NFS

若使用MFS分布式存儲方式掛載請閱:https://blog.51cto.com/13760226/2286907

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI