Zoeken op website

Hoe PHP 7 voor Apache of Nginx op Ubuntu 14.04 en 14.10 te installeren


Maanden nadat de stabiele versie van PHP 7.0 werd uitgebracht, zou dit het juiste moment kunnen zijn om te overwegen om vanaf de oude versies naar deze versie te upgraden.

Er is altijd voorzichtigheid geboden bij upgrades, vooral in een productieomgeving, maar het is nu een goed idee om te upgraden om te profiteren van snelheidsverbeteringen, en ook van functies zoals scalaire type-hints en nog veel meer.

U kunt twee versies van PHP op uw systeem installeren en er één gebruiken voor testdoeleinden, maar onthoud dat u slechts één PHP Apache-module per keer inschakelt.

Deze handleiding richt zich op het upgraden van PHP 5.X, met behulp van mod_php in combinatie met de Apache webserver of PHP-FPM > in verbinding met de Nginx webserver.

  1. Installeer PHP 7 in Ubuntu 14.04 en 14.10
  2. Upgraden naar PHP 7.0 onder Apache Web Server
  3. Upgraden naar PHP 7.0 onder Nginx Web Server

Laten we nu eens kijken hoe u kunt upgraden naar de nieuwste versie van PHP en hoe u uw systeem kunt configureren om het te gebruiken.

Hoe PHP 7 te installeren in Ubuntu 14.04 en 14.10

Eerst moet u de PPA toevoegen die wordt onderhouden door Ondřej Surý voor Debian en zijn afgeleiden zoals Ubuntu door de onderstaande opdracht uit te voeren:

sudo add-apt-repository ppa:ondrej/php

Update vervolgens uw systeem als volgt:

sudo apt-get update

Alles is nu ingesteld en u kunt PHP 7.0 installeren, maar we zullen in verschillende secties kijken naar de upgrade voor Apache en Nginx.

Upgraden naar PHP 7.0 onder Apache Web Server

Deze sectie is bedoeld voor systemen waarop Apache draait, waarbij PHP-code wordt uitgevoerd met behulp van de mod_php-module. Installeer de nieuwste PHP-versie door de onderstaande opdracht uit te voeren:

sudo apt-get install php7.0
Voorbeelduitvoer

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 is nu geüpgraded op uw systeem, maar als u het MySQL databasebeheersysteem gebruikt, moet u de volgende opdracht uitvoeren om de PHP-MySQL binding bij te werken en je zult ook enkele nuttige modules moeten installeren, zoals Curl, GD, Cli, JSON, enz.

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

Als u extra PHP7.0-modules wilt installeren, kunt u de opdracht apt-cache gebruiken om alle PHP7.0-modules weer te geven en te installeren.

sudo apt-cache search php7
Voorbeelduitvoer

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

Zodra PHP7.0 en de bijbehorende modules zijn geïnstalleerd, kunt u uw Apache-webserver opnieuw opstarten en de PHP-versie verifiëren zoals weergegeven:

sudo service apache2 restart
php -v
Voorbeelduitvoer

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

Je kunt PHP7-informatie ook verifiëren door een info.php-bestand te maken in de map /var/www/html.


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

Plaats de volgende code en ga naar de pagina via http://server_IP-address/info.php.


<?php
phpinfo();
?>

Upgraden naar PHP 7.0 onder Nginx Web Server

In dit gedeelte wordt u door het proces geleid van het upgraden naar PHP7.0 en het updaten van PHP-FPM met de Nginx-webserver, waarbij PHP-code wordt uitgevoerd met behulp van PHP-FPM.

Voer de onderstaande opdracht uit om de nieuwste PHP-FPM-pakketten te installeren:

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

PHP is nu geüpgraded, maar als je MySQL gebruikt, moet je de volgende opdracht uitvoeren om de PHP-MySQL-binding en enkele extra modules bij te werken, zoals weergegeven:

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

Vervolgens moet u de fastcgi_pass richtlijn toevoegen aan het bestand /etc/nginx/sites-enabled/default of aan alle bestanden voor uw virtuele sites die PHP moeten gebruiken en ondersteunen , omdat het pad van het PHP-FPM socketbestand dat PHP gebruikt om met Nginx te communiceren, is veranderd.

Gebruik uw favoriete editor en open het bestand als volgt om te bewerken:


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

Wijzig of voeg als volgt toe:


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 vervolgens Nginx en php-fpm opnieuw als volgt:


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

Ten slotte kunt u testen of PHP werkt of niet door eerst uw PHP-versie te controleren en deze vervolgens te testen met de webserver.

php -v

U krijgt informatie over uw PHP-pakketten door een klein info.php bestand te schrijven in de map /usr/share/nginx/html/:

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

Plaats deze code in uw info.php bestand:

<?php
phpinfo();
?>

Sla het bestand op en sluit het af.

Open uw webbrowser, voer http://server_IP-address/info.php in en u zou de onderstaande pagina moeten kunnen zien met details over uw PHP-pakket.

Je kunt PHP 7.0 nu met plezier gebruiken op je Ubuntu 14.04/14.10 systeem, en ik hoop dat je deze handleiding nuttig vindt.

Voor aanvullende informatie over het upgraden van PHP of voor vragen zijn uw opmerkingen welkom in het commentaargedeelte hieronder.