Bii o ṣe le Fi PHP 7 sii fun Apache tabi Nginx lori Ubuntu 14.04 ati 14.10


Awọn oṣu lẹhin ti ikede iduroṣinṣin ti PHP 7.0 ti jade, eyi le jẹ akoko to tọ fun ọ lati ronu igbesoke si rẹ lati awọn ẹya atijọ.

Išọra nigbagbogbo wa nipa awọn iṣagbega paapaa ni agbegbe iṣelọpọ, ṣugbọn o jẹ imọran ti o dara bayi lati ṣe igbesoke ki o le gbadun awọn ilọsiwaju iyara, ati awọn ẹya tun bii iru iṣiro ti o ni afikun pẹlu ọpọlọpọ diẹ sii.

O le fi awọn ẹya meji ti PHP sori ẹrọ rẹ ki o lo ọkan fun awọn idi idanwo, ṣugbọn ranti pe o nikan mu awọn modulu Apache PHP kan ṣiṣẹ ni akoko ti a fifun.

Itọsọna yii da lori igbegasoke lati PHP 5.X, ni lilo mod_php ni asopọ pẹlu olupin Wẹẹbu Apache tabi PHP-FPM ni asopọ pẹlu olupin Wẹẹbu Nginx.

  1. Fi PHP 7 sii ni Ubuntu 14.04 ati 14.10
  2. Igbegasoke si PHP 7.0 labẹ Apakan Wẹẹbu Apache
  3. Igbegasoke si PHP 7.0 labẹ Nginx Web Server

Bayi jẹ ki a ṣafọ sinu bi o ṣe le ṣe igbesoke si ẹya tuntun ti PHP ati tun tunto eto rẹ lati lo.

Bii o ṣe le Fi PHP 7 sii ni Ubuntu 14.04 ati 14.10

Ni akọkọ, iwọ yoo ni lati ṣafikun PPA ti o tọju nipasẹ Ondřej Surý fun Debian ati awọn itọsẹ rẹ bii Ubuntu nipa ṣiṣe pipaṣẹ ni isalẹ:

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

Nigbamii ṣe imudojuiwọn eto rẹ bi atẹle:

$ sudo apt-get update

Gbogbo rẹ ti ṣeto bayi, ati pe o le fi PHP 7.0 sori ẹrọ, ṣugbọn a yoo wo igbesoke fun Apache ati Nginx ni awọn oriṣiriṣi awọn apakan.

Apakan yii jẹ fun awọn ọna ṣiṣe Apache, nibiti a ti pa koodu PHP ni lilo modulu mod_php . Fi ẹya PHP tuntun sii bi ṣiṣe aṣẹ ni isalẹ:

$ 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 ti ni igbesoke bayi lori eto rẹ, ṣugbọn ti o ba nlo eto iṣakoso ibi ipamọ data MySQL, lẹhinna o yoo ni lati ṣe aṣẹ atẹle lati ṣe imudojuiwọn isopọ PHP-MySQL ati pe iwọ yoo nilo lati fi diẹ ninu awọn modulu to wulo bii Curl, GD , Cli, JSON, abbl.

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

Ti o ba fẹ fi awọn modulu PHP7.0 sii, o le lo aṣẹ apt-cache lati ṣe atokọ gbogbo awọn modulu PHP7.0 ki o fi sii.

$ 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

Lọgan ti PHP7.0 ati awọn modulu rẹ ti fi sii, o le tun bẹrẹ olupin ayelujara Apache rẹ ki o ṣayẹwo iru ẹya PHP bi o ti han:

$ 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

O tun le rii daju alaye PHP7 nipa ṣiṣẹda info.php faili labẹ/var/www/html liana.

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

Gbe koodu atẹle ki o wọle si oju-iwe nipasẹ http://server_IP-address/info.php .

<?php
phpinfo();
?>

Abala yii gba ọ nipasẹ ilana igbesoke si PHP7.0 ati mimuṣe imudojuiwọn PHP-FPM pẹlu olupin Nginx Nibiti, nibiti a ti pa koodu PHP ni lilo PHP-FPM.

Ṣiṣe aṣẹ ni isalẹ lati fi sori ẹrọ awọn idii tuntun PHP-FPM:

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

PHP ti ni igbesoke bayi, ṣugbọn ti o ba nlo MySQL, lẹhinna o yoo ni lati ṣe pipaṣẹ atẹle lati mu imudojuiwọn PHP-MySQL ati diẹ ninu awọn modulu afikun bi o ti han:

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

Nigbamii ti, o nilo lati ṣafikun itọsọna fastcgi_pass ninu faili/ati be be/nginx/ojula-sise/aiyipada tabi gbogbo awọn faili fun awọn aaye foju rẹ ti o ni lati lo ati ṣe atilẹyin PHP, nitori ọna PHP -FPM faili iho ti PHP nlo lati ṣe ibaraẹnisọrọ pẹlu Nginx ti yipada.

Lo olootu ayanfẹ rẹ ki o ṣii faili fun ṣiṣatunkọ bi atẹle:

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

Ṣatunṣe tabi ṣafikun bi atẹle:

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

Lẹhinna tun bẹrẹ Nginx ati php-fpm bii atẹle:

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

Ni ikẹhin, o le idanwo boya PHP n ṣiṣẹ tabi rara nipa ṣayẹwo akọkọ ẹya PHP rẹ ati lẹhinna idanwo rẹ pẹlu olupin Wẹẹbu.

$ php -v

O gba alaye nipa awọn idii PHP rẹ nipa kikọ faili kekere info.php labẹ/usr/share/nginx/html/directory:

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

Fi koodu yii sii lori faili info.php rẹ:

<?php
phpinfo();
?>

Fipamọ ki o jade kuro ni faili naa.

Ṣii aṣawakiri wẹẹbu rẹ, tẹ http://server_IP-address/info.php ati pe o yẹ ki o ni anfani lati wo oju-iwe ti o wa ni isalẹ eyiti o fihan ọ ni awọn alaye nipa package PHP rẹ.

O le ni idunnu bayi lo PHP 7.0 lori ẹrọ Ubuntu 14.04/14.10 rẹ, ati pe Mo nireti pe o wa itọsọna yii wulo.

Fun eyikeyi alaye afikun nipa igbesoke PHP tabi awọn ibeere, awọn ọrọ rẹ ṣe itẹwọgba ni apakan asọye ni isalẹ.