Como instalar o PHP 7?


116

O PHP 7 foi lançado ontem e eu gostaria de experimentá-lo.

O PHP 7.0.0 vem com uma nova versão do Zend Engine, inúmeras melhorias e novos recursos, como

  • Melhor desempenho: o PHP 7 é duas vezes mais rápido que o PHP 5.6
  • Uso de memória significativamente reduzido
  • Árvore de sintaxe abstrata
  • Suporte consistente de 64 bits
  • Hierarquia de exceção aprimorada
  • Muitos erros fatais convertidos em exceções
  • Gerador de números aleatórios seguro
  • Removidos SAPIs e extensões antigos e não suportados
  • O operador coalescente nulo (??)
  • Declarações de retorno e tipo escalar
  • Classes anônimas
  • Declarações de custo zero

php.net


É possível instalá-lo na versão atual do Ubuntu?

Existem limitações atuais ou problemas de compatibilidade conhecidos?



1
O PHP 7 é o padrão no Ubuntu 16, Xenial.
Buttle Butkus

Respostas:


180

Você pode fazer o seguinte:

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

Opcionalmente, limpe o PHP 5:

sudo apt-get remove php5-common -y

Ou limpe-o diretamente, incluindo arquivos de configuração:

sudo apt-get purge php5-common -y

E finalmente instale o PHP 7:

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

Opcionalmente, limpe os pacotes desnecessários depois:

sudo apt-get --purge autoremove -y

Como alternativa, você pode instalar o PHP 7.0 a partir de fontes usando esse script ou seguindo as instruções deste blog .

EDITAR:

Agora o PHP5 foi substituído pelo PHP7 como o PHP padrão no Ubuntu 16.4, portanto, para instalar o PHP7 no Ubuntu 16.04:

sudo apt-get install php7.0 

Ou

sudo apt-get install php

12
Quem é o responsável pelo ppa? É oficialmente suportado pelo zend?
K0pernikus

19
@ k0pernikus O Zend não suporta oficialmente nada além do servidor Zend :-) Os pacotes oficiais do Ubuntu são suportados pelos mantenedores do Ubuntu. Este PPA é um esforço pessoal de Ondřej Surý. Ondrey é o proprietário oficial da árvore PHP no Debian, que é upstream do Ubuntu. Veja aqui: qa.debian.org/developer.php?login=ondrej%40debian.org
Palantir

4
De qualquer forma, seus PPAs PHP são muito populares, a ponto de a distribuição oficial Magento anunciar as versões 5.5 e 5.6: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
Palantir

3
O memcached JFTR ainda não está pronto para o PHP 7.0. Eu não olhei para o memcache, ainda resolvendo erros menores após uma grande reescrita de scripts de empacotamento.
9115 as

4
@Xeridea Tente e sudo apt-get install libapache2-mod-php7.0, em seguida sudo a2enmod php7.0, reinicie o Apache
andrewtweber

21

Você tem duas opções:

  • Espere até que haja uma nova versão do Ubuntu que inclua PHP7

    O Ubuntu não lançará grandes versões de novas versões para a maioria dos softwares das versões existentes do Ubuntu; Para obter uma nova versão importante, você precisará esperar até uma versão mais recente do Ubuntu.

  • Instale uma versão de terceiros, como de um PPA

    Os PPAs não estão sujeitos aos agendamentos ou políticas de lançamento do Ubuntu, portanto, são livres para alterar versões com mais frequência, entre outras coisas. O PPA mencionado na resposta de Tshilidzi Mudau é uma maneira popular de manter-se mais atualizado com o PHP.

    sudo add-apt-repository ppa:ondrej/php
    

    Os PPAs não vêm com o mesmo suporte oficial do Ubuntu que as versões fornecidas pelo Ubuntu e, devido a diferentes agendas e políticas, podem ter um padrão de qualidade ou segurança diferente. Nesse caso, o desenvolvedor que disponibiliza esse PPA é bem conhecido da comunidade aqui.


1
E a opção de instalar a partir da fonte.
j0h 08/02

18

Aqui está minha lista de comandos para atualizar completamente o PHP com suas dependências, incluindo phpMyAdmin (pilha LAMP completa):

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

Agora você tem PHP7. Vamos para o phpMyAdmin: (comece aqui se você já tiver o PHP7 instalado)

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

3
libapache2-mod-php7.0é exatamente o que eu precisava, obrigado!
27416 Jacer Omri


7

O processo acima não funcionou para o meu servidor Ubuntu 15.10, então pensei em compartilhar o que funcionou caso outras pessoas o considerassem útil.

Primeiro eu tive que remover certos módulos chave do 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

Em seguida, remova algumas coisas extras que foram deixadas para trás:

sudo apt-get autoremove

Então instale o PHP 7.0:

sudo apt-get install php7.0

Então, como o PHPMyAdmin foi removido, o Apache2 não foi iniciado, então tive que remover o arquivo de configuração (eu poderia ter o movido):

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

Então eu tive que reiniciar o Apache2:

sudo service apache2 restart

O PHP 7.0 estava em execução (confirmado com PHPINFO();)

No entanto, eu descobri que a única maneira de fazer o PHPMyAdmin funcionar é instalá-lo / atualizá-lo manualmente, caso contrário, a versão mais recente disponível nas fontes ainda não suporta o PHP 7.

** EDIT: Agora encontrei uma maneira de atualizar o PHPMyAdmin para uma versão compatível sem precisar clonar do GIT ou compilar manualmente a partir das fontes, então estou adicionando isso abaixo:

Primeiro adicione este repositório, atualize a lista de fontes e atualize (NB: se ele foi removido durante a atualização para o PHP7, você precisará instalar em vez de atualizá-lo):

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

No entanto, durante a instalação (no meu servidor), ele teve que executar um script de atualização do banco de dados, upgrade_column_info_4_3_0+.sqlmas isso falhou com o seguinte erro:

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

Eu escolhi ignorar o erro e concluir a atualização. Após a instalação, abri o script de atualização .sql em/usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql

Executei o script manualmente removendo as duas linhas incorretas tentando criar 2 colunas que já existiam (código a ser removido):

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 '';

Finalmente, tive que editar o arquivo de configuração em /etc/phpmyadmin/config.inc.phpe adicionar as duas linhas a seguir:

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

Após a atualização com êxito do PHPMyAdmin, os recursos estendidos são ativados. Espero que isso ajude os outros.


4

No momento desta resposta (fevereiro de 2017), no Ubuntu 16.04 LTS, agora é possível instalar o php 7.0. * Com o comando simples:

apt-get install php

Não há necessidade de adicionar repositórios de terceiros.


3

Eu acho que o ppafoi adicionado em 16.04 LTS.

  1. Simplesmente faça sudo apt-get install php7.0e é isso.
  2. Verifique se ele foi instalado executando php --version
  3. Além disso, você pode criar o info.phparquivo na raiz do documento do Apache.
  4. Isso está no /var/www/html/diretório
  5. Corre sudo gedit /var/www/html/info.php
  6. Adicione o seguinte para o arquivo: <?php phpinfo(); ?>. Nota: o arquivo é um arquivo em branco desde que você o criou.
  7. Agora reinicie o apache sudo service apache2 restart
  8. No seu navegador da web, http://localhost/info.phpisso fornecerá informações completas sobre php.

Espero que isto ajude :)


1
Não tenho que adicioná-lo ao Apache2?
Arlen Beiler

Não é um ppa, é a versão oficial do ubuntu.
Jeff Puckett

2

Reuni alguns recursos diferentes e resolvi muitos problemas para configurar completamente uma compilação do PHP 7 no Ubuntu 15.04 e 15.10. Embora não seja um script de pacote Debian, ele define as dependências e a configuração do Ubuntu. Os recursos podem ser encontrados aqui .

Pode ser necessário selecionar uma ramificação de liberação apenas para dominar e executar novamente o script.


2

Eu sei que isso pode ser uma má idéia, mas foi assim que consegui que o php7 funcionasse com minha instalação do Ubuntu Server 12.04.5 (i386):

sudo nano /etc/apt/sources.list

Em seguida, acrescente o seguinte no final:
 

deb http://us.archive.ubuntu.com/ubuntu/ confiável principal universo restrito multiverso
deb http://archive.canonical.com/ubuntu parceiro confiável

Atualize como faria normalmente:

sudo apt-get update

Depois de instalar o PHP 7 no servidor apache, talvez você precise mover seus arquivos para um novo diretório para funcionar:

sudo mv / var / www / * / var / www / html /
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.