怎么轻松建立根据NFS的双LAMP服务器的个人论坛51CTO博客 - 千亿集团

怎么轻松建立根据NFS的双LAMP服务器的个人论坛51CTO博客

2019-01-03 16:38:53 | 作者: 潇晗 | 标签: 装置,效劳,修正 | 浏览: 1309

 轻松构建根据NFS的双LAMP效劳器

一、预备工作

1、事前预备好装置编译时所需的软件,两台虚拟机。软件如下:apr、apr-util、pcre-devel、httpd-2.4.4、mysql-5.5.28、php-5.4.13、X Software Development、libmcrypt、libmcrypt-devel、mhash-devel、mhash、xcache。

2、虚拟机的编译环境要共同Development Libraries、Development Tools都需求装置。主效劳器的地址为172.16.12.22,辅佐效劳器的地址为172.16.12.23

二、编译装置apache

1、处理依靠联系

httpd-2.4.4需求较新版本的apr和apr-util,因而需求事前对其进行晋级。晋级方法有两种,一种是经过源代码编译装置,一种是直接晋级rpm包。这儿挑选运用编译源代码的方法进行。

(1) 编译装置apr

  1. # tar xf apr-1.4.6.tar.bz2 
  2. # cd apr-1.4.6 
  3. # ./configure --prefix=/usr/local/apr 
  4. # make && make install 

(2) 编译装置apr-util

  1. # tar xf apr-util-1.5.2.tar.bz2 
  2. # cd apr-util-1.5.2 
  3. # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr 
  4. # make && make install 

(3) httpd-2.4.4编译进程也要依靠于pcre-devel软件包,需求事前装置。此软件包体系光盘自带,因而,找到并装置即可。

2、编译装置httpd-2.4.4

  1. # tar xf httpd-2.4.4.tar.bz2 
  2. # cd httpd-2.4.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 
  4. # make && make install 

注:请保证你的SELinux是封闭的,由于httpd效劳遭到SELinux的管控,这儿会有影响。

3、修正httpd的主装备文件,设置其Pid文件的途径

修正/etc/httpd/httpd.conf,增加如下行即可:

PidFile  "/var/run/httpd.pid"

4、供给SysV效劳脚本/etc/rc.d/init.d/httpd,内容如下:

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

  1. 然后为此脚本赋予履行权限: 
  2. # chmod +x /etc/rc.d/init.d/httpd 
  3.  
  4. 参加效劳列表: 
  5. # chkconfig --add httpd 
  6. # chkconfig --level 35 httpd on 
  7. # service httpd restart 
  8.  
  9. 将httpd效劳指令增加到环境变量中去: 
  10. # vim /etc/profile.d/httpd.sh 
  11.     export PATH=$PATH:/usr/local/apache/bin 

接下来就能够发动效劳进行测验了。

三、装置mysql-5.6.10

1、预备数据寄存的文件体系

新建一个逻辑卷,并将其挂载至特定目录即可。

这儿咱们设置其逻辑卷的挂载目录为/mydata,然后需求创立/mydata/data目录做为mysql数据的寄存目录。

  1. # fdisk /dev/sda                        #创立一个20G的分区 
  2. # partprobe /dev/sda                    #改写重读 
  3. # pvcreate /dev/sda6                    #创立PV 
  4. # vgcreate myvg /dev/sda6               #创立VG 
  5. # lvcreate -n mydata -L 5G myvg         #创立LV 
  6. # mke2fs -j /dev/myvg/mydata            #格局化为ext3 
  7. # mkdir /mydata -pv                     #创立挂载点 
  8. # vim /etc/fstab                        #修正为开机挂载 
  9. # mount -a                              #挂载至挂载点 
  10. # mkdir /mydata/data                    #创立一个数据存储目录 
  11. # chown -R mysql.mysql /mydata/data/    #修正存储目录的属主属组 
  12. # chmod o-rx /mydata/data/              #修正其他用户的读写权限 

2、新建用户以安全方法运转进程:

  1. # groupadd -r -g 306 mysql 
  2. # useradd -g 306 -r -u 306 mysql 
  3. # chown -R mysql.mysql /usr/local/mysql/*  #修正装置文件的属主属组 
  4. # chown -R mysql:mysql /mydata/data 

3、装置并初始化mysql-5.5.28

  1. # tar xf mysql-5.5.28-linux2.6-i686.tar.gz -C /usr/local 
  2. # cd /usr/local/ 
  3. # ln -sv mysql-5.5.28-linux2.6-i686  mysql 
  4. # cd mysql  
  5. # less INSTALL-BINARY                   #能够用来检查软件自带的装置阐明 
  6.  
  7. # chown -R mysql:mysql  . 
  8. # scripts/mysql_install_db --user=mysql --datadir=/mydata/data 
  9. # chown -R root  . 

4、为mysql供给主装备文件:

  1. # cd /usr/local/mysql 
  2. # cp support-files/my-large.cnf  /etc/my.cnf 

并修正此文件中thread_concurrency的值为你的CPU个数乘以2,比方这儿运用如下行:

thread_concurrency = 4

别的还需求增加如下行指定mysql数据文件的寄存方位:

datadir = /mydata/data

5、为mysql供给sysv效劳脚本:

  1. # cd /usr/local/mysql 
  2. # cp support-files/mysql.server  /etc/rc.d/init.d/mysqld 
  3. # chmod +x /etc/rc.d/init.d/mysqld 

增加至效劳列表:

  1. # chkconfig --add mysqld 
  2. # chkconfig mysqld on 

然后就能够发动效劳测验运用了。

为了运用mysql的装置契合体系运用标准,并将其开发组件导出给体系运用,这儿还需求进行如下过程:

6、输出mysql的man手册至man指令的查找途径:

修正/etc/man.config,增加如下行即可:

MANPATH  /usr/local/mysql/man

7、输出mysql的头文件至体系头文件途径/usr/include:

这能够经过简略的创立链接完成:

  1. # ln -sv /usr/local/mysql/include  /usr/include/mysql 

8、输出mysql的库文件给体系库查找途径:

  1. # echo /usr/local/mysql/lib > /etc/ld.so.conf.d/mysql.conf 

然后让体系从头载入体系库:

# ldconfig

9、修正PATH环境变量,让体系能够直接运用mysql的相关指令。

# vim /etc/profile.d/mysql.sh

export PATH=$PATH:/usr/local/mysql/bin

四、编译装置php-5.4.13

1、处理依靠联系:

由于编译进程中短少加密程序,现在增加四个加密软件包:

libmcrypt-2.5.7-5.el5.i386.rpm,libmcrypt-devel-2.5.7-5.el5.i386.rpm

mhash-devel-0.9.2-6.el5.i386.rpm,mhash-0.9.2-6.el5.i386.rpm。

请装备好X Software Development编译环境

2、编译装置php-5.4.13

  1. # tar xf php-5.4.13.tar.bz2 
  2. # cd php-5.4.13 
  3. # ./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 

# make

# make test && make install

为php供给装备文件:

# cp php.ini-production /etc/php.ini

3、 修正apache装备文件httpd.conf,以apache支撑php

  1. # vim /etc/httpd/httpd.conf 
  2.  1、增加如下二行 
  3.    AddType application/x-httpd-php  .php 
  4.    AddType application/x-httpd-php-source  .phps 
  5.  
  6.  2、定位至DirectoryIndex index.html  
  7.    修正为: 
  8.     DirectoryIndex  index.php  index.html 

然后从头发动httpd,或让其从头载入装备文件即可测验php是否现已能够正常运用。

  1. # service httpd restart 
  2. # cd /usr/local/apache/htdocs/              #切换到httpd的网页寄存目录 
  3. # mv index.html index.php 
  4. # vim index.php 
  5.     <html><body><h1>I HAVE A DREAM,THIS IS WORK DAYS !</h1></body></html> 
  6.     <?php 
  7.         $conn=mysql_connect(localhost,root,); 
  8.     if ($conn) 
  9.         echo "Chenggong..."; 
  10.     else 
  11.         echo "Shibai..."; 
  12.     ?> 

试脚本,用来测验衔接数据库是否成功!

五、装置xcache,为php加快:

1、装置

  1. # tar xf xcache-3.0.1.tar.gz 
  2. # cd xcache-3.0.1 
  3. # /usr/local/php/bin/phpize                 #加载扩展项 
  4. # ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config 
  5. # make && make install 

装置结束时,会呈现相似如下行:

  1. Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20100525/ 

2、修正php.ini,整合php和xcache:

首先将xcache供给的样例装备导入php.ini

  1. # mkdir /etc/php.d 
  2. # cp xcache.ini /etc/php.d 

阐明:xcache.ini文件在xcache的源码目录中。

接下来修正/etc/php.d/xcache.ini,找到zend_extension最初的行,修正为如下行:

  1. zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so 

留意:假如php.ini文件中有多条zend_extension指令行,要保证此新增的行排在第一位,这儿修正所用到的就是在装置过程中发生的字符串。

测验装置是否成功

  1. # vim /usr/local/apache/htdocs/index.php            #检查网页状况是否装置xcache 

 

六、装置NFS效劳,同享文件

1、在主效劳器上做:

  1. # service portmap status                            #首先要保证portmap是敞开状况 
  2. # service nfs start                                 #发动nfs效劳 
  3. # rpcinfo -p localhost                              #检查一切rpc进程所监听的端口 
  4. # vim /etc/exports                                  #将/var/www目录设置为同享 
  5.     /var/www        172.16.0.0/16(rw,no_root_squash) 
  6.     /usr/local/mysql    172.16.0.0/16(rw,no_root_squash) 

2、在辅效劳器上做

  1. # mount -t nfs 172.16.12.22:/var/www  /usr/local/apache/htdocs/ #将网络同享挂载 
  2. # mkdir /usr/local/mysql                            #创立目录 
  3. # mount -t nfs 172.16.12.22:/usr/local/mysql    /usr/local/mysql 
  4. # vim /etc/fstab                                    #增加其为开机挂载 
  5.     172.16.12.22:/var/www   /usr/local/apache/htdocs/  nfs  defaults,_rnetdev  0 0 

七、装置辅佐效劳器

1、装置apache效劳器

在第一步的时分现已说过了,这儿就不在复述。

2、装置php模块和xcache加快

这一步在第三过程中叙述过,咱们能够检查一下

八、装置Discuz论坛

1、在主效劳器上操作

  1. # vim /etc/httpd/httpd.conf                         #指定网页寄存目录 
  2.     DocumentRoot "/var/www" 
  3.     <Directory "/var/www"> 
  4.      
  5. # unzip Discuz_X2.5_SC_GBK.zip                      #解压软件包 
  6. # cp ./upload/* /var/www/ -a                        #将解压后的文件放到网页目录中 
  7.  
  8. # mysqladmin -uroot -p password redhat            #为数据库增加暗码 

登录数据库为root用户增加长途权限:

  1. mysql> grant all privileges on *.* to root@% identified by redhat; 

在装置页面填写数据库暗码

将数据库的衔接方法由localhost修正为172.16.12.22

给论坛文件增加权限

  1. # chmod o+rw ./config 
  2. # chmod o+rw ./data 
  3. # chmod o+rw ./data/cache 
  4. # chmod o+rw ./data/avatar 
  5. # chmod o+rw ./data/plugindata 
  6. # chmod o+rw ./data/download 
  7. # chmod o+rw ./data/addonmd5 
  8. # chmod o+rw ./data/template 
  9. # chmod o+rw ./data/threadcache 
  10. # chmod o+rw ./data/attachment 
  11. # chmod o+rw ./data/attachment/album 
  12. # chmod o+rw ./data/attachment/forum 
  13. # chmod o+rw ./data/attachment/group 
  14. # chmod o+rw ./data/log 
  15. # chmod o+rw ./uc_client/data/cache 
  16. # chmod o+rw ./uc_server/data 
  17. # chmod o+rw ./uc_server/data/cache 
  18. # chmod o+rw ./uc_server/data/avatar 
  19. # chmod o+rw ./uc_server/data/backup 
  20. # chmod o+rw ./uc_server/data/logs 
  21. # chmod o+rw ./uc_server/data/tmp 
  22. # chmod o+rw ./uc_server/data/view 

之后挑选下一步装置就能够了:终究咱们看一下效果图:

如此简易的根据NFS同享的LAMP论坛就建立完成了,假如朋友们还想针对论坛完成iptables办理操控制作出DMZ的非军事化区域的话,能够先自行探索,咱们会在之后的博客中给出参阅!

PS:写的比较粗陋,假如有什么BUG请留言,咱们一同学习前进!

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表千亿集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章