Hvordan installere PHP 7 for Apache eller Nginx på Ubuntu 14.04 og 14.10


Måneder etter at den stabile versjonen av PHP 7.0 ble utgitt, kan dette være det rette tidspunktet for deg å tenke på å oppgradere til den fra de gamle versjonene.

Det er alltid forsiktighet med oppgraderinger, spesielt i et produksjonsmiljø, men det er en god idé nå å oppgradere for å nyte hastighetsforbedringer, og også funksjoner som antydning av skalartype pluss mange flere.

Du kan installere to versjoner av PHP på systemet ditt og bruke en til testformål, men husk at du bare aktiverer én PHP Apache-modul på en gitt tid.

Denne veiledningen fokuserer på å oppgradere fra PHP 5.X, ved å bruke mod_php i forbindelse med Apache-nettserveren eller PHP-FPM > i forbindelse med Nginx nettserver.

  1. Installer PHP 7 i Ubuntu 14.04 og 14.10
  2. Oppgradering til PHP 7.0 under Apache Web Server
  3. Oppgradering til PHP 7.0 under Nginx Web Server

La oss nå dykke ned i hvordan du kan oppgradere til nyeste versjon av PHP og også konfigurere systemet til å bruke det.

Hvordan installere PHP 7 i Ubuntu 14.04 og 14.10

Først må du legge til PPA vedlikeholdt av Ondřej Surý for Debian og dets derivater som Ubuntu ved å kjøre kommandoen nedenfor:

sudo add-apt-repository ppa:ondrej/php

Oppdater deretter systemet ditt som følger:

sudo apt-get update

Alt er nå satt, og du kan installere PHP 7.0, men vi skal se på oppgradering for Apache og Nginx i forskjellige seksjoner.

Oppgradering til PHP 7.0 under Apache Web Server

Denne delen er for systemer som kjører Apache, hvor PHP-kode kjøres ved hjelp av mod_php-modulen. Installer den nyeste PHP-versjonen ved å kjøre kommandoen nedenfor:

sudo apt-get install php7.0
Eksempelutgang

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libapache2-mod-php7.0 libssl1.0.2 php-common php7.0-cli php7.0-common
  php7.0-json php7.0-opcache php7.0-readline
Suggested packages:
  php-pear
The following NEW packages will be installed:
  libapache2-mod-php7.0 libssl1.0.2 php-common php7.0 php7.0-cli php7.0-common
  php7.0-json php7.0-opcache php7.0-readline
0 upgraded, 9 newly installed, 0 to remove and 80 not upgraded.
Need to get 4,371 kB of archives.
After this operation, 17.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

PHP har nå blitt oppgradert på systemet ditt, men hvis du bruker MySQL databasebehandlingssystem, må du utføre følgende kommando for å oppdatere PHP-MySQL-bindingen og Du må også installere noen nyttige moduler som Curl, GD, Cli, JSON, etc.

sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json 

Hvis du vil installere flere PHP7.0-moduler, kan du bruke apt-cache-kommandoen for å liste alle PHP7.0-moduler og installere.

sudo apt-cache search php7
Eksempelutgang

php-radius - radius client library for PHP
php-http - PECL HTTP module for PHP Extended HTTP Support
php-uploadprogress - file upload progress tracking extension for PHP
php-mongodb - MongoDB driver for PHP
php7.0-common - documentation, examples and common module for PHP
libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module)
php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.0-cli - command-line interpreter for the PHP scripting language
php7.0-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.0-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
libphp7.0-embed - HTML-embedded scripting language (Embedded SAPI library)
php7.0-dev - Files for PHP7.0 module development
php7.0-curl - CURL module for PHP
php7.0-enchant - Enchant module for PHP
php7.0-gd - GD module for PHP
php7.0-gmp - GMP module for PHP
php7.0-imap - IMAP module for PHP
php7.0-interbase - Interbase module for PHP
php7.0-intl - Internationalisation module for PHP
php7.0-ldap - LDAP module for PHP
php7.0-mcrypt - libmcrypt module for PHP
php7.0-readline - readline module for PHP
php7.0-odbc - ODBC module for PHP
php7.0-pgsql - PostgreSQL module for PHP
php7.0-pspell - pspell module for PHP
php7.0-recode - recode module for PHP
php7.0-snmp - SNMP module for PHP
php7.0-tidy - tidy module for PHP
php7.0-xmlrpc - XMLRPC-EPI module for PHP
php7.0-xsl - XSL module for PHP (dummy)
php7.0 - server-side, HTML-embedded scripting language (metapackage)
php7.0-json - JSON module for PHP
php-all-dev - package depending on all supported PHP development packages
php7.0-sybase - Sybase module for PHP
php7.0-sqlite3 - SQLite3 module for PHP
php7.0-mysql - MySQL module for PHP
php7.0-opcache - Zend OpCache module for PHP
php-apcu - APC User Cache for PHP
php-xdebug - Xdebug Module for PHP
php-imagick - Provides a wrapper to the ImageMagick library
php-ssh2 - Bindings for the libssh2 library
php-redis - PHP extension for interfacing with Redis
php-memcached - memcached extension module for PHP, uses libmemcached
php-apcu-bc - APCu Backwards Compatibility Module
php-amqp - AMQP extension for PHP
php7.0-bz2 - bzip2 module for PHP
php-rrd - PHP bindings to rrd tool system
php-uuid - PHP UUID extension
php-memcache - memcache extension module for PHP
php-gmagick - Provides a wrapper to the GraphicsMagick library
php-smbclient - PHP wrapper for libsmbclient
php-zmq - ZeroMQ messaging bindings for PHP
php-igbinary - igbinary PHP serializer
php-msgpack - PHP extension for interfacing with MessagePack
php-geoip - GeoIP module for PHP
php7.0-bcmath - Bcmath module for PHP
php7.0-mbstring - MBSTRING module for PHP
php7.0-soap - SOAP module for PHP
php7.0-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP
php7.0-zip - Zip module for PHP
php-tideways - Tideways PHP Profiler Extension
php-yac - YAC (Yet Another Cache) for PHP
php-mailparse - Email message manipulation for PHP
php-oauth - OAuth 1.0 consumer and provider extension
php-propro - propro module for PHP
php-raphf - raphf module for PHP
php-solr - PHP extension for communicating with Apache Solr server
php-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP
php-gearman - PHP wrapper to libgearman
php7.0-dba - DBA module for PHP

Når PHP7.0 og modulene er installert, kan du starte Apache-nettserveren på nytt og bekrefte PHP-versjonen som vist:

sudo service apache2 restart
php -v
Eksempelutgang

PHP 7.0.7-1+donate.sury.org~trusty+1 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

Du kan også verifisere PHP7-informasjon ved å lage en info.php-fil i katalogen /var/www/html.


sudo vi /var/www/html/info.php

Plasser følgende kode og gå til siden via http://server_IP-address/info.php.


<?php
phpinfo();
?>

Oppgradering til PHP 7.0 under Nginx Web Server

Denne delen tar deg gjennom prosessen med å oppgradere til PHP7.0 og oppdatere PHP-FPM med Nginx Web-server, der PHP-kode kjøres ved hjelp av PHP-FPM<.

Kjør kommandoen nedenfor for å installere de nyeste PHP-FPM-pakkene:

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

PHP har nå blitt oppgradert, men hvis du bruker MySQL, må du utføre følgende kommando for å oppdatere PHP-MySQL-bindingen og noen tilleggsmoduler som vist:

sudo apt-get install php7.0-mysql php7.0-cli php7.0-gd php7.0-json 

Deretter må du legge til fastcgi_pass-direktivet i filen /etc/nginx/sites-enabled/default eller alle filene for dine virtuelle nettsteder som må bruke og støtte PHP , siden banen til PHP-FPM-socketfilen som PHP bruker til å kommunisere med Nginx, har endret seg.

Bruk favorittredigeringsprogrammet ditt og åpne filen for redigering som følger:


sudo vi /etc/nginx/sites-enabled/default 

Endre eller legg til som følger:


location ~ [^/]\.php(/|$) {
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        if (!-f $document_root$fastcgi_script_name) {
                return 404;
        }
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
}

Start deretter Nginx og php-fpm på nytt som følger:


sudo service nginx restart
sudo service php7.0-fpm restart

Til slutt kan du teste om PHP fungerer eller ikke ved først å sjekke PHP-versjonen din og deretter teste den med webserveren.

php -v

Du får informasjon om PHP-pakkene dine ved å skrive en liten info.php-fil under /usr/share/nginx/html/-katalogen:

sudo vi /usr/share/nginx/html/info.php 

Sett denne koden på info.php-filen din:

<?php
phpinfo();
?>

Lagre og avslutt filen.

Åpne nettleseren din, skriv inn http://server_IP-address/info.php og du skal kunne se siden nedenfor som viser deg detaljer om PHP-pakken din.

Du kan nå med glede bruke PHP 7.0Ubuntu 14.04/14.10-systemet ditt, og jeg håper du finner denne veiledningen nyttig.

For ytterligere informasjon om oppgradering av PHP eller spørsmål, er dine kommentarer velkommen i kommentarfeltet nedenfor.