PHP 7 vyšlo včera a rád bych ho vyzkoušel.
PHP 7.0.0 přichází s novou verzí Zend Engine, mnoha vylepšeními a novými funkcemi, jako např.
- Vylepšený výkon: PHP 7 je až dvakrát rychlejší než PHP 5.6.
- Výrazně snížená spotřeba paměti
- abstraktní syntaktický strom
- Důsledná podpora 64 bitů
- Vylepšená hierarchie výjimek
- Mnoho fatálních chyb převedeno na výjimky
- Bezpečný generátor náhodných čísel
- Odstraněny staré a nepodporované SAPI a rozšíření
- Operátor koalescence null (??)
- Deklarace návratových a skalárních typů
- Anonymní třídy
- Nulové náklady na potvrzení
Je to možné nainstalovat na aktuální verzi Ubuntu?
Existují nějaká aktuální omezení nebo známé problémy s kompatibilitou?
Můžete provést následující kroky:
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
Volitelně vyčistěte PHP 5:
sudo apt-get remove php5-common -y
Nebo jej přímo vyčistěte včetně konfiguračních souborů:
sudo apt-get purge php5-common -y
A nakonec nainstalujte PHP 7:
sudo apt-get install php7.0 php7.0-fpm php7.0-mysql -y
Nepotřebné balíčky případně následně vyčistěte:
sudo apt-get --purge autoremove -y
Případně můžete PHP 7.0 nainstalovat ze zdrojových kódů pomocí tohoto skriptu script nebo podle návodu na tomto blog.
EDIT:
PHP5 bylo nyní nahrazenoPHP7 jako výchozí PHP v Ubuntu 16.4, takže pro instalaci PHP7 v Ubuntu 16.04:
sudo apt-get install php7.0
Nebo
sudo apt-get install php
Máte dvě možnosti:
Čekat, až vyjde nové vydání Ubuntu, které bude obsahovat PHP7.
Ubuntu nevydává nové verze většiny softwaru pro stávající verze Ubuntu; abyste získali novou verzi, museli byste počkat na novější verzi Ubuntu.
Instalace verze třetí strany, například z PPA.
PPA nejsou vázány harmonogramy vydávání ani zásadami Ubuntu, takže mohou mimo jiné častěji měnit verze. PPA zmíněné v odpovědi Tshilidzi Mudau'a je oblíbeným způsobem, jak si udržet větší aktuálnost PHP.
sudo add-apt-repository ppa:ondrej/php
PPA nemají'stejnou oficiální podporu Ubuntu jako verze dodávané Ubuntu a vzhledem k odlišným plánům a zásadám mohou mít jinou kvalitu nebo bezpečnostní standard. V tomto případě je vývojář, který tento PPA zpřístupňuje, zdejší komunitě dobře znám.
Výše uvedený postup nefungoval na mém serveru Ubuntu 15.10, takže jsem si myslel, že se podělím o to, co fungovalo v případě, že to ostatním pomůže.
Nejprve jsem musel odstranit některé klíčové moduly 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
Pak odstranit několik dalších věcí, které zůstaly:
sudo apt-get autoremove
Poté nainstalujte PHP 7.0:
sudo apt-get install php7.0
Pak, protože PHPMyAdmin byl odstraněn Apache2 by't spuštění, takže jsem musel odstranit konfigurační soubor (Mohl jsem ho přesunout místo):
sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf
Pak jsem musel restartovat Apache2:
sudo service apache2 restart
PHP 7.0 pak běželo (potvrzeno pomocí PHPINFO();
)
Zjistil jsem však, že jediný způsob, jak zprovoznit PHPMyAdmin, je nainstalovat/aktualizovat jej ručně, protože jinak nejnovější verze dostupná ve zdrojových kódech zatím nepodporuje PHP 7.
**EDIT: Nyní jsem našel způsob, jak PHPMyAdmin aktualizovat na kompatibilní verzi, aniž bych musel klonovat z GITu nebo ručně kompilovat ze zdrojových kódů, takže to přidávám níže:
Nejprve přidejte tento repozitář, aktualizujte seznam zdrojů a proveďte upgrade (NB: pokud byl odstraněn během upgradu na PHP7, budete jej muset nainstalovat, nikoli aktualizovat):
sudo add-apt-repository ppa:nijel/phpmyadmin
sudo apt-get update
sudo apt-get dist-upgrade
Během instalace (na mém serveru) se však musel spustit skript pro upgrade databáze upgrade_column_info_4_3_0+.sql
, který však selhal s následující chybou:
mysql said: ERROR 1060 (42S21) at line 28: Duplicate column name 'input_transformation'
Rozhodl jsem se chybu ignorovat a upgrade dokončit.
Po instalaci jsem otevřel skript pro upgrade .sql na adrese /usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql
.
Spustil jsem skript ručně a odstranil dva chybné řádky, které se snažily vytvořit 2 sloupce, které již existovaly (kód k odstranění):
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 '';
Nakonec jsem musel upravit konfigurační soubor /etc/phpmyadmin/config.inc.php
a přidat následující dva řádky:
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
Poté se PHPMyAdmin úspěšně aktualizuje a rozšířené funkce jsou povoleny. Doufám, že to pomůže i ostatním.