Kako instalirati PHP 7 za Apache ili Nginx na Ubuntu 14.04 i 14.10


Mjesecima nakon objavljivanja stabilne verzije PHP 7.0, ovo bi mogao biti trenutak za razmišljanje o nadogradnji na nju sa starih verzija.

Uvijek postoji oprez oko nadogradnji, posebno u proizvodnom okruženju, ali dobro je sada nadograditi kako biste uživali u poboljšanjima brzine, a također i značajkama poput nagovještaja skalarnog tipa i mnogim drugim.

U svoj sustav možete instalirati dvije verzije PHP-a i jednu koristiti u svrhu testiranja, ali imajte na umu da u određenom vremenu omogućite samo jedan PHP Apache modul.

Ovaj se vodič fokusira na nadogradnju s PHP 5.X, korištenjem mod_php u vezi s Apache web poslužiteljem ili PHP-FPM u vezi s Nginx web poslužiteljem.

  1. Instalirajte PHP 7 u Ubuntu 14.04 i 14.10
  2. Nadogradnja na PHP 7.0 pod Apache web poslužiteljem
  3. Nadogradnja na PHP 7.0 pod Nginx web poslužiteljem

Sada ćemo zaroniti u to kako možete nadograditi na najnoviju verziju PHP-a i također konfigurirati svoj sustav da ga koristi.

Kako instalirati PHP 7 u Ubuntu 14.04 i 14.10

Prvo ćete morati dodati PPA koji održava Ondřej Surý za Debian i njegove derivate poput Ubuntu pokretanjem naredbe u nastavku:

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

Sljedeće ažurirajte svoj sustav na sljedeći način:

$ sudo apt-get update

Sada je sve postavljeno i možete instalirati PHP 7.0, ali nadogradnju za Apache i Nginx potražit ćemo u različitim odjeljcima.

Ovo je poglavlje za sustave koji izvode Apache, gdje se PHP kôd izvršava pomoću modula mod_php . Instalirajte najnoviju verziju PHP-a kao pokrenutu naredbu u nastavku:

$ 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 je sada nadograđen na vašem sustavu, ali ako koristite MySQL sustav za upravljanje bazom podataka, morat ćete izvršiti sljedeću naredbu za ažuriranje PHP-MySQL vezanja, a također ćete morati instalirati neke korisne module kao što su Curl, GD , Cli, JSON itd.

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

Ako želite instalirati dodatne PHP7.0 module, možete upotrijebiti naredbu apt-cache za popis svih PHP7.0 modula i instalaciju.

$ 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

Jednom kada se instaliraju PHP7.0 i njegovi moduli, možete ponovno pokrenuti web poslužitelj Apache i provjeriti verziju PHP-a kako je prikazano:

$ 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

Informacije o PHP7 možete provjeriti i stvaranjem datoteke info.php u direktoriju/var/www/html.

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

Postavite sljedeći kod i pristupite stranici putem http://server_IP-address/info.php .

<?php
phpinfo();
?>

Ovaj odjeljak vodi vas kroz postupak nadogradnje na PHP7.0 i ažuriranja PHP-FPM-a pomoću Nginx web poslužitelja, gdje se PHP kôd izvršava pomoću PHP-FPM-a.

Pokrenite naredbu u nastavku da biste instalirali najnovije PHP-FPM pakete:

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

PHP je sada nadograđen, ali ako koristite MySQL, morat ćete izvršiti sljedeću naredbu za ažuriranje PHP-MySQL vezanja i nekih dodatnih modula kao što je prikazano:

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

Dalje, morate dodati direktivu fastcgi_pass u datoteku/etc/nginx/sites-enabled/default ili sve datoteke za vaše virtualne web stranice koje moraju koristiti i podržavati PHP, budući da je put PHP-a -FPM utičnica koju PHP koristi za komunikaciju s Nginxom promijenila se.

Koristite svoj omiljeni uređivač i otvorite datoteku za uređivanje na sljedeći način:

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

Izmijenite ili dodajte na sljedeći način:

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

Zatim ponovno pokrenite Nginx i php-fpm kako slijedi:

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

I na kraju, možete provjeriti radi li PHP ili ne tako što ćete prvo provjeriti verziju PHP-a, a zatim je testirati s web poslužiteljem.

$ php -v

Informacije o svojim PHP paketima dobivate pisanjem male datoteke info.php u direktoriju/usr/share/nginx/html /:

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

Stavite ovaj kod na svoju datoteku info.php:

<?php
phpinfo();
?>

Spremite i zatvorite datoteku.

Otvorite svoj web preglednik, unesite http://server_IP-address/info.php i trebali biste vidjeti stranicu u nastavku koja prikazuje detalje o vašem PHP paketu.

Sada s veseljem možete koristiti PHP 7.0 na svom Ubuntu 14.04/14.10 sustavu i nadam se da će vam ovaj vodič biti od pomoći.

Za sve dodatne informacije u vezi s nadogradnjom PHP-a ili pitanja, vaši su komentari dobrodošli u odjeljku za komentare u nastavku.