Πώς να εγκαταστήσετε την PHP 7 για Apache ή Nginx σε Ubuntu 14.04 και 14.10


Μήνες μετά την κυκλοφορία της σταθερής έκδοσης της PHP 7.0, θα μπορούσε να είναι η κατάλληλη στιγμή για να σκεφτείτε να την αναβαθμίσετε από τις παλιές εκδόσεις.

Υπάρχει πάντα προσοχή σχετικά με τις αναβαθμίσεις, ειδικά σε περιβάλλον παραγωγής, αλλά είναι καλή ιδέα τώρα να κάνετε αναβάθμιση, ώστε να απολαμβάνετε βελτιώσεις ταχύτητας, καθώς και λειτουργίες όπως υποδείξεις βαθμωτών τύπων και πολλά άλλα.

Μπορείτε να εγκαταστήσετε δύο εκδόσεις της PHP στο σύστημά σας και να χρησιμοποιήσετε μία για δοκιμαστικούς σκοπούς, αλλά να θυμάστε ότι ενεργοποιείτε μόνο μία λειτουργική μονάδα PHP Apache σε δεδομένο χρόνο.

Αυτός ο οδηγός εστιάζει στην αναβάθμιση από PHP 5.X, χρησιμοποιώντας mod_php σε σύνδεση με διακομιστή Ιστού Apache ή PHP-FPM > σε σύνδεση με τον διακομιστή Ιστού Nginx.

  1. Εγκαταστήστε την PHP 7 στο Ubuntu 14.04 και 14.10
  2. Αναβάθμιση σε PHP 7.0 στον διακομιστή Web Apache
  3. Αναβάθμιση σε PHP 7.0 στον διακομιστή Web Nginx

Ας δούμε τώρα πώς μπορείτε να αναβαθμίσετε στην πιο πρόσφατη έκδοση της PHP και επίσης να διαμορφώσετε το σύστημά σας για να τη χρησιμοποιεί.

Πώς να εγκαταστήσετε την PHP 7 στο Ubuntu 14.04 και 14.10

Αρχικά, θα πρέπει να προσθέσετε το PPA που διατηρεί το Ondřej Surý για το Debian και τα παράγωγά του όπως το Ubuntu εκτελώντας την παρακάτω εντολή:

sudo add-apt-repository ppa:ondrej/php

Επόμενη ενημέρωση του συστήματός σας ως εξής:

sudo apt-get update

Όλα είναι πλέον ρυθμισμένα και μπορείτε να εγκαταστήσετε την PHP 7.0, αλλά θα εξετάσουμε την αναβάθμιση για Apache και Nginx σε διαφορετικές ενότητες.

Αναβάθμιση σε PHP 7.0 στον διακομιστή Web Apache

Αυτή η ενότητα είναι για συστήματα που εκτελούν Apache, όπου ο κώδικας PHP εκτελείται χρησιμοποιώντας την ενότητα mod_php. Εγκαταστήστε την πιο πρόσφατη έκδοση PHP εκτελώντας την παρακάτω εντολή:

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 έχει πλέον αναβαθμιστεί στο σύστημά σας, αλλά εάν χρησιμοποιείτε σύστημα διαχείρισης βάσεων δεδομένων MySQL, τότε θα πρέπει να εκτελέσετε την ακόλουθη εντολή για να ενημερώσετε τη σύνδεση PHP-MySQL και επίσης θα χρειαστεί να εγκαταστήσετε κάποιες χρήσιμες ενότητες όπως Curl, GD, Cli, JSON κ.λπ.

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

Εάν θέλετε να εγκαταστήσετε επιπλέον λειτουργικές μονάδες PHP7.0, μπορείτε να χρησιμοποιήσετε την εντολή apt-cache για να παραθέσετε όλες τις μονάδες PHP7.0 και να τις εγκαταστήσετε.

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

Μόλις εγκατασταθούν το PHP7.0 και οι μονάδες του, μπορείτε να επανεκκινήσετε τον διακομιστή ιστού Apache και να επαληθεύσετε την έκδοση PHP όπως φαίνεται:

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

Μπορείτε επίσης να επαληθεύσετε τις πληροφορίες PHP7 δημιουργώντας ένα αρχείο info.php στον κατάλογο /var/www/html.


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

Τοποθετήστε τον ακόλουθο κώδικα και αποκτήστε πρόσβαση στη σελίδα μέσω http://server_IP-address/info.php.


<?php
phpinfo();
?>

Αναβάθμιση σε PHP 7.0 στον διακομιστή Web Nginx

Αυτή η ενότητα σάς οδηγεί στη διαδικασία αναβάθμισης σε PHP7.0 και ενημέρωσης του PHP-FPM με διακομιστή Ιστού Nginx, όπου ο κώδικας PHP εκτελείται χρησιμοποιώντας PHP-FPM<.

Εκτελέστε την παρακάτω εντολή για να εγκαταστήσετε τα πιο πρόσφατα πακέτα PHP-FPM:

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

Η PHP έχει πλέον αναβαθμιστεί, αλλά εάν χρησιμοποιείτε MySQL, τότε θα πρέπει να εκτελέσετε την ακόλουθη εντολή για να ενημερώσετε τη δέσμευση PHP-MySQL και ορισμένες πρόσθετες μονάδες όπως φαίνεται:

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

Στη συνέχεια, πρέπει να προσαρτήσετε την οδηγία fastcgi_pass στο αρχείο /etc/nginx/sites-enabled/default ή όλα τα αρχεία για τους εικονικούς σας ιστότοπους που πρέπει να χρησιμοποιούν και να υποστηρίζουν PHP , αφού η διαδρομή του αρχείου υποδοχής PHP-FPM που χρησιμοποιεί η PHP για να επικοινωνεί με το Nginx έχει αλλάξει.

Χρησιμοποιήστε τον αγαπημένο σας επεξεργαστή και ανοίξτε το αρχείο για επεξεργασία ως εξής:


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

Τροποποιήστε ή προσαρτήστε ως εξής:


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;
}

Στη συνέχεια, επανεκκινήστε το Nginx και το php-fpm ως εξής:


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

Τέλος, μπορείτε να ελέγξετε εάν η PHP λειτουργεί ή όχι ελέγχοντας πρώτα την έκδοση PHP που διαθέτετε και στη συνέχεια δοκιμάζοντας την με τον διακομιστή Web.

php -v

Μπορείτε να λάβετε πληροφορίες σχετικά με τα πακέτα PHP γράφοντας ένα μικρό αρχείο info.php στον κατάλογο /usr/share/nginx/html/:

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

Τοποθετήστε αυτόν τον κώδικα στο αρχείο σας info.php:

<?php
phpinfo();
?>

Αποθηκεύστε και βγείτε από το αρχείο.

Ανοίξτε το πρόγραμμα περιήγησής σας στον ιστό, πληκτρολογήστε http://server_IP-address/info.php και θα μπορείτε να δείτε τη σελίδα παρακάτω που σας δείχνει λεπτομέρειες σχετικά με το πακέτο PHP σας.

Τώρα μπορείτε να χρησιμοποιήσετε ευχαρίστως το PHP 7.0 στο σύστημα Ubuntu 14.04/14.10 σας και ελπίζω να σας φανεί χρήσιμος αυτός ο οδηγός.

Για οποιαδήποτε πρόσθετη πληροφορία σχετικά με την αναβάθμιση της PHP ή ερωτήσεις, τα σχόλιά σας είναι ευπρόσδεκτα στην παρακάτω ενότητα σχολίων.