在 CentOS 7.x / Fedora 21 上面体验 PHP 7.0

在 CentOS 7.x / Fedora 21 上面体验 PHP 7.0

PHP是一种为我们熟知的通用服务器网页脚本语言。非常多的在线网站都是用PHP编写的。PHP这些年来一直在持续进化,丰富其功能,变得易于使用,更好地组织的脚本语言。目前PHP的开发团队正筹备下一个PHP版本的发行,名字是PHP 7。现在的PHP版本为PHP 5.6,可能你清楚PHP 6已经流产了,PHP 7的支持者们不希望下一个重要的版本被其他分支混淆,即过去已经停止很久的PHP 6。所以决定下一个PHP主要的发行版本叫PHP 7,而不是PHP 6。PHP 7.0预计在今年十一月份发行。

在下一代主要PHP版本里有一些不错的功能:

  • 为了改善执行效率与内存占用,新的版本添加了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将会有许多新的特性、丢弃一些老版本的东西。在接下来的日子里,我们希望看到新特性和弃用功能的具体情况。希望你喜欢!

原文发布时间:2015-05-25

本文来自云栖合作伙伴“linux中国”

时间: 2024-08-07 07:09:44

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

Fedora 21升级到Fedora 22详细步骤教程

2015年5月26日发布了Fedora 22,带有不少新特性.yum 包管理系统被完全淘汰,全面使用 dnf 进行替代.Wayland 的应用更进一步,gdm 已经默认使用 wayland 了,但是 gnome-session 依然默认使用 Xorg .以前每次升级新版本都是从头开始安装,但这一次,我使用了从 Fedora 21 升级到 Fedora 22 的策略,没有从头进行安装.升级过程很顺利,升级完成后,我的所有系统配置和美化方案都还在,而且我感觉 Fedora 22 比 Fedora 2

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

安装 Fedora 21 工作站后要做的10件事情 Fedora 21已经在2014年12月正式发布.对于Fedora新手和初学者来说,初始化设置可能存在一点困难,我们翻译了一篇Fedora系统配置文章,为新手提供参考.下面一起看看Fedora 21安装后到底要做哪些事情? 当然,系统安装完毕后,首先要确保已经从Fedora 21仓库获得最新更新:sudo yum update . 1. 配置GNOME Shell界面 Fedora 21工作站系统版本默认桌面环境为GNOME Shell,我们可

Linux套件Fedora 21 安装 LAMP 服务器图文教程

本教程按照 howtoforge.com 网站原文翻译而来,如果不成功,可参看原文.不久前 Fedora 21 发布了,版本有三个,其中有一个服务器版本,原文提示采用的就是 server 服务器版本,先看看 LAMP 是 Linux.Apache.MySQL/MariaDB.PHP 的简称. 本教程采用的实例域名为 server1.example.com,IP 地址为 192.168.0.100,实际上你安装的时候有所不同,请作相应修改. 1.先安装数据库MySQL/MariaDB 5. Mar

fedora-求助:Fedora 22 开机异常 Try(hd0,0) EXT2:

问题描述 求助:Fedora 22 开机异常 Try(hd0,0) EXT2: win8.1+Fedora双系统,先装Fedora,然后在win8.1上用easybcd引导,用了一段时间,都没事,前天用yumextender更新了一下,结果剩win8.1能启动,Fedora启动显示try(hd0,0) ext2:看网上教程,用安装盘启动进去执行了grub2-install /dev/sda1 结果就变这样了,win8.1启动项也不见了,试图用win8.1启动盘修复,但是不能识别win8.1安装盘

Centos 6.5系统下编译安装PHP 7.0.13的方法_php基础

PHP7.0正式版也出来了,今天编译安装了一下,写下安装步骤,我是在centos6.6 环境中编译的,下面是详细的安装步骤 环境依赖 yum install gcc gcc-c++ libxml2 libxml2-python libxml2-devel -y 下载 wget http://cn2.php.net/distributions/php-7.0.13.tar.gz 解压 tar -zxvf php-7.0.13.tar.gz cd php-7.0.13 ./configure --e

技术+体验:web2.0下传统门户的生死逆袭

[赛迪网讯]5月3日消息,当传统门户一如新浪雅虎们为了适应新形势纷纷改头换面,随着移动互联网的崛起和一云多屏技术的发展,如何满足用户随时出现的多元化需求?传统门户网站该如何生死逆袭? web1.0之殇:门户大门被推开 早在2009年,据美国知名科技博客报道,美国互联网流量监测机构Compete最新数据显示,5月份Facebook美国独立访问者数量增长近8%,至8290万人,Facebook Connect站点额外贡献了6500万独立访问者,这意味着5月份共有1.13亿美国网民享受了Faceboo

Fedora 21中配置LAMP(Apache+Mysql+Php)环境

安装了一个fedora linux,桌面ui还算是过得去,然后就开始配置环境. 首先打算配置一个LNMP环境的,因为阿里云上面就是LNMP环境,Nginx的反向代理功能还是挺不错的,但是本机,就打算配置Apache的了,下面是配置LAMP环境的实测流程: 一.安装apache服务器 1.1使用yum进行安装: # yum install httpd 1.2配置Apache能够随系统启动而启动 #chkconfig --levels 235 httpd on 1.3启动/关闭Apache服务: #

VMware 镜像文件下载 CentOS + Debian + Ubuntu + Fedora

IntroductionVMware lets you run another computer in your computer. Try out another operating system, test a different platform, preview a new distro. Hopefully this page of VMware images, or "Virtual Appliances" is useful.Compatibility These ima

Centos下Yum安装PHP5.5,5.6,7.0

默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案: 1.检查当前安装的PHP包 yum list installed | grep php 如果有安装的PHP包,先删除他们  yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x