基于NFS-LAMP架构、共用1个Discuz,MySQL的双WEB Server

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介:

 

首先我们来阐述下观点:
 

       如图:当用户访问虚拟机2的时候,可以访问到通过NFS挂载到本地的DISCUZ论坛,其中的数据保存在虚拟机1中,以此来保证论坛内容改变的时候虚拟机2访问的数据跟随改变,即数据的统一性。这一切都要通过NFS服务来实现。
步骤:
1、先在虚拟机1中搭建完整的LAMP服务并安装DISCUZ论坛。
2、在虚拟机2中搭建LAP服务
3、将DISCUZ论坛目录通过NFS挂载到虚拟机2中,使虚拟机2可以实现论坛的访问并为论坛添加数据。所以虚拟机2只需要搭建LAP服务即可。
       PS:其中虚拟机1地址为172.16.111.1,虚拟机2地址为172.16.111.2
 
 
前提:
        因为要用到yum 安装,所以请事先确保好yum 的配置是否已经妥当。可参照http://407711169.blog.51cto.com/6616996/1179601 中前几步介绍的步骤。以及事先准备好相应的软件包,:httpd-2.4.3.tar + mysql-5.5.28 + php-5.4.8 apr-util-1.4.1.tar ,apr-1.4.6.tar 
另外需要查看selinux 是否开启。同样可参照上边博客中的方法来实现关闭selinux

  
  
  1. [root@localhost ~]# getenforce  
  2. Enforcing   
  3. [root@localhost ~]# setenforce 0   
  4. [root@localhost ~]# getenforce  
  5. Permissive   
  6. //当然。这里也需要到vim /etc/selinux/config将其中的SELINUX=enforcing替换为SELINUX=permissive 
 

 

编译配置主服务器(虚拟机1)的LAMP:
 
一、编译安装apache
 
 注意:事先把 httpd-2.4.3.tar ,apr-util-1.4.1.tar ,apr-1.4.6.tar 这三个包放到/usr/local/src/目录中,方法具体不在介绍xshell与window界面拖拽。另外需要注意的是,要将虚拟机里linux的时间做同步。--hwclock -s
 
  1 解决依赖关系
(1) 编译安装apr

  
  
  1. [root@localhost src]# ls  
  2. apr-1.4.6.tar.bz2 apr-util-1.4.1.tar.bz2 httpd-2.4.3.tar.bz2  
  3. [root@localhost src]# tar xf apr-1.4.6.tar.bz2   
  4. [root@localhost src]# cd apr-1.4.6  
  5. [root@localhost apr-1.4.6]# ./configure --prefix=/usr/local/apr // prefix指定路径  
  6. [root@localhost apr-1.4.6] # make && make install //这里稍微简略了下步骤  
  7. //这个时候,apr已经安装好了 。然后去安装apr-util  
 (2) 编译安装apr-util

  
  
  1. [root@localhost apr-1.4.6]# cd ..  
  2. [root@localhost src]# tar xf apr-util-1.4.1.tar.bz2   
  3. [root@localhost src]# cd apr-util-1.4.1  
  4. [root@localhost apr-util-1.4.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr //-with-apr告诉其apr的路径  
  5. [root@localhost apr-util-1.4.1]# make  
  6. [root@localhost apr-util-1.4.1]# make install  
(3) httpd-2.4.3编译过程也要依赖于pcre-devel软件包,需要事先安装。此软件包系统光盘自带,因此,找到并安装即可。

  
  
  1. [root@localhost apr-util-1.4.1]# cd ..  
  2. [root@localhost src]# yum install pcre-devel  
 
   2、编译安装httpd-2.4.3
   

  
  
  1.  [root@localhost src]# tar xf httpd-2.4.3.tar.bz2   
  2. [root@localhost src]# cd httpd-2.4.3  
  3. [root@localhost httpd-2.4.3]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-mpms-shared=all --with-mpm=event   //mpm=even默认使用event  
  4. [root@localhost httpd-2.4.3]# make  
  5. [root@localhost httpd-2.4.3]# make install  
 
  3、修改httpd的主配置文件,设置其Pid文件的路径

  
  
  1. [root@localhost src]# vim /etc/httpd/httpd.conf  
  2. //添加如下内容  
  3. PidFile "/var/run/httpd.pid"  
 4、提供SysV服务脚本/etc/rc.d/init.d/httpd,内容如下:

  
  
  1. [root@localhost src]# cd /etc/rc.d/init.d/  
  2. [root@localhost init.d]# vim httpd  
  3. //添加如下内容  
  4. #!/bin/bash  
  5. #  
  6. # httpd        Startup script for the Apache HTTP Server  
  7. #  
  8. # chkconfig: - 85 15  
  9. # description: Apache is a World Wide Web server. It is used to serve \  
  10. #            HTML files and CGI.  
  11. # processname: httpd  
  12. # config: /etc/httpd/conf/httpd.conf  
  13. # config: /etc/sysconfig/httpd  
  14. # pidfile: /var/run/httpd.pid  
  15.    
  16. # Source function library.  
  17. . /etc/rc.d/init.d/functions  
  18.    
  19. if [ -f /etc/sysconfig/httpd ]; then  
  20.         . /etc/sysconfig/httpd  
  21. fi  
  22.    
  23. # Start httpd in the C locale by default.  
  24. HTTPD_LANG=${HTTPD_LANG-"C"}  
  25.    
  26. # This will prevent initlog from swallowing up a pass-phrase prompt if  
  27. # mod_ssl needs a pass-phrase from the user.  
  28. INITLOG_ARGS="" 
  29.    
  30. # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server  
  31. # with the thread-based "worker" MPM; BE WARNED that some modules may not  
  32. # work correctly with a thread-based MPM; notably PHP will refuse to start.  
  33.    
  34. # Path to the apachectl script, server binary, and short-form for messages.  
  35. apachectl=/usr/local/apache/bin/apachectl  
  36. httpd=${HTTPD-/usr/local/apache/bin/httpd}  
  37. prog=httpd 
  38. pidfile=${PIDFILE-/var/run/httpd.pid}  
  39. lockfile=${LOCKFILE-/var/lock/subsys/httpd}  
  40. RETVAL=0 
  41.    
  42. start() {  
  43.         echo -n $"Starting $prog: "  
  44.         LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS  
  45.         RETVAL=$?  
  46.         echo  
  47.         [ $RETVAL = 0 ] && touch ${lockfile}  
  48.         return $RETVAL  
  49. }  
  50.    
  51. stop() {  
  52.        echo -n $"Stopping $prog: "  
  53.        killproc -p ${pidfile} -d 10 $httpd  
  54.        RETVAL=$?  
  55.        echo  
  56.        [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}  
  57. }  
  58. reload() {  
  59.     echo -n $"Reloading $prog: "  
  60.     if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then  
  61.         RETVAL=$?  
  62.         echo $"not reloading due to configuration syntax error"  
  63.         failure $"not reloading $httpd due to configuration syntax error"  
  64.     else  
  65.         killproc -p ${pidfile} $httpd -HUP  
  66.         RETVAL=$?  
  67.     fi  
  68.     echo  
  69. }  
  70.    
  71. # See how we were called.  
  72. case "$1" in  
  73.  start)  
  74.        start  
  75.        ;;  
  76.  stop)  
  77.        stop  
  78.        ;;  
  79.  status)  
  80.         status -p ${pidfile} $httpd  
  81.        RETVAL=$?  
  82.        ;;  
  83.  restart)  
  84.        stop  
  85.        start  
  86.        ;;  
  87.  condrestart)  
  88.        if [ -f ${pidfile} ] ; then  
  89.               stop  
  90.               start  
  91.        fi  
  92.        ;;  
  93.  reload)  
  94.         reload  
  95.        ;;  
  96.  graceful|help|configtest|fullstatus)  
  97.        $apachectl $@  
  98.        RETVAL=$?  
  99.        ;;  
  100.  *)  
  101.        echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"  
  102.        exit 1  
  103. esac  
  104.    
  105. exit $RETVAL  
 
   

  
  
  1.  //而后为此脚本赋予执行权限:  
  2. [root@localhost init.d]# chmod +x httpd  
  3. [root@localhost init.d]# chkconfig --level 35 httpd on //设定运行级别  
  4. [root@localhost init.d]# chkconfig --list httpd  
  5. httpd             0:off       1:off       2:off       3:on 4:off       5:on 6:off  
  6. //下面的步骤可忽略,这里只是可以设置为bash可以直接执行  
  7. [root@localhost init.d]# vim /etv/profile.d/httpd.sh   
  8. //添加  
  9. #/bin/bash  
  10. export PATH=$PATH:/usr/local/apache/bin  
  11.    
  12. [root@localhost init.d]# export PATH=$PATH:/usr/local/apache/bin  
这个时候就可以验证下httpd服务了。
 
然后打开浏览器,输入172.16.111.1就可以查看工作网页了。
    其网页文件在/usr/local/apache/htdocs/中的index.html中,可以修改其中的内容对网页内容进行修改。
 
 

 
二、安装mysql-5.5.28
 前提:这里使用mysql-5.5.28-linux2.6-tar,提前下载放入linux中
1、准备数据存放的文件系统  
新建一个逻辑卷,这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。

  
  
  1. [root@localhost init.d]# fdisk /dev/sda  
  2. //其中过程省略。。  
  3. [root@localhost init.d]# partprobe /dev/sda  
  4. //创建逻辑卷  
  5. [root@localhost init.d]# pvcreate /dev/sda5   
  6.  Writing physical volume data to disk "/dev/sda5"  
  7.  Physical volume "/dev/sda5" successfully created  
  8. [root@localhost init.d]# vgcreate myvg /dev/sda5  
  9.  Volume group "myvg" successfully created  
  10. [root@localhost init.d]# lvcreate -n mydata -L 5G myvg  
  11.  Logical volume "mydata" created  
  12. [root@localhost init.d]# lvs  
  13.  LV     VG     Attr   LSize Origin Snap% Move Log Copy% Convert  
  14.  mydata myvg   -wi-a- 5.00G                                        
  15.  lvtext vgtext -wi-a- 1.00G                                        
  16.  home   vol0   -wi-ao 4.88G                                        
  17.  root   vol0   -wi-ao 29.28G                                        
  18. [root@localhost init.d]# mke2fs -j /dev/myvg/mydata  
  19. //设置开机挂载  
  20. [root@localhost ~]# mkdir /mydata  
  21. [root@localhost ~]# vim /etc/fstab  
  22. //添加如下内容  
  23. /dev/myvg/mydata        /mydata                 ext3    defaults        0 0  
  24. [root@localhost ~]# mount –a  //重新挂载  
  25. [root@localhost ~]# mkdir /mydata/data //作为数据的挂载目录  
2、新建用户以安全方式运行进程:

  
  
  1. //创建用户  
  2. [root@localhost ~]# groupadd -r mysql  
  3. [root@localhost ~]# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql  
  4. [root@localhost ~]# chown -R mysql:mysql /mydata/data  
 
  3安装并初始化mysql-5.5.28

  
  
  1. [root@localhost ~]# cd /usr/local/src/  
  2. [root@localhost src]# tar xf mysql-5.5.28-linux2.6-i686.tar.gz  
  3. [root@localhost src]# cd ..  
  4. [root@localhost local]# pwd  
  5. /usr/local  
  6. [root@localhost local]# ln -sv /usr/local/src/mysql-5.5.28-linux2.6-i686 mysql  
  7. create symbolic link `mysql' to `/usr/local/src/mysql-5.5.28-linux2.6-i686'   
  8. [root@localhost local]# cd mysql  
  9. [root@localhost mysql]# chown -R mysql:mysql .  
  10. [root@localhost mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data  
  11. Installing MySQL system tables...  
  12. [root@localhost mysql]#  
   4为mysql提供主配置文件:

  
  
  1. [root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf  
  2. [root@localhost mysql]# vim /etc/my.cnf  
  3. //并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:  
  4. thread_concurrency = 2 
  5.    
  6. //另外还需要添加如下行指定mysql数据文件的存放位置:  
  7. datadir = /mydata/data   //添加此行指定mysql数据文件的存放位置  
 
    5、为mysql提供sysv服务脚本:

  
  
  1. [root@localhost mysql]# pwd  
  2. /usr/local/mysql  
  3. [root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld  
  4. [root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld  
  5. //添加至服务列表:  
  6. [root@localhost mysql]# chkconfig --add mysqld  
  7. [root@localhost mysql]# chkconfig mysqld on  
  8. 而后就可以启动服务测试使用了。  
 
 
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
  6 输出mysql的man手册至man命令的查找路径:

  
  
  1. [root@localhost mysql]# vim /etc/man.config  
  2. #####################mysql#############  
  3. MANPATH /usr/local/mysql/man  
 
 7 输出mysql的头文件至系统头文件路径/usr/include

  
  
  1. 这可以通过简单的创建链接实现:  
  2. [root@localhost mysql]# ln -sv /usr/local/mysql/include /usr/include/mysql  
  3. create symbolic link `/usr/include/mysql' to `/usr/local/mysql/include'  
8 输出mysql的库文件给系统库查找路径:

  
  
  1. [root@localhost ld.so.conf.d]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf  
  9、修改PATH环境变量,让系统可以直接使用mysql的相关命令。

  
  
  1. [root@localhost ld.so.conf.d]# vim /etc/profile //需要重读或重启或重新登录  
  2. PATH=$PATH:/usr/local/mysql/bin  
  3. //另外export PATH=$PATH:/usr/local/mysql/bin 也可以起到上边的效果  
  4.    
  5. PS:这个时候。就可以进入数据库创建表之类的东西了!  
 图片仅为连接的测试:

 

 

三、编译安装php-5.4.13
  1、解决依赖关系:
       

  
  
  1. 请配置好yum源(可以是本地系统光盘)后执行如下命令:  
  2.        [root@localhost ~]# yum -y groupinstall "X Software Development"  
  3. 如果想让编译的php支持mcrypt扩展,此处还需要下载如下两个rpm包并安装之:  
  4. libmcrypt-2.5.7-5.el5.i386.rpm  
  5. libmcrypt-devel-2.5.7-5.el5.i386.rpm  
  6. mhash-0.9.2-6.el5.i386  
  7. mhash-devel-0.9.2-6.el5.i386  
 

2、编译安装php-5.4.13 
 

  
  
  1. 将下载好的安装包放到linux的src中(过程同上)  
  2. [root@localhost src]# tar xf php-5.4.13.tar.bz2  
  3. [root@localhost php-5.4.13]# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts  
  4. //说明:   
  5. --prefix=/usr/local/php:php安装路径   
  6. --with-mysql=/usr/local/mysql:mysql安装路径   
  7. --with-openssl:支持openssl功能   
  8. --with-mysqli=/usr/local/mysql/bin/mysql_config:mysql与apache访问的另一种接口,安装在二进制目录下   
  9. --enable-mbstring:多字节string   
  10. --with-freetype-dir:安装的字体库头文件   
  11. --with-jpeg-dir:jpeg类型的库   
  12. --with-png-dir:png类型的库   
  13. --with-zlib:互联网上通用压缩库,先压缩再传送,减少带宽   
  14. --with-libxml-dir=/usr:xml库文件的路径   
  15. --enable-xml:支持xml功能      
  16. --enable-sockets:php支持套接字功能      --with-apxs2=/usr/local/apache/bin/apxs:基于apxs实现让php编译成apache模块   
  17. --with-mcrypt:支持额外的加密库   
  18. --with-config-file-path=/etc:php配置文件放置路径     
  19. --with-config-file-scan-dir=/etc/php.d :php配置文件的分段文件放置路径   
  20. --with-bz2 :压缩库   
  21. --enable-maintainer-zts:当apache使用worker或event这两个MPM,编译时使用该选项   
  22.    
  23. [root@localhost php-5.4.13]# make  
  24. [root@localhost php-5.4.13]# make test  
  25. [root@localhost php-5.4.13]# make install  
  26.    
  27. 为php提供配置文件:  
  28. [root@localhost php-5.4.13]# cp php.ini-production /etc/php.ini   
  29. //php包中提供了配置文件,把配置文件重命名为/etc/php.ini,php的配置文件后缀名是以.ini结尾  
 
 
 
  3、 编辑apache配置文件httpd.conf,以apache支持php
  

  
  
  1.  [root@localhost php-5.4.8]# vim /etc/httpd/httpd.conf  
  2. 1、添加如下二行  
  3.    AddType application/x-httpd-php .php  
  4.    AddType application/x-httpd-php-source .phps  
  5. //能够让APACHE处理PHP结尾的文件  
  6.  2、定位至DirectoryIndex index.html   
  7.    修改为:  
  8. DirectoryIndex index.php index.html  
  9. //能让目录索引处理php结尾的页面文件。在配置文件中可以根据自己安装内容启动相对模块。比如:SSL模块等。  
  10. [root@localhost php-5.4.13]#cd /usr/local/apache/htdocs/     //进入apache页面目录下,把默认页面修改为php页面文件   
  11. [root@localhost php-5.4.13]#mv index.html index.php   
  12. [root@localhost php-5.4.13]#vim index.php   
  13. <html><body><h1>It works! doubao’s test page</h1></body></html>   
  14. <?php   
  15. phpinfo();   
  16. ?> 
  17. :wq   
  18. //保存退出   
  19. [root@localhost htdocs]# service httpd restart //重启  
  20. //发起php页面测试   
  21. //生成的测试页面内容对我们还是会有帮助,可以留意一下里面的内容   
 

 
 
 
4、 phpmysql结合,在index.php页面文件中修改一下内容
 

  
  
  1. <html><body><h1>It works! my test page</h1></body></html>   
  2. <?php   
  3. $conn=mysql_connect('localhost','root','');   
  4.        if ($conn)   
  5. echo "<h2>Success...</h2>";   
  6.        else   
  7. echo "<h2>Failure...</h2>";   
  8. phpinfo();   
  9. ?> 
  10. //保存退出然后  
  11. [root@localhost htdocs]# service httpd restart //重启网络服务  
 
 

到这里,一个linux+apache+mysql+php的LAMP已经搭建好了。 
四、搭建DISCUZ论坛
  1、事先将准备好的DISCUZ压缩包放入linux中,做前提准备工作

  
  
  1. [root@localhost ~]# vim /etc/httpd/httpd.conf       #指定网页存放目录  
  2.    
  3. #DocumentRoot "/usr/local/apache/htdocs"  
  4. DocumentRoot "/www/a.org"  
  5. #<Directory "/usr/local/apache/htdocs"> 
  6. <Directory "/www/a.org"> 
  7.    
  8. [root@localhost discuz]# cd /usr/local/src/discuz/     
  9. [root@localhost discuz]# unzip Discuz_X2.5_SC_GBK.zip          #解压软件包  
  10. [root@localhost discuz]# mv ./upload/* /www/a.org/               #将解压后的文件放到网页目录中  
  11. [root@localhost discuz]# mysqladmin -uroot -p password 'redhat'            #为数据库添加密码  
  12.    
  13. 登录数据库为root用户添加远程权限  
  14. mysql> grant all privileges on *.* to root@'%' identified by 'redhat';  
  15. Query OK, 0 rows affected (0.30 sec)  
 
2、安装DISCUZ论坛
 
打开IE输入虚拟机1地址:172.16.111.1进行DISCUZ向导安装,
 

然后第二部的时候为他们增加读写权限:
 


  
  
  1. [root@localhost discuz]# cd /www/a.org/  
  2. [root@localhost a.org]# mkdir ./config/config_global.php  
  3. [root@localhost a.org]# mkdir ./config/config_ucenter.php  
  4. [root@localhost a.org]# chmod o+rw ./config/*  
  5.  [root@localhost a.org]# chmod o+rw ./data  
  6. [root@localhost a.org]# chmod o+rw ./data/cache  
  7. [root@localhost a.org]# chmod o+rw ./data/avatar  
  8. [root@localhost a.org]# chmod o+rw ./data/plugindata  
  9. [root@localhost a.org]# chmod o+rw ./data/download  
  10. [root@localhost a.org]# chmod o+rw ./data/addonmd5  
  11. [root@localhost a.org]# chmod o+rw ./data/template  
  12. [root@localhost a.org]# chmod o+rw ./data/threadcache  
  13. [root@localhost a.org]# chmod o+rw ./data/attachment  
  14. [root@localhost a.org]# chmod o+rw ./data/attachment/album  
  15. [root@localhost a.org]# chmod o+rw ./data/attachment/forum  
  16. [root@localhost a.org]# chmod o+rw ./data/attachment/group   
  17. [root@localhost a.org]# chmod o+rw ./data/log  
  18. [root@localhost a.org]# chmod o+rw ./uc_client/data/cache  
  19. [root@localhost a.org]# chmod o+rw ./uc_server/data  
  20. [root@localhost a.org]# chmod o+rw ./uc_server/data/cache  
  21. [root@localhost a.org]# chmod o+rw ./uc_server/data/avatar  
  22. [root@localhost a.org]# chmod o+rw ./uc_server/data/backup  
  23. [root@localhost a.org]# chmod o+rw ./uc_server/data/logs  
  24. [root@localhost a.org]# chmod o+rw ./uc_server/data/tmp  
  25. [root@localhost a.org]# chmod o+rw ./uc_server/data/view  
 
然后继续进行下一步安装
 

 

这时。第一步已经Ok,然后来做第二步。
 
 
 

 


为虚拟机2搭建LAP服务
一、编译安装apache
(参照上边的步骤一)
二、编译安装php-5.4.13
(参照上边的步骤二)
这里需要注意的是,在编译安装php5.4.13时,由于没有安装MySQL,这里需要更改.config为:

  
  
  1. ./configure --prefix=/usr/local/php --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts  
搭建好以后打开浏览器测试下,网页是否能够正常开启!
 

 


 
安装NFS服务,共享文件
 
首先回到虚拟机1

  
  
  1. [root@localhost config]# service portmap status  
  2. portmap (pid 2958) is running...                  
  3. //查看下此服务是否在运行中,因为NFS服务要在这个服务的基础上才能开启  
  4. [root@localhost config]# service nfs start      //开始NFS服务  
  5. Starting NFS services:                                     [ OK ]  
  6. Starting NFS quotas:                                       [ OK ]  
  7. Starting NFS daemon:                                       [ OK ]  
  8. Starting NFS mountd:                                       [ OK ]  
  9.    
  10. PS:这个时候可以# rpcinfo -p localhost 查看所有rpc进程所监听的端口  
  11. [root@localhost config]# vim /etc/exports  
  12. /www/a.org      172.16.0.0/16(rw,no_root_squash)      
  13. ###no_root_squash: 不将root用户映射为来宾账户为了让虚拟机2可以读写  
  14. :wq  
  15. [root@localhost config]# exportfs –ra   
  16. //切记!!!要重新导出!!!  
 
然后回到虚拟机2:

   
   
  1. [root@localhost htdocs]# mount -t nfs 172.16.111.1:/www/a.org /usr/local/apache/htdocs/  
  2. ###客户端使用mount命令挂载  
  3. 当然这里也可以将其设为开机自动挂在:  
  4. [root@localhost htdocs]# vim /etc/fstab  
  5. 172.16.111.1:/www/a.org     /usr/local/apache/htdocs         nfs          defaults,_rnetdev 0 0  
  6. #######_rnetdev:设置开机自动挂载时,能挂载就挂载,不能挂载就算了  
 
 
测试:
 
这里不再做具体演示。提示:输入172.16.111.1或者172.16.111.2。在两个网页上各注册一个新的账号来进行发帖操作,看看发帖之后对方是否能够即时看到帖子,是否为同步。









本文转自 陈延宗 51CTO博客,原文链接:http://blog.51cto.com/407711169/1188711,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
8月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
7月前
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
存储 SQL 关系型数据库
MySQL进阶突击系列(03) MySQL架构原理solo九魂17环连问 | 给大厂面试官的一封信
本文介绍了MySQL架构原理、存储引擎和索引的相关知识点,涵盖查询和更新SQL的执行过程、MySQL各组件的作用、存储引擎的类型及特性、索引的建立和使用原则,以及二叉树、平衡二叉树和B树的区别。通过这些内容,帮助读者深入了解MySQL的工作机制,提高数据库管理和优化能力。
|
9月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
10月前
|
存储 消息中间件 缓存
支持百万人超大群聊的Web端IM架构设计与实践
本文将回顾实现一个支持百万人超大群聊的Web端IM架构时遇到的技术挑战和解决思路,内容包括:通信方案选型、消息存储、消息有序性、消息可靠性、未读数统计。希望能带给你启发。
398 0
支持百万人超大群聊的Web端IM架构设计与实践
|
11月前
|
SQL 存储 缓存
MySQL的架构与SQL语句执行过程
MySQL架构分为Server层和存储引擎层,具有高度灵活性和可扩展性。Server层包括连接器、查询缓存(MySQL 8.0已移除)、分析器、优化器和执行器,负责处理SQL语句;存储引擎层负责数据的存储和读取,常见引擎有InnoDB、MyISAM和Memory。SQL执行过程涉及连接、解析、优化、执行和结果返回等步骤,本文详细讲解了一条SQL语句的完整执行过程。
393 3
|
弹性计算 Java 关系型数据库
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
302 2
Web应用上云经典架构实践教学
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
341 1
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
弹性计算 负载均衡 安全
云端问道-Web应用上云经典架构方案教学
本文介绍了企业业务上云的经典架构设计,涵盖用户业务现状及挑战、阿里云业务托管架构设计、方案选型配置及业务初期低门槛使用等内容。通过详细分析现有架构的问题,提出了高可用、安全、可扩展的解决方案,并提供了按量付费的低成本选项,帮助企业在业务初期顺利上云。
352 0

推荐镜像

更多