目录

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) 然后重启三台主机上的服务即可测试。

最新文章

  1. 基于吉日嘎拉的通用权限管理Webform版老界面bug修复
  2. java 枚举类 enum 总结
  3. Haskell 与范畴论
  4. vc中openGL的安装
  5. objectarx 卸载加载arx模块
  6. Jquery div边框大全
  7. 使用Identity Server 4建立Authorization Server (3)
  8. 【原创】大数据基础之Zookeeper(2)源代码解析
  9. rtf乱码解决办法
  10. vbuffer.hpp
  11. CentOS 7上安装Pure-FTPd
  12. 使用顽灯浏览器执行H5游戏辅助挂机
  13. java注解 @SuppressWarnings注解用法
  14. 空类指针为什么可以调用类的成员函数 以及 A(){}和A();
  15. [转帖] Linux buffer 和 cache相关内容
  16. mysqld --debug=d:t:i:O:n --user=mysql (源码调试)
  17. Linux中fork()函数的底层实现【转】
  18. vim进阶-自己设置vim编辑器
  19. consul部署多台Docker集群
  20. input 元素 相对父元素错位

热门文章

  1. C#反射与特性(七):自定义特性以及应用
  2. 【JavaScript学习笔记】数据类型
  3. [AI开发]小型数据集解决实际工程问题——交通拥堵、交通事故实时告警
  4. dubbo配置文件解读(1)
  5. Mysql连接出现时区问题
  6. ELK学习实验018:filebeat收集docker日志
  7. python sys.modules 和 sys.path 及 __name__
  8. Elastcisearch.Nest 7.x 系列`伪`官方翻译:通过 NEST 来快捷试用 Elasticsearch
  9. 关于Spring集成Quartz的concurrent属性
  10. (转) exp1-1:// 一次有趣的XSS漏洞挖掘分析(1)