ວິທີການຕິດຕັ້ງ PHP 7 ສຳ ລັບ Apache ຫຼື Nginx ໃນ Ubuntu 14.04 ແລະ 14.10


ຫລາຍເດືອນຫລັງຈາກ PHP 7.0 ທີ່ມີສະຖຽນລະພາບຖືກປ່ອຍອອກມາ, ນີ້ອາດຈະເປັນເວລາທີ່ ເໝາະ ສົມ ສຳ ລັບທ່ານທີ່ຈະຄິດທີ່ຈະຍົກລະດັບມັນຈາກລຸ້ນເກົ່າ.

ມີຄວາມລະມັດລະວັງສະ ເໝີ ກ່ຽວກັບການຍົກລະດັບໂດຍສະເພາະໃນສະພາບແວດລ້ອມການຜະລິດ, ແຕ່ດຽວນີ້ມັນເປັນຄວາມຄິດທີ່ດີທີ່ຈະຍົກລະດັບເພື່ອທີ່ຈະເພີດເພີນກັບການປັບປຸງຄວາມໄວ, ແລະຍັງມີຄຸນລັກສະນະຕ່າງໆເຊັ່ນ: ປະເພດ scalar hinting ບວກກັບອີກຫຼາຍໆຢ່າງ.

ທ່ານສາມາດຕິດຕັ້ງ PHP ສອງລຸ້ນໃນລະບົບຂອງທ່ານແລະໃຊ້ ໜຶ່ງ ສະບັບເພື່ອຈຸດປະສົງການທົດສອບ, ແຕ່ຈື່ໄວ້ວ່າທ່ານພຽງແຕ່ເປີດໃຊ້ໂປຣແກຣມ PHP Apache ໜຶ່ງ ຊຸດໃນເວລາທີ່ ກຳ ນົດ.

ຄູ່ມືນີ້ແມ່ນສຸມໃສ່ການຍົກລະດັບຈາກ PHP 5.X, ໂດຍໃຊ້ mod_php ໃນການເຊື່ອມຕໍ່ກັບ Apache Web server ຫຼື PHP-FPM ໃນການເຊື່ອມຕໍ່ກັບ Nginx Web server.

<

  • ຕິດຕັ້ງ PHP 7 ໃນ Ubuntu 14.04 ແລະ 14.10
  • ຍົກລະດັບເປັນ PHP 7.0 ພາຍໃຕ້ Apache Web Server
  • ຍົກລະດັບໃຫ້ເປັນ PHP 7.0 ພາຍໃຕ້ Nginx Web Server
  • ຕອນນີ້ໃຫ້ພວກເຮົາເຂົ້າເບິ່ງວິທີທີ່ທ່ານສາມາດຍົກລະດັບໃຫ້ກັບ PHP ລຸ້ນລ້າສຸດແລະຍັງຕັ້ງຄ່າລະບົບຂອງທ່ານເພື່ອໃຊ້ມັນ.

    ວິທີການຕິດຕັ້ງ PHP 7 ໃນ Ubuntu 14.04 ແລະ 14.10

    ກ່ອນອື່ນ, ທ່ານຈະຕ້ອງເພີ່ມ PPA ທີ່ຖືກຮັກສາໄວ້ໂດຍOndřejSurý ສຳ ລັບ Debian ແລະອະນຸພັນຂອງມັນເຊັ່ນ Ubuntu ໂດຍການ ດຳ ເນີນ ຄຳ ສັ່ງດ້ານລຸ່ມ:

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

    ຕໍ່ໄປປັບປຸງລະບົບຂອງທ່ານດັ່ງຕໍ່ໄປນີ້:

    $ sudo apt-get update
    

    ທຸກສິ່ງທຸກຢ່າງແມ່ນໄດ້ ກຳ ນົດໄວ້ແລ້ວ, ແລະທ່ານສາມາດຕິດຕັ້ງ PHP 7.0, ແຕ່ພວກເຮົາຈະເບິ່ງການຍົກລະດັບ ສຳ ລັບ Apache ແລະ Nginx ໃນຫລາຍພາກສ່ວນ.

    ສ່ວນນີ້ແມ່ນ ສຳ ລັບລະບົບທີ່ໃຊ້ 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 server ຂອງທ່ານຄືນ ໃໝ່ ແລະກວດສອບເວີຊັນ 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();
    ?>
    

    ພາກນີ້ຈະພາທ່ານຜ່ານຂັ້ນຕອນການຍົກລະດັບ 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-enable/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 server.

    $ php -v
    

    ທ່ານໄດ້ຮັບຂໍ້ມູນກ່ຽວກັບແພັກເກດ PHP ຂອງທ່ານໂດຍການຂຽນເອກະສານ info.php ນ້ອຍໆຢູ່ພາຍໃຕ້/usr/share/nginx/html/directory:

    $ 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 ຫລື ຄຳ ຖາມ, ຄຳ ເຫັນຂອງທ່ານຍິນດີຕ້ອນຮັບໃນສ່ວນ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.