目录

A. 环境说明:
B. 效果截图:
C. HTTP编译安装
D. MySQL二进制安装
E. PHP源码编译安装
F. PHP连接HTTP
G. PHP支持扩展功能xcache
H. PHP连接MySQL
I. 部署phpMyAdmin

A.环境说明:

  • 系统: CentOS 6.6 x32
  • 部署模式: 分离式(三个服务部署到三台服务器上)
  • 版本: HTTP 2.4.25 + PHP 5.4.13 + MySQL 5.5.28
  • IP规划: HTTP: 192.168.205.116    PHP: 192.168.205.117  MySQL: 192.168.205.115

B.效果截图:

C.HTTP编译安装:

1.编译安装apr

1) wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.gz
2) tar xf apr-1.5.2.tar.gz
3) cd apr-1.5.2
4) ./configure
5) make && make install

2.编译安装apr-util

1) wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
2) cd apr-util-1.5.4
3) tar xf apr-util-1.5.4.tar.gz
4) ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
5) make && make install

3.编译安装httpd

1) yum install pcre-devel -y
2) yum install openssl-devel -y
3) wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.25.tar.bz2
4) tar xf httpd-2.4.25.tar.bz2
5) cd httpd-2.4.25
6) ./configure \
  --prefix=/usr/local/httpd \
  --sysconfdir=/etc/httpd \
  --enable-so \
  --enable-rewrite \
  --enable-ssl --enable-cgi \
  --enable-cgid --enable-modules=most \
  --enable-mpms-shared=all \
  --with-apr=/usr/local/apr \
  --with-apr-util=/usr/local/apr-util \
  --with-ssl=/usr/local/openssl \
  --enable-proxy \
  --enable-proxy-fcgi
7) make && make install

4.关闭selinux和防火墙

1) setenforce 0
2) vim /etc/selinux/config
  SELINUX=enforcing
3) getenforce
4) iptables -F && service iptables save

5.修改配置文件

1) vim /etc/httpd/httpd.conf
2) 添加 PidFile "/var/run/httpd.pid": 修改pid进程文件位置

6.服务启动验证

1) /usr/local/httpd/apachectl start
2) netstat -tnlp

7.创建启动文件

1) vim /etc/init.d/httpd

  1. . /etc/rc.d/init.d/functions
  2. #chkconfig:
  3. #
  4.  
  5. # pull in sysconfig settings
  6. [ -f /etc/sysconfig/httpd ] && . /etc/sysconfig/httpd
  7. HTTPD_LANG=${HTTPD_LANG-"C"}
  8. INITLOG_ARGS=""
  9. #apachectl=/usr/local/apache/bin/apachctl
  10. #httpd=${HTTPD-/usr/local/apache/bin/httpd}
  11. httpd=${HTTPD-/usr/local/httpd/bin/apachectl}
  12. prog=httpd
  13. pidfile=${PIDFILE-/var/run/httpd.pid}
  14. lockfile=${LOCKFILE-/var/lock/subsys/httpd}
  15. RETVAL=
  16.  
  17. start()
  18. {
  19. echo -n $"Starting $prog: "
  20. LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
  21. RETVAL=$?
  22. echo
  23. [ $RETVAL -eq ] && touch $lockfile
  24. return $RETVAL
  25. }
  26.  
  27. stop()
  28. {
  29. echo -n $"Stopping $prog: "
  30. killproc -p ${pidfile} -d $httpd
  31. RETVAL=$?
  32. # if we are in halt or reboot runlevel kill all running sessions
  33. # so the TCP connections are closed cleanly
  34. echo
  35. [ $RETVAL -eq ] && rm -f ${lockfile} ${pidfile}
  36. }
  37.  
  38. reload()
  39. {
  40. echo -n $"Reloading $prog: "
  41. if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
  42. RETVAL=$?
  43. echo $"not reloading due to configuration syntax error"
  44. failure $"not reloading $httpd due to configuration syntax error"
  45. else
  46. killproc -p ${pidfile} $httpd -HUP
  47. RETVAL=$?
  48. fi
  49. echo
  50. }
  51.  
  52. restart() {
  53. stop
  54. start
  55. }
  56.  
  57. case "$1" in
  58. start)
  59. start
  60. ;;
  61. stop)
  62. stop
  63. ;;
  64. status)
  65. status -p ${pidfile} $httpd
  66. RETVAL=$?
  67. ;;
  68. restart)
  69. restart
  70. ;;
  71. condrestart)
  72. if [ -f ${pidfile} ]; then
  73. stop
  74. start
  75. fi
  76. ;;
  77. reload)
  78. reload
  79. ;;
  80. graceful|help|configtest|fullstatus)
  81. $apachectl $@
  82. RETVAL=$?
  83. ;;
  84. *)
  85. echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
  86. exit
  87. esac
  88.  
  89. exit $RETVAL

httpd

2) 添加执行权限
  a) chmod +x /etc/init.d/httpd
3) 加入到启动服务列表中
  a) chkconfig --add httpd
  b) chkconfig httpd on
  c) chkconfig --level 35 httpd on
4) 处理报错信息
  a) vim /etc/httpd/httpd.conf
    ServerName localhost:80

8.添加环境变量

1) vim /etc/profile.d/httpd.sh
    export PATH=$PATH:/usr/local/httpd/bin/
2) . /etc/profile.d/httpd.sh #读取环境变量

D.MySQL二进制安装:

1.下载安装

  a) wget https://downloads.mysql.com/archives/get/file/mysql-5.5.28-linux2.6-i686.tar.gz (32位系统)
  b) wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz (64位系统)
1) 解压到指定目录
  a) tar xf mysql-5.5.28-linux2.6-i686.tar.gz -C /usr/local/
2) 切换到该目录下
  a) cd /usr/local/
3) 做链接
  a) ln -sv mysql-5.5.28-linux2.6-i686/ mysql
4) 添加用户, 修改属主, 属组
  a) groupadd -r -g 306 mysql
  b) useradd -g 306 -r -u 306 mysql
  c) chown -R root.mysql /usr/local/mysql/*

2.制作逻辑卷并将数据库文件指定至逻辑卷

1) 制作逻辑卷
  a) fdisk /dev/sdb
  b) pvcreate /dev/sdb5
  c) vgcreate myvg /dev/sdb5
  d) lvcreate -n mydata -L 5G myvg
  e) lvs
  f) mke2fs -j /dev/myvg/mydata
2) 数据库数据存放至逻辑卷
  a) mkdir /mydata/
  b) mount /dev/myvg/mydata /mydata/
3) 修改/etc/fstab文件
  a) /dev/myvg/mydata /mydata ext3 defaults 0 0
  b) mount -a
4) 修改数据存储文件夹权限
  a) chown -R mysql.mysql data/
  b) chmod o-x /mydata/data/

3.初始化数据库

1) yum install -y libaio: 初始化时报错的解决办法
2) cd /user/local/mysql
3) scripts/mysql_install_db --user=mysql --datadir=/mydata/data/

4.创建开机自启

1) 修改启动文件
  a) cp support-files/mysql.server /etc/init.d/mysqld
2) 添加入开机启动
  a) chkconfig --add mysqld
  b) chkconfig mysqld on

5.添加配置文件

1) cp /usr/local/mysql-5.5.28-linux2.6-i686/support-files/my-huge.cnf /etc/my.cnf
2) vim /etc/my.cnf
  a) datadir = /mydata/data/mysql
  b) thread_concurrency = 8
  c) mysql中一个cpu提供2个线程
    i) 查看当前系统有几个cpu:cat /proc/cpuinfo
    ii) 所以这里最多有2个线程,修改为2

6.添加PATH环境变量执行mysql命令

1) vim /etc/profile.d/mysqld.sh
  a) export PATH=$PATH:/usr/local/mysql/bin
2) . /etc/profile.d/mysqld.sh #读取环境变量

7.开启服务测试

1) service mysqld start

E.PHP源码编译安装:

1.编译安装libmcrypt

1) wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.6.tar.gz
2) tar xf libmcrypt-2.5.6.tar.gz
3) cd libmcrypt-2.5.6
4) ./configure --prefix=/usr/local/libmcrypt
5) make && make install

2.编译安装PHP

1) wget http://museum.php.net/php5/php-5.4.13.tar.bz2
2) yum install gcc openssl-devel libxml2-devel bzip2-devel -y
3) cd php-5.4.13

4) 编译安装
  ./configure \
  --prefix=/usr/local/php \
  --enable-fpm \
  --with-config-file-path=/etc \
  --with-config-file-scan-dir=/etc/php.d \
  --with-libxml-dir=/usr \
  --with-openssl \
  --with-zlib \
  --with-bz2 \
  --with-jpeg-dir \
  --with-png-dir \
  --with-freetype-dir \
  --enable-mbstring \
  --with-mcrypt \
  --enable-sockets \
  --with-mysql=mysqlnd \
  --with-mysqli=mysqlnd \
  --with-pdo-mysql=mysqlnd \
  --enable-maintainer-zts \
  --with-mcrypt=/usr/local/libmcrypt
5) make && make install

3.设置启动项

1) cp php.ini-production /etc/php.ini
2) 为php-fpm提供Sysv init脚本, 并将其添加至服务列表
  a) cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  b) chmod +x /etc/init.d/php-fpm
  c) chkconfig --add php-fpm
  d) chkconfig php-fpm on

4.为php-fpm提供配置文件

1) cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
2) 编辑php-fpm的配置文件
  a) vim /usr/local/php/etc/php-fpm.conf
  b) 配置fpm的相关选项为你所需要的值, 并启用pid文件
    i) pm.max_children = 50
    ii) pm.start_servers = 5
    iii) pm.min_spare_servers=2
    iv) pm.max_spare_servers=8
    v) pid=/usr/local/php/var/run/php-fpm.pid

5.启动服务

1) service php-fpm start
2) netstat -tnlp

F.PHP连接HTTP:

1) 修改php服务器配置php-fpm的文件vim /usr/local/php/etc/php-fpm 定位到listen =192.168.205.117:9000
2) 在该主机上新建虚拟主机目录用于存放网页文件
  mkdir -pv /www/glinux
3) 配置http服务器Apache虚拟主机使用php
4) 在httpd主机上, 192.168.205.116, 建立一个目录作为虚拟主机的家目录
  mkdir -pv /www/glinux

1.编辑主配置文件(关闭中心主机, 开启虚拟主机)

1) vim /etc/httpd/httpd.conf
  a) 注释 #DocumentRoot "/usr/local/apache/htdocs" 
  b) 并打开启用 Include /etc/httpd/extra/httpd-vhosts.conf
  c) 同时定位 AddType;添加下面两行
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
  d) 并且定位至DirectoryIndex
    <IfModule dir_module>
      DirectoryIndex index.php index.html #添加index.php(最好添加在最前面)
    </IfModule>
  e) 启动模块, 还要启用proxy_module proxy-fcgi_module等
    LoadModule proxy_module modules/mod_proxy.so #开启
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #开启

2.编辑虚拟主机配置文件vim /etc/httpd/extra/httpd-vhosts.conf

<VirtualHost *:80>
  DocumentRoot "/www/glinux"
    ServerName www.glinux.com
    ServerAlias glinux.com
    ErrorLog "/usr/local/httpd/logs/glinux.error_log"
    CustomLog "/usr/local/httpd/logs/glinux.access_log" combined
    ProxyRequests off
    ProxyPassMatch ^/(.*.php)$ fcgi://192.168.205.117:9000/www/glinux/$1
  <Directory "/www/glinux">
    Options none
    AllowOverride None
    Require all granted
  </Directory>
</VirtualHost>

3.在php服务器上的/www/glinux目录下分别建立网页文件, 重启服务即可

vim /www/glinux/index.php
<?php
phpinfo();
?>

4.测试phpinfo成功      

浏览器里输入: http://192.168.205.116

G.PHP支持扩展功能xcache:

1) wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
2) 安装xcache
  a) tar xf xcache-3.2.0.tar.gz
  b) cd xcache-3.2.0
  c) 安装依赖关系
    i) yum -y install m4 autoconf
  d) /usr/local/php/bin/phpize
  e) ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
  f) make && make install
3) 安装完毕后会出现这么一行 Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
4) 编辑php.ini,整合php和xcache:
  a) 首先将xcache提供的样例配置导入php.ini
    i) # mkdir /etc/php.d
    ii) # cp xcache.ini /etc/php.d
    iii) 说明:xcache.ini文件在xcache的源码目录中。
5) 接下来编辑/etc/php.d/xcache.ini,找到extension开头的行,修改为如下行:
  extension = /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so
6) 注意:如果php.ini文件中有多条zend_extension指令行,要确保此新增的行排在第一位。
7) 然后重启服务即在phpinfo的页面中就可看见xcache的选项了。
8) 关闭xcache方法
  a) vim /etc/php.d/xcache.ini
    xcache.size = 0 :设置为0是关闭xcache

H.PHP连接MySQL:

1.mysql数据库修改

use mysql;
grant all privileges on *.* to 'root'@'192.9.205.105' identified by 'william';
select Host,User,Password from user where User='root';
flush privileges;

2.进入php主机编辑index.php文件内容

<?php
$link=mysql_connect('192.168.205.115','root','william');
if($link){
      echo "success..william!";
    }else{
      echo "failed..frank!".mysql_error();
    }
mysql_close($link);
phpinfo();
  ?>

3.测试连接情况切记,要将防火墙关闭!

浏览器里输入: http://192.168.205.116

I.部署phpMyAdmin:

1.下载phpMyAdmin

wget https://files.phpmyadmin.net/phpMyAdmin/4.7.0/phpMyAdmin-4.7.0-all-languages.tar.gz

2.配置phpmyadmin

1) 在php 主机和http主机上分别在/www目录建立一个文件夹glinux, 并同样执行下面操作
2) tar xf phpMyAdmin-4.7.0-all-languages.zip
3) cd /www/glinux
4) mv /root/phpMyAdmin-4.7.0/* ./
5) 接下来在php主机上进行对phpmyadmin的配置。
6) cp config.sample.inc.php config.inc.php
7) vim config.inc.php
   $cfg['Servers'][$i]['host']=‘192.168.205.115’  #数据库服务器的IP地址
   $cfg['blowfish_secret'] = 'william'; #这里的字符随意,这个主要是为了区分cookie。
8) 然后重启三台主机上的服务即可测试。

LAMP: 分布式 HTTP 2.4.25 + PHP 5.4.13 + MySQL 5.5.28 分离部署的更多相关文章

  1. lamp分离部署

    目录 lamp分离部署 1. 安装httpd 2. 安装mysql 3. 安装php 4. 配置apache并部署项目 4.1 启用代理模块 4.2 配置虚拟主机 4.3 部署PbootCMSPHP企 ...

  2. Attribute meta-data#android.support.VERSION@value value=(25.4.0) from AndroidManifest.xml:25:13-35 is also present at AndroidManifest.xml:28:13-35 value=(26.1.0).

    Android Studio 编译项目的时候报错 Merging Errors: Error: Attribute meta-data#android.support.VERSION@value va ...

  3. lamp的动静分离部署

    一.lamp分离部署工作图 二.LAMP的安装与配置 1.环境准备 2.对 PHP 服务器进行部署 #以下为安装PHP及其依赖 [root@php ~ ]# .tar.gz -C /usr/src [ ...

  4. 分布式监控系统Zabbix-3.0.3-完整安装记录(6)-微信报警部署

    Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式. 现在由于微信使用的广泛度,越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推 ...

  5. 分布式监控系统Zabbix-3.0.3-完整安装记录(5)-邮件报警部署

    前面几篇陆续介绍了zabbix3.0.3监控系统的部署和监控项配置,今天这里分享下zabbix3.0.3的邮件报警的配置过程~由于采用sendmail发送邮件,常常会被认为是垃圾邮件被拒,所以不推荐这 ...

  6. Golang分布式爬虫:抓取煎蛋文章|Redis/Mysql|56,961 篇文章

    --- layout: post title: "Golang分布式爬虫:抓取煎蛋文章" date: 2017-04-15 author: hunterhug categories ...

  7. 适合初学者的一个分布式环境搭建过程(spring boot + zookeeper + dubbo + mybatis + mysql)

    本人也是才开始接触 阿里巴巴的开源分布式框架 dubbo,因为现在微服务框架 spring boot也非常的火,然后结合dubbo的官网搭建这个开发环境. 一.首先 zookeeper作为集群管理服务 ...

  8. 5月25号开学! 第13期《python3自动化测试selenium+接口》课程,python零基础也能学

    2019年 第13期<python3自动化测试selenium+接口>课程,5月25号开学! 主讲老师:上海-悠悠 上课方式:QQ群视频在线教学 本期上课时间:5月25号-7月28号,每周 ...

  9. Ubuntu 17.10 用 apt 搭建 lamp 环境、安装 phpmyadmin、redis 服务+扩展、mysql 扩展、开启错误提示、配置虚拟主机

    2018-02-24 13:50:30 更新: 个人喜欢相对原生又不太麻烦,所以用 apt 构建环境.不过,最近使用到现在记得出现过了 3 次 apache 或 mysql 服务器无法启动或无法连接的 ...

随机推荐

  1. 手算CRC及其实现

    前言: 这篇文章主要讲的是如何手算CRC以及运用CRC,更侧重方法的步骤,对原理方面不做探讨. 方法也是按照我个人理解的来,所以并不专业~ 一些搬过来的代码我也修改了一下下 如果想了解原理的可参考资料 ...

  2. KMP 和 扩展KMP

    KMP:在主串S中找子串T的位置KMP算法的时间复杂度O(|S|+|T|). #define maxn 1000 char s[maxn],t[maxn];//s为主串,t为子串 int net[ma ...

  3. 【转】ArcGIS 10.1 for Server 架构

    前一段时间在博客中公布了我们的计划,我们采用博客的形式将对ArcGIS10.1 for Server进行全面介绍.但这种形式有一定的遗憾:缺少互动的空间,所以我们希望广大爱好者能将自己感兴趣的话题在博 ...

  4. 在idea中运行GitHub项目

    1.首先在本地建一个文件夹,比如qm 2. 在GitHub中找到你所运行项目的路径 3.在idea中[File]-->[New]--->[Project from Version Cont ...

  5. 根据输入参数,判定时间范围CheckTimeSpan

    对于C#的开发的网页程式,一些企业或者工厂可能会运用这些程式去查询一些资料,考虑到查询的资料太多,假如一个月的资料就有上万条数据,在对于查询资料的SQL语句后时间栏位运用Between.....AND ...

  6. express项目创建

    npm install express-generator -g       全局安装express生成器 express -h  帮助中心 express 项目名 npm i    安装依赖 nod ...

  7. .Net Core Web Api实践(四)填坑连接Redis时Timeout performing EVAL

    前言:前两篇文章.net core+Redis+IIS+nginx实现Session共享中,介绍了使用Microsoft.Extensions.Caching.Redis实现Session共享的方法, ...

  8. 云原生 - 体验Istio的完美入门之旅(一)

    作者:justmine 头条号:大数据达摩院 微信公众号:大数据处理系统 创作不易,在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处. 为了方便大家阅读,可以关注头条号或微信公众号,后 ...

  9. codeforces 上的找两人的幸运天

    Bob and Alice are often participating in various programming competitions. Like many competitive pro ...

  10. 牛客暑期ACM多校 第七场

    链接:https://www.nowcoder.com/acm/contest/145/C来源:牛客网 C .题目描述 A binary string s of length N = 2n is gi ...