CentOS6.7上编译安装php

环境:CentOS6.7,minimal安装。

前提条件:安装了编译环境,安装了Apache/Nginx,安装了MySQL/MariaDB。具体安装见:http://www.178linux.com/16583    http://www.178linux.com/17497 

1、解决依赖关系:


请配置好yum源(系统安装源及epel源)后执行如下命令:

# yum -y groupinstall "Desktop Platform Development" 
# yum -y install bzip2-devel libmcrypt-devel libxml2-devel
[root@localhost php-5.4.45]# yum -y install bzip2-devel libmcrypt-devel libxml2-devel
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: centos.ustc.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
Package bzip2-devel-1.0.5-7.el6_0.x86_64 already installed and latest version
No package libmcrypt-devel available.
Package libxml2-devel-2.7.6-21.el6.x86_64 already installed and latest version
Nothing to do


如果提示说 libmcrypt-devel无法安装,请安装epel源

解决方法:

yum  install epel-release  //扩展包更新包
yum  update //更新yum源
yum install libmcrypt libmcrypt-devel mcrypt mhash  就ok了



2、编译安装php-5.4.26


首先下载源码包至本地目录,下载位置ftp://172.16.0.1/pub/Sources/new_lamp,或者用wget方法下载,具体下载用法见我前面博客。


# tar xf php-5.4.26.tar.bz2
# cd php-5.4.26
# ./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/apache24/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2  --enable-maintainer-zts


说明:

1、这里为了支持apache的worker或event这两个MPM,编译时使用了–enable-maintainer-zts选项。

2、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。

# ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
# make -j 10
# make test
# make intall

3、为php提供配置文件

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

 编辑apache配置文件httpd.conf,以apache支持php


# vim 
/usr/local/apache24/conf/httpd.conf


 1)添加如下二行

AddType application/x-httpd-php  .php
   AddType application/x-httpd-php-source  .phps

 2)定位至DirectoryIndex index.html 

   修改为:

DirectoryIndex  index.php  index.html


而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。



测试页面index.php示例如下:

<?php
    $link = mysql_connect('127.0.0.1','root','mageedu');
    if ($link)
        echo "Success...";
    else
        echo "Failure...";
    mysql_close();
    phpinfo();
?>

4、安装phpMyadmin

# unzipphpMyAdmin-4.6.2-all-languages
# mv phpMyAdmin-4.6.2-all-languages /usr/local/apache24/htdocs/pmc
# cd/usr/local/apache24/htdocs/pmc
# cp config.sample.inc.php config.inc.php
# vim /usr/local/apache24/htdocs/pmc/config.inc.php

填充以下参数(这里的参数随便填写):

$cfg['blowfish_secret'] = 'sdaf32gretg435yerfwr<F>saadf';

phpmyadmin.png

测试访问phpMyadmin。访问phpMyadmin时,mysql需要密码,空密码不允许访问。

给mysql用户添加密码,删除空密码帐号。

mariadb.png

访问测试:http://192.168.163.13/pmc

5、安装xcache,为php加速

1)压力测试:

ab -c 10 -n 100 http://192.168.163.13/pmc/index.php
ab -c 100 -n 10000 http://192.168.163.13/pmc/index.php

多测试几次。然后安装xcache后再压力测试,对比。

2)安装xcache:

# tar xf xcache-3.2.0.tar.gz 
# cd xcache-3.2.0
# /usr/local/php/bin/phpize
# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
# make && make install

3)编辑php.ini,整合php和xcache

安装结束时,会出现类似如下行:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20131226/

首先将xcache提供的样例配置导入php.ini。或者创建php配置文件的分段目录

[root@localhost xcache-3.2.0]# mkdir /etc/php.d
[root@localhost xcache-3.2.0]# cp xcache.ini /etc/php.d
[root@localhost xcache-3.2.0]# vim /etc/php.d/xcache.ini 
[root@localhost xcache-3.2.0]# service httpd24 reload

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


接下来编辑/etc/php.d/xcache.ini,找到zend_extension开头的行,修改为如下行:

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


注意:如果php.ini文件中有多条zend_extension指令行,要确保此新增的行排在第一位。

再测试对比。

原创文章,作者:Net17-卓格,如若转载,请注明出处:http://www.178linux.com/17513

(0)
Net17-卓格Net17-卓格
上一篇 2016-06-03 15:00
下一篇 2016-06-03 15:09

相关推荐

  • 第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who (unknown) :0           2016-12-15 2…

    Linux干货 2016-12-20
  • linux常用基础命令简介

    linux常用基础命令简介 linux入门 基础 笔记 linux新手入门常用命令语法参数简介 linux常用基础命令简介 cd 语法 选项 ls 语法 选项 echo 语法 选项 history 语法 选项 man 语法 选项 cd cd命令用来切换工作目录至指定目录。 其中指定目录表示法可为绝对路径或相对路径。若目录名称省略,则变换至…

    Linux干货 2017-03-26
  • 软件编译安装小结

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1439073     本文主要针对 configure 和 cmake 做一个介绍以及我们重新配置编译参数文件时,都需要做哪些清…

    Linux干货 2016-08-15
  • bash脚本编程class 1

    命令集构成的shell与变量赋予其的灵活性     一.shell脚本的基本构成和调用方式   shell脚本由基本文件构成,调用shell文件有两种方式:bash+file.sh或source+file.sh的绝对路径,其中后一种需要对文件添加用户执行权限。这两种调用方式都能执行shell文件,但是所执行的位置不同,…

    Linux干货 2016-08-15
  • 通过FTP服务怒刷基础功法熟练度(匿名篇)

        Linux门派多种多样,那么本次就讲讲本人刷基本命令熟练度的方法。FTP原理什么的都不说了,网上有很多。直接上酸菜~学徒水平,大师勿笑。     本篇搭载的是FTP匿名用户访问,同时可以在服务器上进行创建删除等操作。危险系数有点点大,仅推荐用来刷命令熟练度使用。我用的Li…

    2017-07-25
  • LB Cluster 负载均衡集群 —-lvs 配置详解

    lvs : ipvs scheduler: 根据其调度时是否考虑各RS当前的负载状态,可分为静态方法和动态方法两种: 1、静态方法:仅根据算法本身进行调度; RR:roundrobin,轮询; WRR:Weighted RR,加权轮询; SH:Source Hashing,实现session sticy,源IP地址hash;将来自于同一个IP地址的请求始终发…

    Linux干货 2016-10-30