Opgrader php5 til php7 på Linux
Introduktion
PHP 7 (yep, vi springer PHP 6 over, som endte med at hedde PHP 5.3) blev offentliggjort tilbage i December 2015. PHP 7 har især ét fokusområde mange vil sætte pris på; hastighed. De første performancemålinger lavet med populære open-source systemer som Drupal, Wordpress og Magento viser væsentlige forbedringer på performance. Der er naturligvis også andre nyheder i PHP 7 som bl.a. type hinting, den nye Spaceship Operator <=>.
I dette gratis blogindlæg fra v5.dk fokuserer vi på hvordan du kan opgradere din server fra PHP 5.x (uanset tidligere version) til den nye version - PHP 7. Vi vil i denne guide gennemgå de nødvendige steps for mod_php5 til mod_php7 sammen med Apache-webserveren. Hvis ønsket kan vi udgive en guide til PHP-FPM sammen med Nginx også.
Det er vigtigt at bemærke, som med alle andre major-updates (major er f.eks. fra 1.0 til 2.0 - minor er f.eks. fra 2.0 til 2.1) anbefales det at man venter lidt med at opdatere sine produktionssystemer til den nye PHP 7. Selvom PHP 7 er awesome, så vil der helt sikkert over de næste måneder blive fundet en masse fejl, som løbende bliver rettet i nye minor opdateringer. Lige nu er det, det helt perfekte tidspunkt at få testet alt ens kode sammen med PHP 7 på f.eks. en test-server fra v5.dk ;-) Du kan f.eks deploy en test-server i en uge til en fast engangspris på 25,00 kr. inkl. moms. hvorefter den automatisk lukker ned igen.
Inden vi går i gang
Denne guide tager udgangspunkt i at du har en Ubuntu 14.04 server med PHP 5.x installeret, som mod_php sammen med Apache (vi udgiver senere en guide til PHP-FPM sammen med Nginx).
Vi tager også udgangspunkt i er du er logget ind som en ikke-root bruger der har sudo-privilegier - dette kan du lære mere om i denne video. Har du spørgsmål til dette, kan du altid oprette et indlæg i vores forum.
Installation af PHP 7.0
Første step: Tilføj PHP 7 pakke-arkiver
Personlige pakke-arkiver (Personal Package Archive), eller PPA i daglig tale, er en udvidelse til vores Apt pakkesystem. “PPA” gør det muligt for udviklere verden over at bygge og distribuere software-pakker til Ubuntu, uden om Ubuntus officielle Apt-kanaler. De bruges ofte til beta-software, modificerede builds og som her, nyere versioner af specifikt software, som endnu ikke er kommet til Ubuntus egne kanaler.
Ondřej Surý som vedligeholder PHP-pakkerne til Debians Apt, har også lavet pakker til Ubuntu, og det er hans PPA som vi skal aktivere i vores Ubuntus Apt-pakkesystem.
Det gøres meget nemt med kommandoen:
sudo add-apt-repository ppa:ondrej/php
Herefter vil du se en kort beskrivelse, og du kan bekræfte tilføjelsen ved at trykke Enter.
Får du en fejl ved tilføjelse af PPA?
Bemærk: Hvis din Linux-servers Regions-indstillinger (locale) er sat til andet end UTF-8, vil du få en fejl når du tilføjer denne PPA pga. en fejl i håndtering af navnet på Ondřej Surý som har lavet pakkerne. Du kan komme udenom denne fejl, ved at installere language-pack-en-base, som vi kan bruge til at overrule system-indstillingerne ved installation af netop denne pakke. Det gøres nemt ved først at installere language-pack-en-base:
sudo apt-get install -y language-pack-en-base
Og bagefter bruge denne language-pakke som vores locale, når vi installere PPA-arkivet.
sudo LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
Opdater apt-get indeks
Når vores PPA-arkiv er tilføjet til vores Apt-system, skal vi opdatere vores pakke-indeks med følgende kommando:
sudo apt-get update
Og nu har vi adgang til de nye PHP 7.x pakker i vores Ubuntu Apt-get system.
Opgrader mod_php (Apache-webserveren)
Hvis du kører Apache webserveren sammen med PHP 5.x (mod_php) vil vi her vise hvordan du kan opgradere til PHP 7.
Det er heldigvis meget simpelt at installere PHP 7. Når vi installerer PHP 7 pakkerne vil alle PHP 5 pakkerne blive fjernet, og erstattet med de nye 7.x versioner.
Bemærk at php5-mysql pakken ikke bliver fjernet automatisk, ydermere bevares /etc/php5 konfigurationsfilerne, det betyder at du kan referere til disse, hvis du har lavet nogle ændringer heri, og lave selvsamme ændringer igen, i det nye filer, som ligger i /etc/php/7.0
sudo apt-get install php7.0
Hvis du bruger MySQL skal du installere den PHP 7 MySQL-pakke som nemt kan installeres med følgende kommando:
sudo apt-get install php7.0-mysql
Din server er nu opdateret til PHP version 7, du kan bekræfte dette med at skrive:
php -v
PHP 7.0.0-5+deb.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
Vi anbefaler også at læse PHPs officelle migreringsguide fra tidligere version af PHP til den nye PHP 7.0 og hvis du har yderligere spørgsmål, kan du altid oprette et indlæg i vores forum.