如何在Ubuntu上安装PHP 7(PHP下一代)?
我想在干净安装的Ubuntu上安装PHP 7,看看我会遇到什么问题。
这是官方(但微薄的指南):
答案 0 :(得分:50)
我独自完成了一次尝试,并认为记录我遇到的问题以及如何克服它们从而挽救其他人可能会带来一些痛苦和痛苦将是有用的。
但是我(事后)确实找到了这个http://jcutrer.com/howto/linux/how-to-compile-php7-on-ubuntu-14-04,这比我在下面提供的更清晰。
从指南(https://wiki.php.net/phpng):
./buildconf
mkdir ~/tmp
cd ~/tmp
git clone https://git.php.net/repository/php-src.git
cd php-src
到目前为止一切顺利。此时我开始遇到问题:
./ buildconf
报道我没有安装make。解决方案在这里找到: https://askubuntu.com/questions/192645/make-command-not-found
我尝试了这个,但仍然遇到问题所以我这样做了:
sudo apt-get purge make
sudo apt-get install make
下次问题,当我再次尝试./buildconf时,它抱怨我没有autoconfig。以下是解决方案:
sudo apt-get install autoconf
现在终于运行了./configure命令并得到了这个:
configure:警告:如果需要,您将需要re2c 0.13.4或更高版本 重新生成PHP解析器。 configure:error:构建需要bison 构建GIT结账时的PHP / Zend!
安装Bison似乎也安装了re2c,因此这解决了这两个问题:
sudo apt-get install bison
Config搅拌了很长时间,然后呕吐:
configure:error:找不到xml2-config。请检查您的libxml2安装。
应该很容易解决吗?跑吧:
sudo apt-get install libxml2
不。不那么容易。我们已经拥有最新最好的东西:
libxml2已经是最新版本了。
好。也许我们可以解决这个问题,就像我们做的那样,清除并重新安装:
sudo apt-get purge libxml2 sudo apt-get install libxml2
不。在同一错误上运行./configure barfs。所以救援:
How to fix error with xml2-config not found when installing PHP from sources?
显然我们需要这个库的开发版本:
sudo apt-get install libxml2-dev
./再次配置,我们有进展......一个新错误:
configure:error:找不到OpenSSL'
从我们上次的尝试中学习,试试吧:
sudo apt-get install openssl-dev
或
sudo apt-get install open-ssl-dev
没有,好的,让我们来搜索一下:
apt-cache search openssl
哇,这是不少包。让我们稍微缩小一点:
apt-cache search openssl | grep php
嗯,这给了我们一个较小的列表,但前面都有php5,我们正在做一个php7(phpng下一代构建从头开始);这些包中的任何一个都有效吗?关闭我们解决方案的互联网:
https://serverfault.com/questions/415458/php-error-cannot-find-openssls-evp-h
sudo apt-get install libcurl4-openssl-dev pkg-config
让我们看看是否会使./configure高兴(不,但进展......出现新错误):
configure:错误:请重新安装BZip2发行版
再次搜索网络会引导我们:
http://zgadzaj.com/how-to-install-php-53-and-52-together-on-ubuntu-1204
告诉我们这样做:
sudo apt-get install libbz2-dev
我们再一次向./configure神发送祷告......
如果配置失败,请尝试--with-vpx-dir = configure:error:找不到jpeglib.h。
到INTERWEBS !!!
找到了这个:http://www.omniweb.com/wordpress/?p=1040
sudo apt-get install libjpeg-dev
再次尝试./configure并调查SAYS:
configure:error:找不到png.h。
从上面的同一个网站上说它是这样做的:
sudo apt-get install libpng-dev
尝试./configure AGAIN和SURVEY SAYS:
配置错误xpm.h未找到
我在黑暗中刺了一下,然后用:
击中了目标sudo apt-get install libxpm-dev
再一次向./configure神祈祷,回复是:
configure:error:找不到freetype-config。
全知的谷歌指引我们来到SO神:
Configure php 5.3 fail with error : freetype.h not found (but libfreetype6-dev is installed)
sudo apt-get install libfreetype6-dev
到目前为止,您可能已经认识到了以下模式:
运行./configure
在您最喜爱的搜索引擎上搜索错误消息或直接搜索 在SO。
通过apt-get安装缺少的组件。
GOTO 1。
所以从这里开始我将展示错误和apt-get命令或其他解决问题的命令:
configure:error:无法找到gmp.h
build php5.3.8 on ubuntu , get error: configure: error: Unable to locate gmp.h
sudo apt-get install libgmp-dev
sudo apt-get install libgmp3-dev
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
configure:error:找不到mcrypt.h。请重新安装libmcrypt。
sudo apt-get install libmcrypt-dev
configure:错误:请重新安装mysql发行版
sudo apt-get install libmysqlclient15-dev
configure:error:找不到pspell
sudo apt-get install libpspell-dev
configure:error:在/ usr /下找不到recode.h usr / local / usr / opt。
sudo apt-get install librecode-dev
configure:警告:无法识别的选项: - with-t1lib
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658248
没有解决方案。似乎是一个回归错误。解决方法是从配置选项中删除--with-t1lib。我认为这可能仅适用于Windows版本,但我不确定。
configure:警告:无法识别的选项: - with-my-sql
没有解决方案。解决方法是从配置选项中删除--with-mysql开关。由于我们包含了pdo-mysql,所以这可能不是问题。
最后我们用这个命令实际构建PHP7(我建议你现在自己做一杯咖啡,因为这需要一些时间):
make
使用命令sudo make install实际安装我们的php build:
sudo make install
要检查一切是否正常,我们是否有正确的版本在终端执行此操作:
cd $HOME/tmp/usr/bin
./php -v
PHP 7.0.0-dev(cli)(建于2015年6月22日18:11:13) 版权所有(c)1997-2015 PHP Group Zend Engine v3.0.0-dev, 版权所有(c)1998-2015 Zend Technologies
答案 1 :(得分:17)
OndřejSurý在https://launchpad.net/~ondrej/+archive/ubuntu/php
获得了PPAsudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0
使用PPA肯定比从源代码构建更容易!
已安装PHP 5.x的用户注意事项;当我尝试在装有PHP 5的盒子上安装安装php7.0时,apt-get
抱怨了一下,但在我apt-get remove php5
删除我现有的PHP 5.6安装然后明确地sudo apt-get install php7.0-common
之后1}}我能够让sudo apt-get install php7.0
通过。不知道为什么这是必要的;如果有人比我更了解Apt想要编辑一些更好的说明(或者提供一个更好的答案并要求我删除这个),那么请随意。
答案 2 :(得分:2)
使用终端
在Ubuntu上安装PHP7(Nightly Build - 最新版本)我将假设您已经安装了apache2,如果没有,则使用以下命令安装它:
apt-get install apache2
检查apache是否正在运行:
service apache2 status
你可以看到类似的东西:
apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2)
Active: ACTIVE (RUNNING)
如果apache正在运行,则使用PHP 7安装过程进行处理:
首先使用您首选的文本编辑器将PHP7仓库添加到源列表/etc/apt/sources.list中:
deb http://repos.zend.com/zend-server/early-access/php7/repos ubuntu/
添加PHP 7 repo后,使用以下命令更新系统:
apt-get update
现在如果一切顺利,您应该能够使用以下命令安装PHP7 Nightly Build:
apt-get install php7-nightly
在安装过程中,可能会出现警告,“您要继续吗?”,如果确实按了回车键。按Enter键后,您还会收到类似下面的警告
WARNING: The following packages cannot be authenticated!
php7-nightly
Install these packages without verification? [y/N]
键入Y,然后按Enter继续。
安装完成!现在你需要让PHP7与Apache一起工作,为了做到这一点,使用以下命令将PHP7的库和模块复制/移动到Apache目录:
cp /usr/local/php7/libphp7.so /usr/lib/apache2/modules/
cp /usr/local/php7/php7.load /etc/apache2/mods-available/
移动文件后,您需要编辑/etc/apache2/apache2.conf并将以下行添加到文件的底部。这将告诉apache提供php文件
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
现在你修复了apache2.conf,运行以下命令启用PHP mpm模块并切换到mpm_prefork。
a2dismod mpm_event && a2enmod mpm_prefork && a2enmod php7
重新启动Apache,以使您所做的更改生效:
service apache2 restart
现在是时候测试PHP 7了
要测试PHP7,您将使用您喜欢的编辑器并插入以下代码行,在/ var / www / html /中创建一个名为info.php的PHP文件。
<?php
phpinfo();
?>
现在,您可以转到自己喜欢的浏览器并尝试以下网址
http://localhost/info.php
在页面顶部,检查PHP版本是否为7.0或更高版本。
既然您已经确认它正在运行,那么您应该删除info.php,因为它存在安全风险。使用以下命令将其删除:
rm /var/www/html/info.php
Source:https://www.atlantic.net/community/howto/try-php7-debian-8-2-lamp-stack/
答案 3 :(得分:1)
我是OP。我的建议是按照@Mark Amery的建议在https://launchpad.net/~ondrej/+archive/ubuntu/php-7.0使用OndřejSurý的PPA
如果你想要从源代码安装PHP 7的乐趣和游戏,那么这里是我用于配置和构建的脚本(注意“make -j4”是你有4核机器并想要它在构建过程中每个核心上并行线程):
#!/bin/sh
./buildconf --force
./configure \
--prefix=/usr/php7 \
--with-config-file-path=/etc/php7 \
--enable-phpdbg \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pgsql \
--with-pdo-pgsql \
--with-pdo-sqlite \
--enable-intl \
--with-pear \
--with-gd \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-exif \
--enable-zip \
--with-zlib \
--with-zlib-dir=/usr \
--with-mcrypt=/usr \
--enable-soap \
--enable-xmlreader \
--with-xsl \
--with-curl=/usr \
--with-tidy \
--with-xmlrpc \
--enable-sysvsem \
--enable-sysvshm \
--enable-shmop \
--enable-pcntl \
--with-readline \
--enable-mbstring \
--with-curl \
--with-gettext \
--enable-sockets \
--with-bz2 \
--with-openssl \
--with-gmp \
--enable-bcmath \
--enable-calendar \
--enable-ftp \
--with-pspell=/usr \
--with-enchant=/usr \
--enable-wddx \
--with-imap \
--with-imap-ssl \
--with-freetype-dir=/usr/local \
--with-xpm-dir=/usr \
--with-kerberos \
--enable-sysvmsg
make -j4
sudo make install
答案 4 :(得分:1)
我按照这个=&gt;编译自己的PHP 7 http://blog.idojo.co/how-to-setup-a-lamp-stack-with-all-the-latest-softwares/,说明很简单,根据需要调整配置选项,默认配置选项在ubuntu服务器14.04上运行正常....
灯具包括 Apache 2.4.18 , MySQL 5.7.10 和 PHP 7.0.4
答案 5 :(得分:1)
在Ubuntu 16上
apt-get update
apt-get install php libapache2-mod-php php-mcrypt
这个安装了php7
答案 6 :(得分:0)
您可以使用php-build构建和安装PHP 7(以及其他PHP版本)。如果您不熟悉PHP构建过程,可能会容易得多。
答案 7 :(得分:0)
您可以安装支持Ubuntu和PHP 7的控制面板。例如,ServerPilot supports Ubuntu和installs PHP 7。
答案 8 :(得分:0)
我看到其他用户正在发布二进制文件,但是如果你想自己编译它,请尝试使用auto-apt。
要从源代码编译任何应用程序,您可以使用auto-apt。它不是一个众所周知的工具,但它对于编译具有大量外部库的应用程序有很大帮助。
Auto-apt创建配置脚本的驱动检查,并检测它正在寻找的configure.sh脚本包,并允许您安装它们,如果您希望该功能是脚本的话看着那一刻。
sudo apt-get install auto-apt
sudo auto-apt update
sudo auto-apt updatedb && sudo auto-apt update-local
sudo auto-apt run ./configure