全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Linux 6 下编译安装 PHP 5.6实例详解

Linux 6 下编译安装 PHP 5.6实例详解

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP以其开发源代码,免费,快捷,跨平台,高效,面向对象,强大的动态图像创建等功能深受广大开发者的喜爱。本文描述基于CentOS 6.7下编译安装PHP 5.6.9,同样也适用于CentOS 7下安装。

一、相关依赖包安装

1、演示环境


# more /etc/redhat-release 
CentOS release 6.7 (Final)

2、扩展支持(mcrypt、mhash扩展和libevent)
如果想让编译的php支持mcrypt、mhash扩展和libevent,需要安装以下包
    libmcrypt
    libmcrypt-devel
    mhash
    mhash-devel

说明:
mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。
mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。
mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存(如密码)等。

centos源不能安装libmcrypt-devel,由于版权的原因没有自带mcrypt的包
可以使用第三方源,这样还可以使用yum来安装
安装第三方yum源
    # wget http://www.atomicorp.com/installers/atomic
    # sh ./atomic
使用yum命令安装
    # yum install php-mcrypt libmcrypt libmcrypt-devel mhash mhash-devel

3、libevent相关包
可以根据需要安装libevent,系统一般会自带libevent,但版本有些低。因此可以升级安装如下两个rpm包。
    # yum install libevent libevent-devel

说明:
libevent是一个异步事件通知库文件,其API提供了在某文件描述上发生某事件时或其超时时执行回调函数的机制
它主要用来替换事件驱动的网络服务器上的event loop机制。
目前来说, libevent支持/dev/poll、kqueue、select、poll、epoll及Solaris的event ports。

4、支持xml的相关包
支持xml的rpm包
bzip2 是一个基于Burrows-Wheeler 变换的无损压缩软件能够高效的完成文件数据的压缩
libcurl主要功能就是用不同的协议连接和沟通不同的服务器,也就是相当封装了的sockPHP 
libcurl允许你用不同的协议连接和沟通不同的服务器
    # yum install libxml2 libxml2-devel bzip2-devel libcurl-devel

5、图形相关的rpm包
通常对应的错误提示:JIS-mapped Japanese font support in GD
    # yum install libjpeg-devel libpng-devel freetype-devel

二、编译安装php-5.6.9

首先下载源码包至本地目录,下载位置http://mirrors.sohu.com/php/
# pwd
  /usr/local/src
# tar -xf php-5.6.9.tar.gz
# cd ..
# ~ln -sv ./src/php-5.6.9 php~  ###说明:考虑编译后的简洁,此命令移除@20160729 
# cd php/
# ./configure \       ###说明:编译的内容被调整@20160729
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-opcache \
--enable-fpm \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-pdo-mysql=/usr/local/mysql \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--with-curl \
--with-zlib \
--enable-zip \
--with-bz2 \
--with-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir

###有关编译配置项的详细描述:https://segmentfault.com/a/1190000002717262
# make && make install
###以下为安装完毕之后的提示信息
    Installing shared extensions: 
     /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
    Installing PHP CLI binary:   /usr/local/php/bin/
    Installing PHP CLI man page:  /usr/local/php/php/man/man1/
    Installing PHP FPM binary:   /usr/local/php/sbin/
    Installing PHP FPM config:   /usr/local/php/etc/
    Installing PHP FPM man page:  /usr/local/php/php/man/man8/
    Installing PHP FPM status page:  /usr/local/php/php/php/fpm/
    Installing PHP CGI binary:   /usr/local/php/bin/
    Installing PHP CGI man page:  /usr/local/php/php/man/man1/
    Installing build environment: /usr/local/php/lib/php/build/
    Installing header files:    /usr/local/php/include/php/
    Installing helper programs:  /usr/local/php/bin/
     program: phpize
     program: php-config
    Installing man pages:     /usr/local/php/php/man/man1/
     page: phpize.1    ### Author : Leshami
     page: php-config.1  ### Blog  : http://blog.csdn.net/leshami
    Installing PEAR environment:   /usr/local/php/lib/php/
    [PEAR] Archive_Tar  - installed: 1.3.12
    [PEAR] Console_Getopt - installed: 1.3.1 
    [PEAR] Structures_Graph- installed: 1.0.4 
    [PEAR] XML_Util    - installed: 1.2.3
    [PEAR] PEAR      - installed: 1.9.5
    Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
    You may want to add: /usr/local/php/lib/php to your php.ini include_path
    /usr/local/php/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
    ln -s -f /usr/local/php/bin/phar.phar /usr/local/php/bin/phar
    Installing PDO headers:     /usr/local/php/include/php/ext/pdo/

###php配置
    php.ini是php运行核心配置文件
    php-fpm.conf是php-fpm进程服务的配置文件

# cp php.ini-production /usr/local/php/etc/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm

###fpm测试php配置
# /usr/local/php/sbin/php-fpm -t
[23-May-2016 20:03:52] NOTICE: 
configuration file /usr/local/php/etc/php-fpm.conf test is successful

# chkconfig --add php-fpm
# chkconfig php-fpm on
# service php-fpm start
    Starting php-fpm done
# ps -ef|grep php
    root 45690 1 0 20:07 ? 00:00:00 php-fpm: master process(/usr/local/php/etc/php-fpm.conf)                                  
    nobody 45691 45690 0 20:07 ?   00:00:00 php-fpm: pool www                                                      
    nobody 45692 45690 0 20:07 ?   00:00:00 php-fpm: pool www                                                      
    root  45694  3441 0 20:07 pts/4 00:00:00 grep php

# netstat -nltp|grep 9000
    tcp 0  0 127.0.0.1:9000  0.0.0.0:*  LISTEN  45690/php-fpm  

三、配置apache访问PHP

###开启以下模块
# vim /etc/httpd24/httpd.conf   ###注意此处,我这里是单独编译安装的httpd2.4版本,所以路径有所不同
    LoadModule proxy_module modeles/mod_proxy.so
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

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

    ProxyRequests Off   ###关闭正向代理,开启下行的反向代理
    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/$1

# service httpd24 restart
    Stopping httpd24:       [ OK ]
    Starting httpd24:       [ OK ]

四、验证PHP

###编写一个php页面测试
# echo "
> <html>
> <h1>This is a php test page.</h1>
> <?php
> phpinfo();
> ?>
> </html>">>/usr/local/apache/htdocs/index.php 

###测试PHP
# curl -I http://localhost:90/index.php
HTTP/1.1 200 OK
Date: Fri, 15 Jul 2016 03:16:50 GMT
Server: Apache/2.4.9 (Unix)
X-Powered-By: PHP/5.6.9
Content-Type: text/html; charset=UTF-8

五、对于本机未安装mysql数据库的情形(补充@20160718)

PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包。
mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖)。
从PHP 5.4开始,对于未明确指定--with-mysql的情形,mysql本地驱动将会被安装。
可以参考如下配置:

./configure        \ ###修改@20160729
  ..........       \ ###参数同上,仅仅是mysql相关参数值设置为mysqlnd
--with-mysql       \ ###相当于该参数值为mysqlnd
--with-mysqli       \ ###相当于该参数值为mysqlnd
--with-pdo-mysql     \ ###相当于该参数值为mysqlnd

有关mysqlnd可以参考:
http://php.net/manual/zh/mysqli.overview.php#mysqli.overview.mysqlnd

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Linux  # 6  # 下编译安装  # PHP  # 5.6  # linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程  # Linux(CentOS)下PHP扩展PDO编译安装的方法  # Linux下编译安装php libevent扩展实例  # Linux+php+apache+oracle环境搭建之CentOS下源码编译安装PHP  # Linux下手动编译安装PHP扩展的例子分享  # Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 red  # 是一个  # 值为  # 适用于  # 自带  # 本机  # 绑定  # 配置文件  # 是一种  # 还可以  # 将会  # 就不  # 提示信息  # 有所不同  # 希望能  # 仅仅是  # 可以使用  # 可以实现  # 以其  # 想让  # 等功能 


相关文章: 如何解决ASP生成WAP建站中文乱码问题?  如何打造高效商业网站?建站目的决定转化率  攀枝花网站建设,攀枝花营业执照网上怎么年审?  建站ABC备案流程中有哪些关键注意事项?  微信h5制作网站有哪些,免费微信H5页面制作工具?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  上海网站制作开发公司,上海买房比较好的网站有哪些?  深圳网站制作的公司有哪些,dido官方网站?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  建站之星安装后如何自定义网站颜色与字体?  IOS倒计时设置UIButton标题title的抖动问题  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  建站主机如何安装配置?新手必看操作指南  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  建站之星后台管理系统如何操作?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  建站VPS配置与SEO优化指南:关键词排名提升策略  建站之家VIP精选网站模板与SEO优化教程整合指南  较简单的网站制作软件有哪些,手机版网页制作用什么软件?  *服务器网站为何频现安全漏洞?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  南京网站制作费用,南京远驱官方网站?  如何通过山东自助建站平台快速注册域名?  视频网站制作教程,怎么样制作优酷网的小视频?  如何通过NAT技术实现内网高效建站?  如何彻底卸载建站之星软件?  网站制作公司排行榜,四大门户网站排名?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  创业网站制作流程,创业网站可靠吗?  宝塔Windows建站如何避免显示默认IIS页面?  如何用搬瓦工VPS快速搭建个人网站?  高防服务器如何保障网站安全无虞?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  内网网站制作软件,内网的网站如何发布到外网?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  建站上市公司网站建设方案与SEO优化服务定制指南  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  如何在IIS7上新建站点并设置安全权限?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  如何配置IIS站点权限与局域网访问?  如何快速搭建二级域名独立网站?  招商网站制作流程,网站招商广告语?  定制建站方案优化指南:企业官网开发与建站费用解析  建站主机与服务器功能差异如何区分?  如何快速搭建高效简练网站?  网站制作软件免费下载安装,有哪些免费下载的软件网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。