Ubuntu 14.04 및 14.10에 Apache 또는 Nginx 용 PHP 7을 설치하는 방법


안정된 버전의 PHP 7.0이 출시 된 지 몇 달 후, 이전 버전에서 업그레이드를 고려할 때가 적절할 수 있습니다.

특히 프로덕션 환경에서는 업그레이드에 대한주의가 항상 있지만, 속도 향상과 스칼라 유형 힌팅 등의 기능을 즐기기 위해 지금 업그레이드하는 것이 좋습니다.

시스템에 두 가지 버전의 PHP를 설치하고 테스트 목적으로 하나를 사용할 수 있지만 주어진 시간에 하나의 PHP Apache 모듈 만 활성화한다는 점을 기억하십시오.

이 가이드는 Apache 웹 서버와 연결된 mod_php 또는 Nginx 웹 서버와 연결된 PHP-FPM을 사용하여 PHP 5.X에서 업그레이드하는 데 중점을 둡니다.

  1. Install PHP 7 in Ubuntu 14.04 and 14.10
  2. Upgrading to PHP 7.0 under Apache Web Server
  3. Upgrading to PHP 7.0 under Nginx Web Server

이제 최신 버전의 PHP로 업그레이드하고이를 사용하도록 시스템을 구성하는 방법을 살펴 보겠습니다.

Ubuntu 14.04 및 14.10에 PHP 7을 설치하는 방법

먼저 아래 명령을 실행하여 Debian 및 Ubuntu와 같은 파생 제품에 대해 Ondřej Surý가 관리하는 PPA를 추가해야합니다.

$ 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 웹 서버를 다시 시작하고 다음과 같이 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

/ var/www/html 디렉토리에 info.php 파일을 생성하여 PHP7 정보를 확인할 수도 있습니다.

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

다음 코드를 삽입하고 http : //server_IP-address/info.php 를 통해 페이지에 액세스하십시오.

<?php
phpinfo();
?>

이 섹션에서는 PHP7.0으로 업그레이드하고 Nginx 웹 서버로 PHP-FPM을 업데이트하는 과정을 안내합니다. 여기서 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 

다음으로/etc/nginx/sites-enabled/default 파일 또는 PHP를 사용하고 지원해야하는 가상 사이트의 모든 파일에 fastcgi_pass 지시문을 추가해야합니다. -PHP가 Nginx와 통신하는 데 사용하는 FPM 소켓 파일이 변경되었습니다.

자주 사용하는 편집기를 사용하고 다음과 같이 편집 할 파일을 엽니 다.

$ 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가 작동하는지 여부를 테스트 할 수 있습니다.

$ php -v

/ usr/share/nginx/html/디렉토리에 작은 info.php 파일을 작성하여 PHP 패키지에 대한 정보를 얻을 수 있습니다.

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

이 코드를 info.php 파일에 넣으십시오.

<?php
phpinfo();
?>

파일을 저장하고 종료하십시오.

웹 브라우저를 열고 http : //server_IP-address/info.php 를 입력하면 아래 페이지에서 PHP 패키지에 대한 세부 정보를 볼 수 있습니다.

이제 Ubuntu 14.04/14.10 시스템에서 PHP 7.0을 즐겁게 사용할 수 있으며이 가이드가 도움이되기를 바랍니다.

PHP 업그레이드에 관한 추가 정보 나 질문이 있으시면 아래 댓글 섹션에 의견을 남겨 주시기 바랍니다.