当前位置: 首页>>技术教程>>正文


如何安装PHP 7?

, ,

问题描述

PHP 7出来了yesterday,我想试试看。

PHP 7.0.0 comes with a new version of the Zend Engine, numerous improvements and new features such as

  • Improved performance: PHP 7 is up to twice as fast as PHP 5.6
  • Significantly reduced memory usage
  • Abstract Syntax Tree
  • Consistent 64-bit support
  • Improved Exception hierarchy
  • Many fatal errors converted to Exceptions
  • Secure random number generator
  • Removed old and unsupported SAPIs and extensions
  • The null coalescing operator (??)
  • Return and Scalar Type Declarations
  • Anonymous Classes
  • Zero cost asserts

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

或者,您可以使用此脚本script或以下blog指令从源代码安装PHP 7.0。

编辑:

现在PHP5已经被replaced与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。

  • 安装third-party版本,例如来自PPA

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

    sudo add-apt-repository ppa:ondrej/php
    

    PPA不具有与Ubuntu-supplied版本相同的官方Ubuntu支持,并且由于不同的时间表和策略可能具有不同的质量或安全标准。在这种情况下,制作此PPA的开发人员可以使用well-known。

第三种解决办法

以下是我的完整更新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

这里是a handy guide for setting up a LAMP stack on 16.04

第五种办法

上述过程对我的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();确认)

不过,我发现获取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成功更新并启用扩展功能后。希望这有助于他人。

第六种办法

在回答这个问题时(2017年2月),在Ubuntu 16.04 LTS上,现在可以通过简单的命令安装php 7.0。*:

apt-get install php

无需添加任何third-party存储库。

第七种办法

我认为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. 将以下内容添加到文件中:<?php phpinfo(); ?>。注意:由于您自己创建了该文件,因此该文件是空白文件。

  7. 现在重新启动apache sudo service apache2 restart

  8. 在你的网页浏览器中,http://localhost/info.php会给你关于php的完整信息。

希望这可以帮助 :)

第八种办法

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

您可能需要通过主控选择一个发行版分支并重新运行脚本。

第九种办法

我知道这可能是一个坏主意,但这是我得到了如何使用php7来安装Ubuntu Server 12.04.5(i386):

sudo nano /etc/apt/sources.list

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


deb http://us.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb http://archive.canonical.com/ubuntu trusty partner

然后按照通常的方式更新:

sudo apt-get update

一旦你的Apache服务器上安装了PHP 7,你可能不得不将你的文件移动到一个新的目录中去工作:

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/543.html,未经允许,请勿转载。