如何在Ubuntu上安装PHP 7(PHP下一代)

Rya*_*erd 16 php ubuntu

如何在Ubuntu上安装PHP 7(PHP下一代)?

我想在干净安装的Ubuntu上安装PHP 7,看看我会遇到什么问题.

这是官方(但微薄的指南):

https://wiki.php.net/phpng

Rya*_*erd 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
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.此时我开始遇到问题:

./buildconf即可

报道说我没有安装.解决方案在这里找到:https: //askubuntu.com/questions/192645/make-command-not-found

我试过这个,但仍然有问题,所以我做了这个:

sudo apt-get purge make  
sudo apt-get install make 
Run Code Online (Sandbox Code Playgroud)

下一个问题,当我再次尝试./buildconf时,它抱怨我没有autoconfig.这是解决方案:

sudo apt-get install autoconf  
Run Code Online (Sandbox Code Playgroud)

现在终于运行了./configure命令并得到了这个:

configure:警告:如果要重新生成PHP解析器,则需要re2c 0.13.4或更高版本.configure:错误:构建GIT结帐时需要bison来构建PHP/Zend!

安装Bison似乎也安装了re2c,所以这解决了这两个问题:

sudo apt-get install bison    
Run Code Online (Sandbox Code Playgroud)

Config搅拌了很长时间,然后用:

configure:error:找不到xml2-config.请检查您的libxml2安装.

应该很容易解决吗?赶紧跑:

sudo apt-get install libxml2
Run Code Online (Sandbox Code Playgroud)

不.不那么容易.我们已经拥有最新最好的:

libxml2已经是最新版本了.

好的.也许我们可以解决这个问题,就像我们做的那样,清除并重新安装:

sudo apt-get purge libxml2 sudo apt-get install libxml2

不.在同一错误上运行./configure barfs.所以救援:

如何修复从源安装PHP时找不到xml2-config的错误?

显然我们需要这个库的开发版本:

sudo apt-get install libxml2-dev
Run Code Online (Sandbox Code Playgroud)

./configure再次,我们有进展...一个新的错误:

configure:error:找不到OpenSSL

从我们上次的尝试中学习,让我们尝试:

sudo apt-get install openssl-dev
Run Code Online (Sandbox Code Playgroud)

要么

sudo apt-get install open-ssl-dev
Run Code Online (Sandbox Code Playgroud)

不,好吧让我们来搜索一下:

apt-cache search openssl 
Run Code Online (Sandbox Code Playgroud)

哇,这是不少包.让我们把它缩小一点:

apt-cache search openssl | grep php
Run Code Online (Sandbox Code Playgroud)

好吧,这给了我们一个较小的列表,但前面都有php5,我们正在做一个php7(从头开始的phpng Next Generation构建); 这些包中的任何一个都有效吗?关闭我们解决方案的互联网:

https://serverfault.com/questions/415458/php-error-cannot-find-openssls-evp-h

sudo apt-get install libcurl4-openssl-dev pkg-config
Run Code Online (Sandbox Code Playgroud)

让我们看看是否这样做./configure happy(nope,但进度......一个新的错误):

configure:错误:请重新安装BZip2发行版

再次搜索网络会让我们:

http://zgadzaj.com/how-to-install-php-53-and-52-together-on-ubuntu-1204

告诉我们这样做:

sudo apt-get install libbz2-dev
Run Code Online (Sandbox Code Playgroud)

我们再一次向./configure上帝祈祷并......

如果configure失败,请尝试--with-vpx-dir = configure:error:找不到jpeglib.h.

到了INTERWEBS !!!

发现这个:http://www.omniweb.com/wordpress/? p = 104

sudo apt-get install libjpeg-dev

再次尝试./configure并调查SAYS:

configure:错误:找不到png.h.

从上面的同一个网站上说它是这样做的:

sudo apt-get install libpng-dev
Run Code Online (Sandbox Code Playgroud)

尝试./configure AGAIN和SURVEY SAYS:

配置错误xpm.h未找到

我在黑暗中刺了一下,然后击中了目标:

sudo apt-get install libxpm-dev
Run Code Online (Sandbox Code Playgroud)

再一次向./configure神祷告,回复是:

configure:error:找不到freetype-config.

所有知道谷歌指导我们在这里的SO神:

配置php 5.3失败,错误:找不到freetype.h(但安装了libfreetype6-dev)

sudo apt-get install libfreetype6-dev 
Run Code Online (Sandbox Code Playgroud)

到目前为止,您可能已经认识到以下模式:

  1. 运行./configure

  2. 在您最喜爱的搜索引擎上搜索错误消息,或直接在SO上搜索.

  3. 通过apt-get安装缺少的组件.

  4. GOTO 1.

所以从这里开始我将展示错误和apt-get命令或其他解决问题的命令:

configure:错误:无法找到gmp.h

在ubuntu上构建php5.3.8,得到错误:configure:error:无法找到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
Run Code Online (Sandbox Code Playgroud)

configure:error:找不到mcrypt.h.请重新安装libmcrypt.

sudo apt-get install libmcrypt-dev
Run Code Online (Sandbox Code Playgroud)

configure:错误:请重新安装mysql发行版

http://www.spiration.co.uk/post/1332/install%20PDO_MYSQL%20-%20mysql_config%20and%20header%20files%20problem

sudo apt-get install libmysqlclient15-dev  
Run Code Online (Sandbox Code Playgroud)

configure:错误:找不到pspell

sudo apt-get install libpspell-dev
Run Code Online (Sandbox Code Playgroud)

configure:error:在/ usr/usr/local/usr/opt下找不到recode.h.

sudo apt-get install librecode-dev
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

使用命令sudo make install实际安装我们的php build:

sudo make install 
Run Code Online (Sandbox Code Playgroud)

要检查一切是否正常,我们是否有正确的版本在终端执行此操作:

cd $HOME/tmp/usr/bin
./php -v
Run Code Online (Sandbox Code Playgroud)

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

  • 这是迄今为止我在Stack Overflow上看到的最长的答案!:) (3认同)

Mar*_*ery 17

OndřejSurý在https://launchpad.net/~ondrej/+archive/ubuntu/php上有PPA

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0
Run Code Online (Sandbox Code Playgroud)

使用PPA肯定比从源代码构建更容易!

已经安装了PHP 5.x的人的注意事项; apt-get当我尝试在装有PHP 5的盒子上安装安装php7.0时抱怨了一下,但在我apt-get remove php5完成摆脱现有的PHP 5.6安装之后,sudo apt-get install php7.0-common我明确地做了以后我能够sudo apt-get install php7.0完成.不知道为什么这是必要的; 如果有人比我更了解Apt想要编写一些更好的说明(或者提供一个更好的答案并要求我删除这个),那么请自由.


归档时间:

查看次数:

26114 次

最近记录:

9 年 前