上周上(更准确地说在2015年8月21日 ),PHP开发团队宣布PHP 7的最新版本的可用性,并鼓励用户和开发者的全球对其进行测试。
但是,我们必须注意,因为这是一个RC( 发布候选 )版本,预计它可能有错误或与现有设置不兼容等等都被要求用户使用报告这些bug跟踪系统 ,并在不使用PHP 7生产,而它仍然在这一阶段。
在CentOS 7和Debian 8上编译PHP 7
光明的一面是,这个版本包含了一些修复(您可能要参考这个网页相比前时,在项目的GitHub存储库的新功能和增强功能的详细列表),最显着的特点是一个显着的性能提升版本。
本文将引导您完成安装和在CentOS 7和Debian 8杰西从源代码编译PHP压缩包7 RC1的与Apache和MariaDB的沿的过程。 同样的说明也适用于基于如Ubuntu / 薄荷基于CentOS的发行像RHEL,Fedora的 , 科学的Linux和Debian。
在CentOS 7和Debian 8中安装PHP 7
正如介绍中所说,因为这个版本是RC,而不是一个稳定版本的,我们不能合理地期望找到它在存储库中。 因此,我们必须下载源代码并从头开始编译程序。
在我们这样做,但是,我们需要记住的是,为了更好地采取PHP 7的优势,也许尝试一下最好的办法是用Apache和MariaDB的沿安装它-我们可以在存储库中找到:
在CentOS 7
# yum update && yum install httpd mariadb mariadb-server
在Debian 8
# aptitude update && aptitude install apache2 mariadb-server mariadb-client mariadb.common
在这两种情况下,用PHP的源代码中的压缩包可以下载并提取如下:
# wget https://downloads.php.net/~ab/php-7.0.0RC1.tar.gz # tar xzf php-7.0.0RC1.tar.gz -C /opt
一旦这样做,让我们进入/opt/php-7.0.0RC1,为了力的RC版构建与-force开关执行buildconf脚本:
# ls
PHP 7 buildconf
# cd /opt/php-7.0.0RC1.tar.gz # ./buildconf --force
构建PHP 7
现在是时候来执行我们熟知的configure命令。 而下面的选项将确保一个标准的PHP 7的安装,你可以参考完整的选项列表中的PHP手册 ,以便更好地自定义安装,按您的需求:
# ./configure \ --prefix=$HOME/php7/usr \ --with-config-file-path=$HOME/php7/usr/etc \ --enable-mbstring \ --enable-zip \ --enable-bcmath \ --enable-pcntl \ --enable-ftp \ --enable-exif \ --enable-calendar \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --enable-wddx \ --with-curl \ --with-mcrypt \ --with-iconv \ --with-gmp \ --with-pspell \ --with-gd \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --with-zlib-dir=/usr \ --with-xpm-dir=/usr \ --with-freetype-dir=/usr \ --enable-gd-native-ttf \ --enable-gd-jis-conv \ --with-openssl \ --with-pdo-mysql=/usr \ --with-gettext=/usr \ --with-zlib=/usr \ --with-bz2=/usr \ --with-recode=/usr \ --with-mysqli=/usr/bin/mysql_config \ --with-apxs2
如果遇到以下错误:
configure: error: no acceptable C compiler found in $PATH see 'config.log' for more details
PHP 7配置
只需安装GCC和依赖与下面的命令,然后再次运行上面的configure命令。
# yum install gcc [On CentOS 7 box] # aptitude install gcc [On Debian 8 box]
你会用自己的方式编译PHP 7,这可能需要一段时间。 如果还有其他缺失的库或资源,此过程将失败,但您可以始终安装它们并再次运行配置。
例如,我曾收到以下错误消息后安装的libxml2-DEVEL:
configure: error: xml2-config not found. Please check your libxml2 installation.
不幸的是,我们不可能涵盖所有情况下的情况,因为安装的软件可能会因系统而异。 在安装过程中,您可能要参考这个网页它列出了在从源代码安装PHP,各自的解决方案,沿您可能会遇到几个错误。
在CentOS 7
下面是我能够完成配置过程之前在我的CentOS 7箱安装的软件包的完整列表:
gcc libxml2-devel pkgconfig openssl-devel bzip2-devel curl-devel libpng-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel httpd-devel
如图所示,你可以用一个单一的Yum命令安装所有需要以上套餐。
# yum install gcc libxml2-devel pkgconfig openssl-devel bzip2-devel libpng-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel httpd-devel
以下消息表明configure已成功完成:
PHP 7配置成功
然后运行,
# make # make install
安装完成后,您可以使用命令行检查版本:
检查PHP版本
在Debian 8
在Debian中,我不得不安装配置过程中成功地完成以下软件包:
make libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libmysqlclient-dev libicu-dev libfreetype6-dev libxslt-dev libssl-dev libbz2-dev libgmp-dev libmcrypt-dev libpspell-dev librecode-dev apache2-dev
在Debian 8,您可以安装所有上述所需的软件包apt-get命令。
# apt-get install make libxml2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libxpm-dev libmysqlclient-dev libicu-dev libfreetype6-dev libxslt-dev libssl-dev libbz2-dev libgmp-dev libmcrypt-dev libpspell-dev librecode-dev apache2-dev
然后加入,-with-LIBDIR = / lib目录/ x86_64的-Linux的GNU的配置选项,并创建下面的符号链接到gmp.h头文件:
# ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
然后跑make和make install如前面的情况。 在10-15分钟的编制应该已经完成,我们可以验证所安装的PHP版本和以前一样:
# make # make install
在Debian 8中检查PHP版本
设置php.ini和测试PHP 7安装
当你从源代码安装PHP,提供了两个样本的php.ini。 在这种情况下,它们位于内部/opt/php-7.0.0RC1:
# ls -l /opt/php-7.0.0RC1 | grep php.ini
PHP 7配置php.ini文件
现在,您需要复制其中一个到/ usr / local / lib目录 ,被指定为这样的文件按照安装说明的默认位置:
# cp /opt/php-7.0.0RC1/php.ini-development /usr/local/lib
并且不要忘记将这个配置指令添加到Apache的主配置文件。
/etc/httpd/conf/httpd.conf [On CentOS 7 box] /etc/apache2/apache2.conf in [On Debian 8 box]
LoadModule php7_module /usr/lib64/httpd/modules/libphp7.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
在Debian 8 则可以省略的LoadModule行,你也需要删除,并创建以下符号链接到指定的Apache模块:
# cd /etc/apache2 # rm mods-enabled/mpm_event.conf # rm mods-enabled/mpm_event.load # ln -s mods-available/mpm_prefork.conf mpm_prefork.conf # ln -s mods-available/mpm_prefork.load mpm_prefork.load
然后,重新启动Web服务器:
# systemctl restart httpd [On CentOS 7 box] # systemctl restart apache2 [On Debian 8 box]
如果启动Apache在CentOS 7返回一条错误消息说,它不能找到libphp7.so模块,只需复制到从/opt/php-7.0.0RC1/.libs/libphp7.so指示的路径。
测试一个PHP / Apache安装的经典方法是使用phpinfo()
文件。 创建一个名为test.php的在Web服务器的文档根目录的文件,内容如下( 在/ var / www / html等两个分布):
<?php phpinfo(); ?>
并在您的网络中的客户端启动浏览器测试:
http://localhost/test.php OR http://IP-address/test.php
在CentOS 7中验证PHP 7信息
在Debian 8中验证PHP 7信息
概要
在本文中,我们解释了如何从源代码安装PHP 7,这是最流行的服务器端脚本语言的最新RC,旨在以前所未有的价值提高性能。 直到达到今年2015年 十一月稳定, 强烈建议您在生产环境中使用这个版本。
如果您对本文有任何问题/意见/建议,请随时使用下面的表单通知我们。