Linux 6 下编译安装 PHP 5.6

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。

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
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
Java Linux 开发工具
linux如何编译安装源码包软件
源码包软件是包含源代码的软件包,常见于Linux和BSD系统,如fcitx和Lumaqq。开源软件需满足源代码可见且有宽松许可,如GPL。安装源码包通常涉及解压、编译和安装步骤,使用`tar`命令解包,通过`./configure`, `make`, `make install`进行编译安装。软件源码允许定制和二次开发,但须遵循许可协议。安装前确保安装了必要的开发工具和库。对于perl和python程序,直接使用perl或python命令安装。推荐使用系统软件包管理工具如RPM、yum或apt进行管理,以简化流程。
131 0
|
2月前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
948 67
|
4月前
|
SQL 关系型数据库 MySQL
linux 上源码编译安装 PolarDB-X
linux 上源码编译安装 PolarDB-X
192 6
linux 上源码编译安装 PolarDB-X
|
4月前
|
Linux PHP
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
52 2
|
4月前
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
|
4月前
|
应用服务中间件 Linux 网络安全
【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法
【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法
|
4月前
|
Linux PHP
【Azure 应用服务】PHP项目部署到App Service for Linux环境中,如何修改上传文件大小的限制呢?
【Azure 应用服务】PHP项目部署到App Service for Linux环境中,如何修改上传文件大小的限制呢?
|
4月前
|
存储 安全 Linux
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
【Azure 应用服务】App Service For Linux 怎么安装Composer,怎么安装PHP扩展,怎么来修改站点根路径启动程序?
|
4月前
|
存储 关系型数据库 Linux
【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php
【Azure 应用服务】App Service For Linux 部署PHP Laravel 项目,如何修改首页路径为 wwwroot\public\index.php
|
4月前
|
应用服务中间件 Linux PHP
Linux搭建tengine2.0<Nginx>+php7环境
本文介绍了在Linux系统上搭建Tengine 2.0(一个Nginx的增强版本)和PHP 7环境的详细步骤,包括创建安装目录、下载源码包及依赖库、编译安装Nginx、配置Nginx、安装PHP及其依赖、设置PHP-FPM、配置环境变量、安装Git和Composer,以及服务管理和日志查看等。
96 0