Sådan installeres PHP 7 til Apache eller Nginx på Ubuntu 14.04 og 14.10


Måneder efter at den stabile version af PHP 7.0 blev frigivet, kunne det være det rigtige tidspunkt for dig at tænke på at opgradere til det fra de gamle versioner.

Der er altid forsigtighed med hensyn til opgraderinger, især i et produktionsmiljø, men det er en god idé nu at opgradere for at nyde hastighedsforbedringer og også funktioner som f.eks. Skalar-tip og mange flere.

Du kan installere to versioner af PHP på dit system og bruge en til testformål, men husk at du kun aktiverer et PHP Apache-modul på et givet tidspunkt.

Denne vejledning fokuserer på opgradering fra PHP 5.X ved hjælp af mod_php i forbindelse med Apache-webserver eller PHP-FPM i forbindelse med Nginx-webserver.

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

Lad os nu dykke ned i, hvordan du kan opgradere til den nyeste version af PHP og også konfigurere dit system til at bruge det.

Sådan installeres PHP 7 i Ubuntu 14.04 og 14.10

Først skal du tilføje den PPA, der opretholdes af Ondřej Surý til Debian og dens derivater som Ubuntu ved at køre kommandoen nedenfor:

$ sudo add-apt-repository ppa:ondrej/php

Dernæst opdater dit system som følger:

$ sudo apt-get update

Alt er nu indstillet, og du kan installere PHP 7.0, men vi skal se på opgradering til Apache og Nginx i forskellige sektioner.

Dette afsnit er til systemer, der kører Apache, hvor PHP-kode udføres ved hjælp af mod_php -modul. Installer den nyeste PHP-version som kommandoen nedenfor:

$ sudo apt-get install php7.0
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 er nu blevet opgraderet på dit system, men hvis du bruger MySQL-databasestyringssystem, bliver du nødt til at udføre følgende kommando for at opdatere PHP-MySQL-bindingen, og du bliver også nødt til at installere nogle nyttige moduler som Curl, GD , Cli, JSON osv.

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

Hvis du vil installere yderligere PHP7.0-moduler, kan du bruge apt-cache-kommandoen til at liste alle PHP7.0-moduler og installere.

$ sudo apt-cache search php7
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 dets moduler er installeret, kan du genstarte din Apache-webserver og kontrollere PHP-versionen som vist:

$ sudo service apache2 restart
$ php -v
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å verificere PHP7-oplysninger ved at oprette en info.php -fil under/var/www/html-biblioteket.

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

Placer følgende kode, og få adgang til siden via http: //server_IP-address/info.php .

<?php
phpinfo();
?>

Dette afsnit fører dig gennem processen med at opgradere til PHP7.0 og opdatere PHP-FPM med Nginx webserver, hvor PHP-kode udføres ved hjælp af PHP-FPM.

Kør kommandoen nedenfor for at installere de nyeste PHP-FPM-pakker:

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

PHP er nu blevet opgraderet, men hvis du bruger MySQL, skal du udføre følgende kommando for at opdatere PHP-MySQL-binding og nogle yderligere moduler som vist:

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

Dernæst skal du tilføje fastcgi_pass -direktivet i filen/etc/nginx/sites-enabled/default eller alle filer til dine virtuelle websteder, der skal bruge og understøtte PHP, da stien til PHP -FPM-sokkelfil, som PHP bruger til at kommunikere med Nginx, er ændret.

Brug din foretrukne editor og åbn filen til redigering som følger:

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

Rediger eller tilføj 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;
}

Genstart derefter Nginx og php-fpm som følger:

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

Endelig kan du teste, om PHP fungerer eller ikke, ved først at kontrollere din PHP-version og derefter teste den med webserveren.

$ php -v

Du får oplysninger om dine PHP-pakker ved at skrive en lille info.php-fil under/usr/share/nginx/html/directory:

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

Sæt denne kode i din info.php-fil:

<?php
phpinfo();
?>

Gem og afslut filen.

Åbn din webbrowser, indtast http: //server_IP-address/info.php , og du skal kunne se siden nedenfor, der viser dig detaljer om din PHP-pakke.

Du kan nu med glæde bruge PHP 7.0 på dit Ubuntu 14.04/14.10-system, og jeg håber, du finder denne vejledning nyttig.

For yderligere oplysninger om opgradering af PHP eller spørgsmål, er dine kommentarer velkomne i kommentarfeltet nedenfor.