Giunsa ang Pag-install sa PHP 7 alang sa Apache o Nginx sa Ubuntu 14.04 ug 14.10


Mga bulan human gi-release ang stable nga bersyon sa PHP 7.0, kini mahimong hustong panahon para makahunahuna ka sa pag-upgrade niini gikan sa mga daan nga bersyon.

Adunay kanunay nga pag-amping bahin sa mga pag-upgrade labi na sa usa ka palibot sa produksiyon, apan kini usa ka maayong ideya karon nga mag-upgrade aron matagamtam ang mga pagpaayo sa katulin, ug usab mga bahin sama sa scalar type hinting ug daghan pa.

Mahimo nimong i-install ang duha ka bersyon sa PHP sa imong sistema ug gamiton ang usa para sa mga katuyoan sa pagsulay, apan hinumdomi nga mahimo nimo ang usa ka module sa PHP Apache sa usa ka oras.

Kini nga giya nagtutok sa pag-upgrade gikan sa PHP 5.X, gamit ang mod_php nga may kalabotan sa Apache Web server o PHP-FPM nga may kalabotan sa Nginx Web server.

  1. I-install ang PHP 7 sa Ubuntu 14.04 ug 14.10
  2. Pag-upgrade sa PHP 7.0 ubos sa Apache Web Server
  3. Pag-upgrade sa PHP 7.0 ubos sa Nginx Web Server

Karon atong susihon kon unsaon nimo pag-upgrade sa pinakabag-o nga bersyon sa PHP ug i-configure usab ang imong sistema sa paggamit niini.

Giunsa ang Pag-install sa PHP 7 sa Ubuntu 14.04 ug 14.10

Una, kinahanglan nimong idugang ang PPA nga gimentinar ni Ondřej Surý para sa Debian ug ang mga derivatives niini sama sa Ubuntu pinaagi sa pagpadagan sa sugo sa ubos:

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

Sunod nga pag-update sa imong sistema sama sa mosunod:

$ sudo apt-get update

Gitakda na ang tanan, ug mahimo nimong i-install ang PHP 7.0, apan tan-awon namon ang pag-upgrade alang sa Apache ug Nginx sa lainlaing mga seksyon.

Kini nga seksyon alang sa mga sistema nga nagpadagan sa Apache, diin ang PHP code gipatuman gamit ang mod_php module. I-install ang pinakabag-o nga bersyon sa PHP ingon nga nagpadagan sa sugo sa ubos:

$ 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

Ang PHP na-upgrade na karon sa imong sistema, apan kung ikaw naggamit sa MySQL database management system, nan kinahanglan nimo nga ipatuman ang mosunod nga sugo aron ma-update ang PHP-MySQL binding ug kinahanglan usab nimo nga i-install ang pipila ka mapuslanon nga mga module sama sa Curl, GD , Cli, JSON, ug uban pa.

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

Kung gusto nimo mag-install ug dugang nga PHP7.0 modules, mahimo nimong gamiton ang apt-cache command aron ilista ang tanang PHP7.0 modules ug i-install.

$ 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

Kung ma-install na ang PHP7.0 ug ang mga module niini, mahimo nimong i-restart ang imong Apache web server ug i-verify ang bersyon sa PHP sama sa gipakita:

$ 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

Mahimo usab nimong pamatud-an ang impormasyon sa PHP7 pinaagi sa paghimo og info.php file ubos sa /var/www/html directory.

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

Ibutang ang mosunod nga code ug i-access ang panid pinaagi sa http://server_IP-address/info.php.

<?php
phpinfo();
?>

Kini nga seksyon magdala kanimo sa proseso sa pag-upgrade sa PHP7.0 ug pag-update sa PHP-FPM gamit ang Nginx Web server, diin ang PHP code gipatuman gamit ang PHP-FPM.

Pagdalagan ang command sa ubos aron i-install ang pinakabag-o nga PHP-FPM packages:

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

Ang PHP na-upgrade na karon, apan kung ikaw naggamit sa MySQL, nan kinahanglan nimo nga ipatuman ang mosunod nga sugo aron ma-update ang PHP-MySQL binding ug pipila ka dugang nga mga module sama sa gipakita:

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

Sunod, kinahanglan nimong idugang ang fastcgi_pass nga direktiba sa file /etc/nginx/sites-enabled/default o tanan nga mga file para sa imong virtual nga mga site nga kinahanglan mogamit ug mosuporta sa PHP, tungod kay ang agianan sa PHP -FPM socket file nga gigamit sa PHP sa pagpakigsulti sa Nginx nausab.

Gamita ang imong paborito nga editor ug ablihi ang file para sa pag-edit sama sa mosunod:

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

Usba o idugang sama sa mosunod:

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

Dayon i-restart ang Nginx ug php-fpm sama sa mosunod:

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

Katapusan, mahimo nimong sulayan kung nagtrabaho ba ang PHP o wala pinaagi sa una nga pagsusi sa imong bersyon sa PHP ug dayon pagsulay niini sa Web server.

$ php -v

Makuha nimo ang impormasyon bahin sa imong PHP packages pinaagi sa pagsulat og gamay nga info.php file ubos sa /usr/share/nginx/html/ directory:

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

Ibutang kini nga code sa imong info.php file:

<?php
phpinfo();
?>

Pag-save ug paggawas sa file.

Ablihi ang imong web browser, isulod ang http://server_IP-address/info.php ug kinahanglan nimo nga makita ang panid sa ubos nga nagpakita kanimo mga detalye bahin sa imong PHP package.

Malipayon nimong magamit ang PHP 7.0 sa imong Ubuntu 14.04/14.10 nga sistema, ug nanghinaut ko nga makatabang nimo kini nga giya.

Alang sa bisan unsang dugang nga kasayuran bahin sa pag-upgrade sa PHP o mga pangutana, ang imong mga komento gidawat sa seksyon sa komento sa ubos.