侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

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

php  /  管理员 发布于 7年前   208

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-devel3、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-devel5、图形相关的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.phpHTTP/1.1 200 OKDate: Fri, 15 Jul 2016 03:16:50 GMTServer: Apache/2.4.9 (Unix)X-Powered-By: PHP/5.6.9Content-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中正确的安装Xcache加速php
    下一条:
    nginx配置支持php的pathinfo模式配置方法
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客