编译自:http://linoxide.com/linux-how-to/install-php-7-centos-7-fedora-21/作者: Aun Raza
原创:LCTT https://linux.cn/article-5501-1.html译者: wi-cuckoo
转载地址:https://linux.cn/article-5501-1.html

PHP7

  • 为了改善执行效率与内存占用,新的版本添加了PHPNG功能。
  • 引入了JIT引擎来动态编译Zend操作码为自然机器码,以此来达到更快的处理性能。这项功能允许随后的程序调用同一份代码,这样会运行快很多。
  • AST(抽象语法树)是最新添加的功能,它可以增强支持PHP的扩展性和用户应用。
  • 添加异步编程功能以支持同一个请求中的并行任务。
  • 新的版本会支持独立的多线程网页服务器,这样可以使用一个单独的存储池处理很多并发的请求。

在CentOS/Fedora上安装PHP 7

让我们来看看怎样在CentOS 7和Fedora 21安装PHP7。为了安装PHP7,我们首先需要克隆php-src 仓库。当克隆工作完成,我们再配置和编译它。进行下一步之前,我们要确保已经在LInux系统下安装了如下的组件,否则PHP编译会返回错误中止。

  • Git
  • autoconf
  • gcc
  • bison

所有上面提到的要求可以使用Yum软件包管理器安装。以下一条命令即可完成:

  1. yum install git autoconf gcc bison

准备好开始安装PHP7了吗?让我们先创建一个PHP7目录,作为你的当前工作目录。

  1. mkdir php7
  2. cd php7

现在克隆php-src仓库,在终端里运行下面的命令。

  1. git clone https://git.php.net/repository/php-src.git

/*我这里网特别慢,我看了个电影看了顿饭又睡了一觉才好*/

这里是一个样例输出,你应该会在任务完成时看见。

  1. [root@localhost php7]# git clone https://git.php.net/repository/php-src.git
  2. Cloning into 'php-src'...
  3. remote: Counting objects: 615064, done.
  4. remote: Compressing objects: 100% (127800/127800), done.
  5. remote: Total 615064 (delta 492063), reused 608718 (delta 485944)
  6. Receiving objects: 100% (615064/615064), 152.32 MiB | 16.97 MiB/s, done.
  7. Resolving deltas: 100% (492063/492063), done.

让我们来配置,编译PHP7,在终端运行下面的命令,开始配置工作:

  1. cd php-src
  2. ./buildconf

下面是./buildconf命令的样例输出。

  1. [root@localhost php-src]# ./buildconf
  2. buildconf: checking installation...
  3. buildconf: autoconf version 2.69 (ok)
  4. rebuilding aclocal.m4
  5. rebuilding configure
  6. rebuilding main/php_config.h.in

使用下面的命令,继续配置进程:

  1. ./configure \
  2. --prefix=$HOME/php7/usr \
  3. --with-config-file-path=$HOME/php7/usr/etc \
  4. --enable-mbstring \
  5. --enable-zip \
  6. --enable-bcmath \
  7. --enable-pcntl \
  8. --enable-ftp \
  9. --enable-exif \
  10. --enable-calendar \
  11. --enable-sysvmsg \
  12. --enable-sysvsem \
  13. --enable-sysvshm \
  14. --enable-wddx \
  15. --with-curl \
  16. --with-mcrypt \
  17. --with-iconv \
  18. --with-gmp \
  19. --with-pspell \
  20. --with-gd \
  21. --with-jpeg-dir=/usr \
  22. --with-png-dir=/usr \
  23. --with-zlib-dir=/usr \
  24. --with-xpm-dir=/usr \
  25. --with-freetype-dir=/usr \
  26. --with-t1lib=/usr \
  27. --enable-gd-native-ttf \
  28. --enable-gd-jis-conv \
  29. --with-openssl \
  30. --with-mysql=/usr \
  31. --with-pdo-mysql=/usr \
  32. --with-gettext=/usr \
  33. --with-zlib=/usr \
  34. --with-bz2=/usr \
  35. --with-recode=/usr \
  36. --with-mysqli=/usr/bin/mysql_config

这会花去不少的时间,当完成后你应该会看到如下面的输出:

  1. creating libtool
  2. appending configuration tag "CXX" to libtool
  3. Generating files
  4. configure: creating ./config.status
  5. creating main/internal_functions.c
  6. creating main/internal_functions_cli.c
  7. +--------------------------------------------------------------------+
  8. | License: |
  9. | This software is subject to the PHP License, available in this |
  10. | distribution in the file LICENSE. By continuing this installation |
  11. | process, you are bound by the terms of this license agreement. |
  12. | If you do not agree with the terms of this license, you must abort |
  13. | the installation process at this point. |
  14. +--------------------------------------------------------------------+
  15. Thank you for using PHP.
  16. config.status: creating php7.spec
  17. config.status: creating main/build-defs.h
  18. config.status: creating scripts/phpize
  19. config.status: creating scripts/man1/phpize.1
  20. config.status: creating scripts/php-config
  21. config.status: creating scripts/man1/php-config.1
  22. config.status: creating sapi/cli/php.1
  23. config.status: creating sapi/cgi/php-cgi.1
  24. config.status: creating ext/phar/phar.1
  25. config.status: creating ext/phar/phar.phar.1
  26. config.status: creating main/php_config.h
  27. config.status: executing default commands

运行下面的命令,完成编译过程。

  1. make

“make”命令的样例输出如下所示:

  1. Generating phar.php
  2. Generating phar.phar
  3. PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
  4. clicommand.inc
  5. directorytreeiterator.inc
  6. directorygraphiterator.inc
  7. pharcommand.inc
  8. invertedregexiterator.inc
  9. phar.inc
  10. Build complete.
  11. Don't forget to run 'make test'.

安装PHP7,运行下面的命令安装它。

  1. make install

成功安装的进程的样例输出应该像这样:

  1. [root@localhost php-src]# make install
  2. Installing shared extensions: /root/php7/usr/lib/php/extensions/no-debug-non-zts-20141001/
  3. Installing PHP CLI binary: /root/php7/usr/bin/
  4. Installing PHP CLI man page: /root/php7/usr/php/man/man1/
  5. Installing PHP CGI binary: /root/php7/usr/bin/
  6. Installing PHP CGI man page: /root/php7/usr/php/man/man1/
  7. Installing build environment: /root/php7/usr/lib/php/build/
  8. Installing header files: /root/php7/usr/include/php/
  9. Installing helper programs: /root/php7/usr/bin/
  10. program: phpize
  11. program: php-config
  12. Installing man pages: /root/php7/usr/php/man/man1/
  13. page: phpize.1
  14. page: php-config.1
  15. Installing PEAR environment: /root/php7/usr/lib/php/
  16. [PEAR] Archive_Tar - installed: 1.3.13
  17. [PEAR] Console_Getopt - installed: 1.3.1
  18. [PEAR] Structures_Graph- installed: 1.0.4
  19. [PEAR] XML_Util - installed: 1.2.3
  20. [PEAR] PEAR - installed: 1.9.5
  21. Wrote PEAR system config file at: /root/php7/usr/etc/pear.conf
  22. You may want to add: /root/php7/usr/lib/php to your php.ini include_path
  23. /root/php7/php-src/build/shtool install -c ext/phar/phar.phar /root/php7/usr/bin
  24. ln -s -f /root/php7/usr/bin/phar.phar /root/php7/usr/bin/phar
  25. Installing PDO headers: /root/php7/usr/include/php/ext/pdo/

恭喜你,PHP7已经安装在你的Linux系统上了。安装完后,进入PHP7安装文件里的sapi/cli里面。

  1. cd sapi/cli

验证一下PHP的版本。

  1. [root@localhost cli]# ./php -v
  2. PHP 7.0.0-dev (cli) (built: Mar 28 2015 00:54:11)
  3. Copyright (c) 1997-2015 The PHP Group
  4. Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies

总结

PHP 7也添加到了remi仓库,这个即将到来的版本主要关注执行效率的提升,它的新特性致力于使PHP较好满足现代编程的需求和趋势。PHP 7.0将会有许多新的特性、丢弃一些老版本的东西。在接下来的日子里,我们希望看到新特性和弃用功能的具体情况。希望你喜欢!

在 CentOS 7.x / Fedora 21 上面体验 PHP 7.0的更多相关文章

  1. 在同一个硬盘上安装多个 Linux 发行版及 Fedora 21 、Fedora 22 初体验

    在同一个硬盘上安装多个 Linux 发行版 以前对多个 Linux 发行版的折腾主要是在虚拟机上完成.我的桌面电脑性能比较强大,玩玩虚拟机没啥问题,但是笔记本电脑就不行了.要在我的笔记本电脑上折腾多个 ...

  2. Fedora 21 安装 Nvidia 驱动以及失败后的补救方法

    在 Linux 桌面系统下玩了这么久,大部分时间都是使用 Ubuntu,偶尔使用一下 Fedora.我的电脑中安装有多个 Linux 发行版,见这里<在同一个硬盘上安装多个Linux发行版及Fe ...

  3. Fedora 21 64位系统安装WPS教程

    WPS的Linux版本的出现简直是Linux党的福音,Ubuntu上的WPS安装非常简单,但是在Fedora上却有点小麻烦.主要是库的依赖问题.下面记录一下Fedora 21的64位版安装WPS的完整 ...

  4. Fedora 21 install chrome

    Steps to install Google Chrome on Fedora 21 A. Create google-chrome.repo file Use this command to cr ...

  5. Fedora 21 中添加及更新源的命令

    原文: Fedora 21 中添加及更新源的命令 fedora的软件源信息文件(*.repo)都是放在 /etc/yum.repos.d 目录下的.可以通过# ls -l /etc/yum.repos ...

  6. Fedora 21 安装Infinality

    原文地址: Fedora 21 用infinality美化你的字体 http://blog.csdn.net/element207/article/details/41746683 安装infinal ...

  7. Fedora 21 安装 Budgie Desktop

    最新文章:Virson's Blog Budgie Desktop 是一款自由开源桌面,是 Evolve OS 的默认桌面,Evolve OS 是一款 OpenSUSE 的衍生系统.Budgie De ...

  8. 安装Fedora 21工作站后要做的10件事情

    教程]安装Fedora 21工作站后要做的10件事情 2015-01-07 13:32 CSDN CODE 作者CSDN CODE 1 755 FedoraGNOMELinux Fedora 21已经 ...

  9. [转载]Install Opera 12.16 Web Browser in CentOS/RHEL and Fedora

    FROM: http://tecadmin.net/install-opera-web-browser-in-centos-rhel-fedora/ Opera is an modern web br ...

随机推荐

  1. bzoj 3504: [Cqoi2014]危桥

    #include<cstdio> #include<iostream> #include<cstring> #define M 100009 #define inf ...

  2. 第一篇:Retrofit主要类UML图

    2016-05-06 16:07:09 1.先上一张Retrofit的代码结构图: 可以看到,Retrofit自身的结构很简单,代码量也不是很大.红色框部分是一些注解类,就是一些标记. 简单的看一下客 ...

  3. 《JavaScript高级程序设计》读书笔记--(1)JavaScript简介

    概述 JavaScript是一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HT ...

  4. 【重要!】告K2老客户书

    K2近期升级优化了售后支持系统,以便能更好的为亲爱的老客户们答疑解惑,比如:“老妈和老婆掉水里先救谁”.“中午吃啥晚上吃啥”.“技术男怎么学会撩妹”……这些问题,统统不会告诉你.售后TEAM作为一支专 ...

  5. 入门struts2.0

    框架是什么? 1.应用程序的半成品. 2.可重用行公共的结构. 3.按一定规则组织的一组组件. model2 其实并不是一种全新的概念,很对人指出model2其实正好是经典的"模型(mode ...

  6. 排序系列 之 简单选择排序及其改进算法 —— Java实现

    简单选择排序算法: 基本思想: 在待排序数据中,选出最小的一个数与第一个位置的数交换:然后在剩下的数中选出最小的数与第二个数交换:依次类推,直至循环到只剩下两个数进行比较为止. 实例: 0.初始状态 ...

  7. 团队开发——冲刺2.e

    冲刺阶段二(第五天) 1.昨天做了什么? 讨论“暂停”功能:编写软件测试计划书(引言.测试内容). 2.今天准备做什么? A.编写软件使用说明书: B.编写软件测试计划书(测试规则.测试环境): C. ...

  8. SqlServer类库(自定义)

    1,引用System.Configuration; 2,新建应用程序配置文件 读取SqlDataReader中的数据用where (read.Read()){//DoSomeThings()}

  9. MFC 屏幕截图方法

    //获取当前屏幕的并且保存图片 LRESULT CFeetScanView::SaveViewBMP(WPARAM wParam, LPARAM lParam) { CRect rect; this- ...

  10. 【转】深入理解JavaScript闭包闭包(closure) (closure)

    一.什么是闭包?"官方"的解释是:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.相信很少有人能直接看懂这句话,因为他描述 ...