Jak zainstalować PHP 7?

116

PHP 7 wyszedł wczoraj i chciałbym spróbować.

PHP 7.0.0 zawiera nową wersję Zend Engine, liczne ulepszenia i nowe funkcje, takie jak

  • Poprawiona wydajność: PHP 7 jest nawet dwa razy szybszy niż PHP 5.6
  • Znacząco zmniejszone zużycie pamięci
  • Streszczenie Drzewo Składni
  • Spójna obsługa 64-bitowa
  • Ulepszona hierarchia wyjątków
  • Wiele błędów krytycznych zostało przekonwertowanych na wyjątki
  • Bezpieczny generator liczb losowych
  • Usunięto stare i nieobsługiwane interfejsy SAPI i rozszerzenia
  • Operator zerowania koalescencji (??)
  • Deklaracje typu powrotu i skalarne
  • Anonimowe klasy
  • Zapewnia zerowy koszt

php.net


Czy można to zainstalować w bieżącej wersji Ubuntu?

Czy są jakieś obecne ograniczenia lub znane problemy ze zgodnością?

hg8
źródło
1
PHP 7 jest domyślny w Ubuntu 16, Xenial.
Buttle Butkus

Odpowiedzi:

180

Możesz wykonać następujące czynności:

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

Opcjonalnie wyczyść PHP 5:

sudo apt-get remove php5-common -y

Lub bezpośrednio wyczyść, w tym pliki konfiguracyjne:

sudo apt-get purge php5-common -y

I na koniec zainstaluj PHP 7:

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

Opcjonalnie wyczyść niepotrzebne pakiety później:

sudo apt-get --purge autoremove -y

Alternatywnie możesz zainstalować PHP 7.0 ze źródeł za pomocą tego skryptu skryptowego lub postępując zgodnie z instrukcjami na tym blogu .

EDYTOWAĆ:

PHP5 zostało teraz zastąpione PHP7 jako domyślnym PHP w Ubuntu 16.4, więc aby zainstalować PHP7 na Ubuntu 16.04:

sudo apt-get install php7.0 

Lub

sudo apt-get install php
Tshilidzi Mudau
źródło
12
Kto jest odpowiedzialny za PPA? Czy jest to oficjalnie wspierane przez Zend?
k0pernikus
19
@ k0pernikus Zend oficjalnie nie obsługuje niczego poza serwerem Zend :-) Oficjalne pakiety Ubuntu są obsługiwane przez opiekunów Ubuntu. Niniejsza umowa PPA jest osobistym wysiłkiem Ondřej Surý. Ondrey jest oficjalnym właścicielem drzewa PHP w Debianie, które jest w górę od Ubuntu. Zobacz tutaj: qa.debian.org/developer.php?login=ondrej%40debian.org
Palantir
4
Zresztą jego PPA PHP są bardzo popularne, do punktu, gdzie oficjalna dystrybucja Magento reklamuje w wersji 5.5 i 5.6: devdocs.magento.com/guides/v2.0/install-gde/prereq/...
Palantir
3
Memcached JFTR nie jest jeszcze gotowy na PHP 7.0. Nie patrzyłem na memcache, wciąż usuwając mniejsze błędy po poważnym przepisaniu skryptów pakujących.
oerdnj
4
@ Xeridea Spróbuj sudo apt-get install libapache2-mod-php7.0, a sudo a2enmod php7.0następnie uruchom ponownie Apache
andrewtweber
21

Masz dwie opcje:

  • Poczekaj, aż pojawi się nowa wersja Ubuntu zawierająca PHP7

    Ubuntu nie wyda głównych nowych wersji dla większości programów do istniejących wersji Ubuntu; aby uzyskać główną nową wersję, musisz poczekać na nowszą wersję Ubuntu.

  • Zainstaluj wersję innej firmy, na przykład z PPA

    Umowy PPA nie są związane harmonogramami wydań ani zasadami Ubuntu, więc mogą między innymi zmieniać wersje częściej. PPA wspomniane w odpowiedzi Tshilidzi Mudau jest popularnym sposobem na pozostawanie na bieżąco z PHP.

    sudo add-apt-repository ppa:ondrej/php
    

    Umowy PPA nie mają tej samej oficjalnej obsługi Ubuntu, co wersje dostarczane przez Ubuntu, a ze względu na różne harmonogramy i zasady mogą mieć inną jakość lub standard bezpieczeństwa. W takim przypadku programista, który udostępnia tę umowę PPA, jest dobrze znany społeczności tutaj.

thomasrutter
źródło
1
I opcja instalacji ze źródła.
j0h
18

Oto moja lista poleceń do pełnej aktualizacji PHP z jego zależnościami, w tym phpMyAdmin (pełny stos 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

Teraz masz PHP7. Przejdźmy do phpMyAdmin: (zacznij tutaj, jeśli masz już zainstalowany 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
Jarek Jakubowski
źródło
3
libapache2-mod-php7.0jest dokładnie tym, czego potrzebowałem, dzięki!
Jacer Omri
7

Powyższy proces nie działał na moim serwerze Ubuntu 15.10, więc pomyślałem, że podzielę się tym, co zadziałało, gdyby inni uznali to za pomocne.

Najpierw musiałem usunąć niektóre kluczowe moduły 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

Następnie usuń kilka dodatkowych rzeczy, które pozostały w tyle:

sudo apt-get autoremove

Następnie zainstaluj PHP 7.0:

sudo apt-get install php7.0

Następnie, gdy PHPMyAdmin został usunięty, Apache2 nie uruchomił się, więc musiałem usunąć plik konfiguracyjny (zamiast tego mogłem go przenieść):

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

Następnie musiałem zrestartować Apache2:

sudo service apache2 restart

Następnie uruchomiono PHP 7.0 (potwierdzone za pomocą PHPINFO();)

Jednak znalazłem jedyny sposób, aby PHPMyAdmin działał, to zainstalować / zaktualizować go ręcznie, ponieważ w przeciwnym razie najnowsza wersja dostępna w źródłach nie obsługuje jeszcze PHP 7.

** EDYCJA: Znalazłem sposób na zaktualizowanie PHPMyAdmin do kompatybilnej wersji bez konieczności klonowania z GIT lub ręcznej kompilacji ze źródeł, więc dodaję to poniżej:

Najpierw dodaj to repozytorium, listę źródeł aktualizacji i aktualizację (Uwaga: jeśli został on usunięty podczas aktualizacji do PHP7, będziesz musiał zainstalować, zamiast go zaktualizować):

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

Jednak podczas instalacji (na moim serwerze) musiał uruchomić skrypt aktualizacji bazy danych, upgrade_column_info_4_3_0+.sqlale nie powiodło się z powodu następującego błędu:

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

Zdecydowałem się zignorować błąd i dokończyć aktualizację. Po instalacji otworzyłem skrypt aktualizacji .sql na stronie/usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql

Uruchomiłem skrypt ręcznie usuwając dwie obraźliwe linie, próbując utworzyć 2 kolumny, które już istniały (kod do usunięcia):

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

W końcu musiałem edytować plik konfiguracyjny /etc/phpmyadmin/config.inc.phpi dodać następujące dwa wiersze:

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

Po tym PHPMyAdmin zostanie pomyślnie zaktualizowany i rozszerzone funkcje zostaną włączone. Mam nadzieję, że to pomaga innym.

Robin Wilson
źródło
4

W chwili odpowiedzi (luty 2017 r.) Na Ubuntu 16.04 LTS można teraz zainstalować php 7.0. * Za pomocą prostej komendy:

apt-get install php

Nie trzeba dodawać żadnych repozytoriów stron trzecich.

Leo Galleguillos
źródło
3

Myślę, że ppazostał dodany w 16.04 LTS.

  1. Po prostu zrób sudo apt-get install php7.0i to wszystko.
  2. Sprawdź, czy został zainstalowany, uruchamiając php --version
  3. Możesz także utworzyć info.phpplik w katalogu głównym Apache.
  4. To jest w /var/www/html/katalogu
  5. Biegać sudo gedit /var/www/html/info.php
  6. Dodaj poniższe linie do pliku: <?php phpinfo(); ?>. Uwaga: plik jest pustym plikiem, ponieważ sam go utworzyłeś.
  7. Teraz uruchom ponownie apache sudo service apache2 restart
  8. W przeglądarce internetowej http://localhost/info.phpotrzymasz pełne informacje o php.

Mam nadzieję że to pomoże :)

Collin
źródło
1
Czy nie muszę dodawać go do Apache2?
Arlen Beiler
To nie jest ppa, to oficjalna wersja Ubuntu.
Jeff Puckett,
2

Zebrałem kilka różnych zasobów i rozwiązałem wiele problemów, aby w pełni skonfigurować wersję PHP 7 na Ubuntu 15.04 i 15.10. Chociaż nie jest to skrypt pakietu Debiana, konfiguruje zależności i konfigurację Ubuntu. Zasoby można znaleźć tutaj .

Może być konieczne wybranie gałęzi wydania tylko nadrzędnego i ponowne uruchomienie skryptu.

m1st0
źródło
2

Wiem, że to może być zły pomysł, ale w ten sposób zmusiłem php7 do pracy z moją instalacją Ubuntu Server 12.04.5 (i386):

sudo nano /etc/apt/sources.list

Następnie dodaj na końcu:
 

deb http://us.archive.ubuntu.com/ubuntu/ zaufany uniwersalny wszechświat z ograniczeniami
deb http://archive.canonical.com/ubuntu zaufany partner

Następnie zaktualizuj, jak zwykle:

sudo apt-get update

Po zainstalowaniu PHP 7 na serwerze Apache może być konieczne przeniesienie plików do nowego katalogu w celu pracy:

sudo mv / var / www / * / var / www / html /
KimChoJapFan
źródło