PHP 7 vyšlo včera a chcel by som ho vyskúšať.
PHP 7.0.0 prichádza s novou verziou Zend Engine, mnohými vylepšeniami a novými funkciami, ako napr.
- Vylepšený výkon: PHP 7 je až dvakrát rýchlejšie ako PHP 5.6
- Výrazne znížená spotreba pamäte
- Abstraktný syntaktický strom
- Dôsledná podpora 64-bitov
- Vylepšená hierarchia výnimiek
- Mnohé fatálne chyby boli prevedené na výnimky
- Bezpečný generátor náhodných čísel
- Odstránené staré a nepodporované SAPI a rozšírenia
- Operátor koalescencie null (??)
- Deklarácie návratových a skalárnych typov
- Anonymné triedy
- nulové náklady na potvrdenia
Je to možné nainštalovať na aktuálnu verziu Ubuntu?
Existujú nejaké aktuálne obmedzenia alebo známe problémy s kompatibilitou?
Môžete vykonať nasledujúce 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
Voliteľne vyčistite PHP 5:
sudo apt-get remove php5-common -y
Alebo ho priamo vyčistite vrátane konfiguračných súborov:
sudo apt-get purge php5-common -y
A nakoniec nainštalujte PHP 7:
sudo apt-get install php7.0 php7.0-fpm php7.0-mysql -y
Prípadne potom vyčistite nepotrebné balíky:
sudo apt-get --purge autoremove -y
Prípadne môžete nainštalovať PHP 7.0 zo zdrojov pomocou tohto skriptu script alebo podľa návodu na tomto blog.
EDIT:
PHP5 bolo teraz nahradené PHP7 ako predvolené PHP v Ubuntu 16.4, takže ak chcete nainštalovať PHP7 v Ubuntu 16.04:
sudo apt-get install php7.0
Alebo
sudo apt-get install php
Máte dve možnosti:
Čakať, kým sa objaví nové vydanie Ubuntu, ktoré bude obsahovať PHP7
Ubuntu nevydáva veľké nové verzie väčšiny softvéru pre existujúce verzie Ubuntu; aby ste získali veľkú novú verziu, museli by ste počkať na novšiu verziu Ubuntu.
Inštalácia verzie tretej strany, napríklad z PPA
PPA nie sú viazané plánmi vydávania ani zásadami Ubuntu, takže môžu okrem iného častejšie meniť verzie. PPA spomínaný v odpovedi Tshilidzi Mudau'a je populárnym spôsobom, ako zostať aktuálnejší v PHP.
sudo add-apt-repository ppa:ondrej/php
PPA nemajú'rovnakú oficiálnu podporu Ubuntu ako verzie dodávané Ubuntu a kvôli rôznym plánom a politikám môžu mať inú kvalitu alebo bezpečnostný štandard. V tomto prípade je vývojár, ktorý tento PPA sprístupňuje, tunajšej komunite dobre známy.
Vyššie uvedený postup nefungoval pre môj server Ubuntu 15.10, takže som si myslel, že sa podelím o to, čo fungovalo v prípade, že to ostatní považujú za užitočné.
Najprv som musel odstrániť niektoré kľúč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
Potom odstrániť niekoľko ďalších vecí, ktoré zostali:
sudo apt-get autoremove
Potom nainštalujte PHP 7.0:
sudo apt-get install php7.0
Potom ako PHPMyAdmin bol odstránený Apache2 by't spustený, takže som musel odstrániť konfiguračný súbor (mohol som ho presunúť namiesto):
sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf
Potom som musel reštartovať Apache2:
sudo service apache2 restart
PHP 7.0 potom bežalo (potvrdené pomocou PHPINFO();
)
Zistil som však, že jediný spôsob, ako sprevádzkovať PHPMyAdmin, je nainštalovať/aktualizovať ho ručne, pretože inak najnovšia verzia dostupná v zdrojoch zatiaľ nepodporuje PHP 7.
**EDIT: Teraz som našiel spôsob, ako aktualizovať PHPMyAdmin na kompatibilnú verziu bez toho, aby som musel klonovať z GIT alebo ručne kompilovať zo zdrojov, takže to pridávam nižšie:
Najskôr pridajte tento repozitár, aktualizujte zoznam zdrojov a aktualizujte (Poznámka: ak bol odstránený počas aktualizácie na PHP7, budete ho musieť nainštalovať, a nie aktualizovať):
sudo add-apt-repository ppa:nijel/phpmyadmin
sudo apt-get update
sudo apt-get dist-upgrade
Počas inštalácie (na mojom serveri) však bolo potrebné spustiť skript na aktualizáciu databázy upgrade_column_info_4_3_0+.sql
, ktorý však zlyhal s nasledujúcou chybou:
mysql said: ERROR 1060 (42S21) at line 28: Duplicate column name 'input_transformation'
Rozhodol som sa ignorovať chybu a dokončiť aktualizáciu.
Po inštalácii som otvoril skript aktualizácie .sql na adrese /usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql
Skript som spustil ručne a odstránil dva chybné riadky, ktoré sa snažili vytvoriť 2 stĺpce, ktoré už existovali (kód na odstránenie):
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 '';
Nakoniec som musel upraviť konfiguračný súbor /etc/phpmyadmin/config.inc.php
a pridať nasledujúce dva riadky:
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
Potom sa PHPMyAdmin úspešne aktualizoval a rozšírené funkcie sú povolené. Dúfam, že to pomôže aj ostatným.