目录

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

 . /etc/rc.d/init.d/functions
#chkconfig:
# # pull in sysconfig settings
[ -f /etc/sysconfig/httpd ] && . /etc/sysconfig/httpd
HTTPD_LANG=${HTTPD_LANG-"C"}
INITLOG_ARGS=""
#apachectl=/usr/local/apache/bin/apachctl
#httpd=${HTTPD-/usr/local/apache/bin/httpd}
httpd=${HTTPD-/usr/local/httpd/bin/apachectl}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL= start()
{
echo -n $"Starting $prog: "
LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq ] && touch $lockfile
return $RETVAL
} stop()
{
echo -n $"Stopping $prog: "
killproc -p ${pidfile} -d $httpd
RETVAL=$?
# if we are in halt or reboot runlevel kill all running sessions
# so the TCP connections are closed cleanly
echo
[ $RETVAL -eq ] && rm -f ${lockfile} ${pidfile}
} reload()
{
echo -n $"Reloading $prog: "
if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
RETVAL=$?
echo $"not reloading due to configuration syntax error"
failure $"not reloading $httpd due to configuration syntax error"
else
killproc -p ${pidfile} $httpd -HUP
RETVAL=$?
fi
echo
} restart() {
stop
start
} case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p ${pidfile} $httpd
RETVAL=$?
;;
restart)
restart
;;
condrestart)
if [ -f ${pidfile} ]; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit
esac 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. Faceted project metadata file "/.settings/org.eclipse.wst.common.project.facet.core.xml" could not be read

    转载自 https://blog.csdn.net/qing_gee/article/details/79397052 Eclipse启动后项目报了下图这个错误,说是org.eclipse.wst.c ...

  2. ubuntu下使用APT安装和卸载MySQL5.7

    安装方式一: 向系统的软件仓库中列表中添加MySQL APT  仓库 去http://dev.mysql.com/downloads/repo/apt/.下载MySQL APT repository ...

  3. 【一起学源码-微服务】Hystrix 源码一:Hystrix基础原理与Demo搭建

    说明 原创不易,如若转载 请标明来源! 欢迎关注本人微信公众号:壹枝花算不算浪漫 更多内容也可查看本人博客:一枝花算不算浪漫 前言 前情回顾 上一个系列文章讲解了Feign的源码,主要是Feign动态 ...

  4. GitHub高级搜索指南

    还在为自学时找不到适合练手的项目而苦恼? 还在好奇别人是如何在GitHub众多项目中找到高质量代码的? 真的是因为他们独具慧眼吗? 不,其实他们只是掌握了正确的搜索方法. 下面介绍几种常用的GitHu ...

  5. 真机调试报The executable was signed with invalid entitlements.错误

    真机运行时,提示The executable was signed with invalid entitlements.(The entitlements specified in your appl ...

  6. java 类初识

    一.定义 成员变量 成员方法 注意: 1.成员变量有默认值,是全局变量 2.成员方法,不需要使用static 3.成员变量的默认值 整型 0 浮点型 0.0 引用数据类型 null 二.使用 1.导包 ...

  7. form get

    <form action=""> <input type="text" name="query" id="&qu ...

  8. 5.JavaSE之数据类型详解

    数据类型: 强类型语言: 要求变量的使用严格要求符合规定,写错了就不行,所有变量都必须先定义后才能使用,否则是不能使用的. 比如Java.C++都是强类型语言,也就是说,一旦定义了一个变量,只定义了某 ...

  9. spring cloud的配置

    注解篇 @EnableEurekaServer 注解启动一个服务注册中心提供给其他应用进行对话 @EnableDiscoveryClient 激活Eureka中的DiscoveryClient实现 配 ...

  10. python 继承机制(子类化内置类型)

    1. 如果想实现与某个内置类型具有类似行为的类时,最好的方法就是将这个内置类型子类化. 2. 内置类型子类化,其实就是自定义一个新类,使其继承有类似行为的内置类,通过重定义这个新类实现指定的功能. c ...