Kaip įdiegti „PHP 7“, skirtą „Apache“ arba „Nginx“, „Ubuntu“ 14.04 ir 14.10


Praėjus keliems mėnesiams po stabilios PHP 7.0 versijos išleidimo, tai gali būti tinkamas laikas galvoti apie naujovinimą į ją iš senų versijų.

Visada atsargiai reikia atnaujinti, ypač gamybos aplinkoje, tačiau dabar verta atnaujinti, kad galėtumėte patobulinti greitį, taip pat tokias funkcijas kaip skaliarinio tipo užuomina ir daug daugiau.

Savo sistemoje galite įdiegti dvi PHP versijas ir vieną naudoti bandymų tikslais, tačiau atminkite, kad per tam tikrą laiką įjungiate tik vieną PHP Apache modulį.

Šiame vadove daugiausia dėmesio skiriama naujovinimui iš PHP 5.X, naudojant mod_php kartu su „Apache“ žiniatinklio serveriu arba PHP-FPM kartu su „Nginx“ žiniatinklio serveriu.

  1. Įdiekite PHP 7 „Ubuntu“ 14.04 ir 14.10
  2. Atnaujinimas į „PHP 7.0“, esantį „Apache Web Server“
  3. Atnaujinimas į PHP 7.0 naudojant „Nginx“ tinklo serverį

Dabar leiskite mums pasinerti į tai, kaip galite atnaujinti į naujausią PHP versiją, taip pat sukonfigūruokite savo sistemą jai naudoti.

Kaip įdiegti PHP 7 Ubuntu 14.04 ir 14.10

Pirmiausia, norėdami paleisti žemiau esančią komandą, turėsite pridėti „Debian“ ir jo darinių, tokių kaip „Ubuntu“, palaikomą PPD, kurį tvarko „Debian“ ir Ondřej Surý:

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

Kitas atnaujinkite savo sistemą taip:

$ sudo apt-get update

Dabar viskas nustatyta ir galite įdiegti PHP 7.0, tačiau skirtinguose skyriuose aptarsime „Apache“ ir „Nginx“ atnaujinimą.

Šis skyrius skirtas sistemoms, naudojančioms „Apache“, kur PHP kodas vykdomas naudojant modulį mod_php . Įdiekite naujausią PHP versiją, vykdydami toliau nurodytą komandą:

$ 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

Dabar jūsų sistemoje buvo atnaujintas PHP, tačiau jei naudojate „MySQL“ duomenų bazių valdymo sistemą, turėsite atlikti šią komandą, kad atnaujintumėte „PHP-MySQL“ susiejimą, taip pat turėsite įdiegti keletą naudingų modulių, tokių kaip „Curl“, „GD“. , Cli, JSON ir kt.

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

Jei norite įdiegti papildomus PHP7.0 modulius, galite naudoti apt-cache komandą, kad išvardytumėte visus PHP7.0 modulius ir įdiegtumėte.

$ 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

Įdiegę PHP7.0 ir jo modulius, galite iš naujo paleisti „Apache“ žiniatinklio serverį ir patikrinti PHP versiją, kaip parodyta:

$ 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

Taip pat galite patikrinti PHP7 informaciją sukūrę info.php failą kataloge/var/www/html.

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

Įdėkite šį kodą ir pasiekite puslapį per http://server_IP-adresas/info.php .

<?php
phpinfo();
?>

Šiame skyriuje aprašoma, kaip atnaujinti į PHP7.0 ir atnaujinti PHP-FPM naudojant „Nginx“ žiniatinklio serverį, kur PHP kodas vykdomas naudojant PHP-FPM.

Norėdami įdiegti naujausius PHP-FPM paketus, vykdykite toliau pateiktą komandą:

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

PHP dabar buvo atnaujintas, tačiau jei naudojate „MySQL“, turėsite vykdyti šią komandą, kad atnaujintumėte „PHP-MySQL“ susiejimą ir keletą papildomų modulių, kaip parodyta:

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

Tada turėsite pridėti fastcgi_pass direktyvą faile/etc/nginx/sites-enabled/default arba visus virtualių svetainių failus, kurie turi naudoti ir palaikyti PHP, nes PHP kelias -FPM lizdo failas, kurį PHP naudoja bendraujant su „Nginx“.

Naudokite mėgstamą redaktorių ir atidarykite failą redaguoti taip:

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

Pakeiskite arba pridėkite taip:

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

Tada iš naujo paleiskite „Nginx“ ir „php-fpm“ taip:

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

Galiausiai galite patikrinti, ar PHP veikia, ar ne, pirmiausia patikrindami savo PHP versiją ir tada patikrindami ją su žiniatinklio serveriu.

$ php -v

Informacijos apie savo PHP paketus gausite parašę nedidelį failą info.php aplanke/usr/share/nginx/html/directory:

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

Įdėkite šį kodą į savo failą info.php:

<?php
phpinfo();
?>

Išsaugokite ir išeikite iš failo.

Atidarykite savo žiniatinklio naršyklę, įveskite http://server_IP-adresas/info.php ir turėtumėte matyti žemiau esantį puslapį, kuriame pateikiama išsami informacija apie jūsų PHP paketą.

Dabar galite laimingai naudoti „PHP 7.0“ savo „Ubuntu 14.04/14.10“ sistemoje, ir tikiuosi, kad šis vadovas jums bus naudingas.

Jei norite gauti papildomos informacijos apie PHP atnaujinimą ar klausimų, laukiame komentarų žemiau esančiame komentarų skyriuje.