在 Ubuntu 上编译和安装 PHP7
在本周末的LAMPandBeyondIII活动(由PHPNW举办)中,我们为自己设定了让PHP7一展身手的任务。下面是该会话中的一些节点。
这假设您已经安装了PHP5.6以及Apache和MySQL。通过apt-get安装PHP5.6很好,因为我们只需要提供一些依赖项。
要获取PHP7的代码,您需要从Github上的PHP存储库克隆。
gitclone[email protected]:php/php-src.gitphp-src
进入php-src目录并运行./buildconf命令,这将生成一个配置文件。
./buildconf
在运行config之前,您需要安装一些依赖项(一两个)。
sudoapt-getinstallautoconfbisonlibxml2-devapache2-devsystemtap-sdt-devopensslpkg-configlibssl-devlibcurl4-openssl-devlibbz2-devlibgdbm-devlibjpeg62libjpeg62-devlibpng12-0libpng12-devlibfreetype6-devlibicu-devlibiodbc2-devlibxslt1-dev
现在您可以运行./configure来配置PHP。您需要添加一些标志,让PHP知道要安装哪些扩展以及某些软件所在的位置。
./configure--prefix=/usr/local/php7/7.0.0--localstatedir=/usr/local/var--sysconfdir=/usr/local/etc/php/7--with-config-file-path=/usr/local/etc/php/7--with-config-file-scan-dir=/usr/local/etc/php/7/conf.d--mandir=/usr/local/php7/7.0.0/share/man--enable-bcmath--enable-calendar--enable-dba--enable-exif--enable-ftp--enable-gd-native-ttf--enable-intl--enable-mbregex--enable-mbstring--enable-shmop--enable-soap--enable-sockets--enable-sysvmsg--enable-sysvsem--enable-sysvshm--enable-wddx--enable-zip--with-freetype-dir=/usr/local/opt/freetype--with-gd--with-gettext=/usr/local/opt/gettext--with-iconv-dir=/usr--with-icu-dir=/usr/local/opt/icu4c--with-jpeg-dir=/usr/local/opt/jpeg--with-kerberos=/usr--with-libedit--with-mhash--with-ndbm=/usr--with-openssl=/usr/local/opt/openssl--with-pdo-odbc=unixODBC,/usr/local/opt/unixodbc--with-png-dir=/usr/local/opt/libpng--with-unixODBC=/usr/local/opt/unixodbc--with-xmlrpc--with-zlib=/usr/local/opt/zlib--with-apxs2=/usr/bin/apxs--libexecdir=/usr/local/php7/7.0.0/libexec--with-bz2=/usr--disable-debug--enable-fpm--with-fpm-user=_www--with-fpm-group=_www--with-curl--with-xsl=/usr--with-ldap--with-ldap-sasl=/usr--with-mysql-sock=/tmp/mysql.sock--with-mysqli=mysqlnd--with-pdo-mysql=mysqlnd--disable-opcache--enable-pcntl--enable-dtrace--disable-phpdbg--enable-zend-signals
配置完成后,您需要编译PHP7。使用make命令执行此操作。
make
完成后,您可以选择使用“maketest”命令运行PHP测试套件。
maketest
最后,您可以运行“makeinstall”将PHP7安装到您的系统中。您需要以root身份运行此步骤,因为它更新了一些系统文件。
sudomakeinstall
完成后,您需要设置Apache以使用新版本的PHP。以下几行将禁用原始PHP5版本并启用新的PHP7版本。
sudo a2dismod php5 sudo service apache2 restart
缺少的一件事是PHP7配置文件。幸运的是,PHP5版本与PHP7配合得很好,因此需要将其复制过来。
sudocp/etc/apache2/mods-available/php5.conf/etc/apache2/mods-enabled/php7.conf
您现在需要做的就是重新启动Apache2以使更改生效。
sudoserviceapache2restart
如果您想在命令行上运行PHP,那么您需要将当前系统PHP与PHP7版本重新链接。要找出当前PHP命令行客户端的安装位置,请运行which命令。
whichphp
然后,您可以使用上一个命令的输出运行以下命令以换出您的PHPcli版本。
sudorm-rf/usr/bin/php&&sudoln-s/usr/local/php7/7.0.0/bin/php/usr/bin/php
现在,当您在命令行上运行PHP时,您将运行PHP7。
$ php -v PHP 7.0.0-dev (cli) (built: Apr 11 2015 12:11:25) Copyright (c) 1997-2015 The PHP Group Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
您现在正在运行PHP7!