PHP 7 is [gisteren] uitgekomen (http://php.net/archive/2015.php#id2015-12-03-1) en ik zou het graag eens willen proberen.
PHP 7.0.0 komt met een nieuwe versie van de Zend Engine, talrijke verbeteringen en nieuwe mogelijkheden zoals
- Verbeterde prestaties: PHP 7 is tot twee keer zo snel als PHP 5.6
- Aanzienlijk verminderd geheugengebruik
- Abstracte Syntaxis Boom
- Consistente 64-bit ondersteuning
- Verbeterde Exception hiërarchie
- Veel fatale fouten geconverteerd naar Exceptions
- Beveiligde random number generator
- Verwijderen van oude en niet-ondersteunde SAPI's en extensies
- De null coalescing operator (??)
- Return en Scalar Type Verklaringen
- Anonymous Classes
- Zero cost asserts
Is dat mogelijk om het op de huidige Ubuntu versie te installeren?
Zijn er huidige beperkingen of bekende compatibiliteitsproblemen?
U kunt het volgende doen:
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
Optioneel kunt u PHP 5 zuiveren:
sudo apt-get remove php5-common -y
Of verwijder het direct, inclusief configuratie bestanden:
sudo apt-get purge php5-common -y
En installeer tenslotte PHP 7:
sudo apt-get install php7.0 php7.0-fpm php7.0-mysql -y
Eventueel achteraf onnodige pakketten opruimen:
sudo apt-get --purge autoremove -y
Als alternatief kunt u PHP 7.0 vanaf broncode installeren met dit script script of volgens de instructies op deze blog.
EDIT:
PHP5 is nu vervangendoor PHP7 als standaard PHP in Ubuntu 16.4 dus, om PHP7 te installeren op Ubuntu 16.04:
sudo apt-get install php7.0
Of
sudo apt-get install php
Je hebt twee opties:
Wachten tot er een nieuwe Ubuntu release is die PHP7 bevat
Ubuntu zal'geen grote nieuwe versie releases uitbrengen voor de meeste software voor bestaande Ubuntu versies; om een grote nieuwe versie release te krijgen zou je moeten wachten tot een nieuwere versie van Ubuntu.
Installeer een versie van derden, zoals van een PPA
PPA's zijn niet gebonden aan de releaseschema's of het beleid van Ubuntu, dus ze zijn vrij om vaker van versie te veranderen, onder andere. De PPA genoemd in Tshilidzi Mudau's antwoord is een populaire manier om meer up to date te blijven met PHP.
sudo add-apt-repository ppa:ondrej/php
PPA's komen's niet met dezelfde officiële Ubuntu-ondersteuning als door Ubuntu geleverde versies, en vanwege verschillende schema's en beleid kunnen ze van een andere kwaliteit of beveiligingsstandaard zijn. In dit geval is de ontwikkelaar die deze PPA beschikbaar stelt bekend bij de gemeenschap hier.
Het bovenstaande proces werkte niet voor mijn Ubuntu 15.10 server, dus ik dacht dat ik zou delen wat wel werkte voor het geval anderen het nuttig vinden.
Eerst moest ik bepaalde belangrijke PHP 5 modules verwijderen:
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
Daarna een paar extra dingen verwijderen die waren achtergebleven:
sudo apt-get autoremove
Installeer dan PHP 7.0:
sudo apt-get install php7.0
Toen PHPMyAdmin werd verwijderd wilde Apache2 niet starten dus moest ik het config bestand verwijderen (ik had het ook kunnen verplaatsen):
sudo rm /etc/apache2/conf-enabled/phpmyadmin.conf
Daarna moest ik Apache2 opnieuw starten:
sudo service apache2 restart
PHP 7.0 draaide toen (bevestigd met PHPINFO();
)
Ik heb echter ontdekt dat de enige manier om PHPMyAdmin werkend te krijgen is om het handmatig te installeren/upgraden omdat anders de laatste versie beschikbaar in de sources nog geen ondersteuning biedt voor PHP 7'`.
**EDIT: Ik heb nu een manier gevonden om PHPMyAdmin te updaten naar een compatibele versie zonder te hoeven clonen van GIT of handmatig te compileren vanuit de broncode, dus ik voeg dit hieronder toe:
Voeg eerst deze repository toe, update sources lijst en upgrade (NB: als het is verwijderd tijdens de upgrade naar PHP7 moet je het installeren in plaats van upgraden):
sudo add-apt-repository ppa:nijel/phpmyadmin
sudo apt-get update
sudo apt-get dist-upgrade
Tijdens de installatie (op mijn server) moest echter een database upgrade script upgrade_column_info_4_3_0+.sql
worden uitgevoerd, maar dit mislukte met de volgende foutmelding:
mysql said: ERROR 1060 (42S21) at line 28: Duplicate column name 'input_transformation'
Ik koos ervoor om de fout te negeren en de upgrade te voltooien.
Na de installatie opende ik het .sql upgrade script op /usr/share/phpmyadmin/sql/upgrade_column_info_4_3_0+.sql
Ik heb het script handmatig uitgevoerd en de twee regels verwijderd die probeerden 2 kolommen aan te maken die al bestonden (code om te verwijderen):
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 '';
Uiteindelijk moest ik het config bestand in /etc/phpmyadmin/config.inc.php
bewerken en de volgende twee regels toevoegen:
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
Hierna is PHPMyAdmin succesvol bijgewerkt en zijn de uitgebreide functies ingeschakeld. Hopelijk helpt dit anderen.