如何安装PHP 7?

PHP 7 昨天问世了,我想尝试一下。

PHP 7.0.0附带了Zend Engine的新版本,众多改进和新function,如

  • 性能提升:PHP 7的速度是PHP 5.6的两倍
  • 显着减少了内存使用量
  • 抽象语法树
  • 一致的64位支持
  • 改进了exception层次结构
  • 许多致命错误转换为exception
  • 安全随机数发生器
  • 删除旧的和不受支持的SAPI和扩展
  • 空合并运算符(??)
  • 返回和标量类型声明
  • 匿名类
  • 零成本断言

php.net


是否可以在当前的Ubuntu版本上安装它?

是否存在任何当前限制或已知的兼容性问题?

您可以执行以下操作:

sudo apt-get install python-software-properties software-properties-common sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php sudo apt-get update 

可选择清除PHP 5:

 sudo apt-get remove php5-common -y 

或直接清除它,包括配置文件:

 sudo apt-get purge php5-common -y 

最后安装PHP 7:

 sudo apt-get install php7.0 php7.0-fpm php7.0-mysql -y 

可选地,之后清理不需要的包:

 sudo apt-get --purge autoremove -y 

或者,您可以使用此脚本脚本或按照此博客上的说明从源安装PHP 7.0。

编辑:

PHP5现在已被替换为PHP7作为Ubuntu 16.4中的默认PHP,因此,要在Ubuntu 16.04上安装PHP7:

 sudo apt-get install php7.0 

要么

 sudo apt-get install php 

你有两个选择:

  • 等到有一个包含PHP7的新Ubuntu版本

    Ubuntu不会向大多数软件发布现有Ubuntu版本的主要新版本; 要获得一个主要的新版本,你需要等到更新版本的Ubuntu。

  • 安装第三方版本,例如从PPA

    PPA不受Ubuntu的发布计划或策略的约束,因此可以更频繁地更改版本等。 在Tshilidzi Mudau的回答中提到的PPA是一种保持与PHP更新的流行方式。

     sudo add-apt-repository ppa:ondrej/php 

    PPA没有与Ubuntu提供的版本相同的官方Ubuntu支持,并且由于不同的时间表和策略可能具有不同的质量或安全标准。 在这种情况下,提供此PPA的开发人员在此处为社区所熟知。

这是我的完整更新PHP及其依赖项的命令列表,包括phpMyAdmin(完整的LAMP堆栈):

 sudo apt-get install python-software-properties sudo add-apt-repository ppa:ondrej/php-7.0 sudo apt-get update sudo apt-get purge php5-fpm sudo apt-get install php7.0-cli php7.0-common libapache2-mod-php7.0 php7.0 php7.0-mysql php7.0-fpm php7.0-curl php7.0-gd php7.0-bz2 

现在你有了PHP7。 让我们去phpMyAdmin :(如果你已经安装了PHP7,请从这里开始)

 cd /var/www/html/ sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.5.3.1/phpMyAdmin-4.5.3.1-all-languages.zip sudo unzip phpMyAdmin-4.5.3.1-all-languages.zip sudo mv phpMyAdmin-4.5.3.1-all-languages/ phpmyadmin/ sudo mkdir -m 777 phpmyadmin/config/ sudo /etc/init.d/apache2 restart 

对于Ubuntu 16.04,PHP7现在是默认的官方上游版本。

 sudo apt install php 

这是一个方便的指南,用于在16.04上设置LAMP堆栈 。

上面的过程对我的Ubuntu 15.10服务器不起作用,所以我想我会分享一些工作,以防其他人发现它有用。

首先,我必须删除某些关键的PHP 5模块:

 sudo apt-get -y purge php5 libapache2-mod-php5 php5 php5-cli php5-common php5-curl php5-gd php5-imap php5-intl php5-json php5-mcrypt php5-mysql php5-pspell php5-readline php5-sqlite 

然后删除一些遗留下来的东西:

 sudo apt-get autoremove 

然后安装PHP 7.0:

 sudo apt-get install php7.0 

然后当PHPMyAdmin被删除时,Apache2无法启动所以我不得不删除配置文件(我本可以移动它):

 sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf 

然后我不得不重启Apache2:

 sudo service apache2 restart 

然后运行PHP 7.0(用PHPINFO();确认PHPINFO();

但是我发现让PHPMyAdmin工作的唯一方法是手动安装/升级它,否则源中提供的最新版本还不支持PHP 7。

**编辑:我现在已经找到了一种方法,可以将PHPMyAdmin更新为兼容版本,而无需从GIT克隆或从源手动编译,因此我在下面添加:

首先添加此存储库,更新源列表并升级(注意:如果在升级到PHP7期间已将其删除,则需要安装而不是升级它):

 sudo add-apt-repository ppa:nijel/phpmyadmin sudo apt-get update sudo apt-get dist-upgrade 

但是在安装期间(在我的服务器上),它必须运行数据库升级脚本upgrade_column_info_4_3_0+.sql但是这失败并出现以下错误:

 mysql said: ERROR 1060 (42S21) at line 28: Duplicate column name 'input_transformation' 

我选择忽略错误并完成升级。 安装完成后,我在/usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql打开了.sql升级脚本

我手动运行脚本删除了两个有问题的行,试图创建已经存在的2列(要删除的代码):

 ALTER TABLE `pma__column_info` ADD `input_transformation` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '', ADD `input_transformation_options` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT ''; 

最后我必须在/etc/phpmyadmin/config.inc.php编辑配置文件并添加以下两行:

 $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates'; 

在此PHPMyAdmin成功更新并启用扩展function之后。 希望这有助于其他人。

在这个答案(2017年2月),在Ubuntu 16.04 LTS上,现在可以用简单的命令安装php 7.0。*:

 apt-get install php 

无需添加任何第三方存储库。

我认为ppa已经在16.04 LTS中添加了。

  1. 只需简单地做sudo apt-get install php7.0就可以了。
  2. 通过运行php --version检查它是否已安装
  3. 此外,您可以在Apache的文档根目录中创建info.php文件。
  4. 那是在/var/www/html/目录中
  5. 运行sudo gedit /var/www/html/info.php
  6. 将以下内容添加到文件中: 。 注意:该文件是一个空白文件,因为您自己创建了该文件。
  7. 现在重启apache sudo service apache2 restart
  8. 在您的Web浏览器中, http://localhost/info.php将为您提供有关php的完整信息。

希望这可以帮助 :)

我已经收集了一些不同的资源并解决了许多问题,以便在Ubuntu 15.04和15.10上完全设置PHP 7的构建。 虽然它不是Debian软件包脚本,但它确实设置了Ubuntu依赖项和配置。 资源可以在这里找到。

您可能需要在master上选择一个发布分支并重新运行该脚本。

我知道这可能是个坏主意,但这就是我使用php7来安装Ubuntu Server 12.04.5(i386)的方法:

  sudo nano /etc/apt/sources.list 

然后在最后添加以下内容:

 deb http://us.archive.ubuntu.com/ubuntu/ trusty主要限制宇宙多元宇宙
 deb http://archive.canonical.com/ubuntu可信赖的合作伙伴

然后像往常一样更新:

  sudo apt-get update 

一旦在Apache服务器上安装了PHP 7,就可能需要将文件移动到新目录才能工作:

  sudo mv / var / www / * / var / www / html /