웹사이트 검색

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


PHP 7.0의 안정 버전이 출시된 지 몇 달이 지나면 지금이 이전 버전에서 업그레이드를 고려하기에 적절한 시기일 수 있습니다.

특히 프로덕션 환경에서는 업그레이드에 대해 항상 주의가 필요하지만 지금은 업그레이드하여 속도 향상과 스칼라 유형 힌트 등의 기능을 추가로 활용하는 것이 좋습니다.

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

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

  1. Ubuntu 14.04 및 14.10에 PHP 7 설치
  2. Apache 웹 서버에서 PHP 7.0으로 업그레이드
  3. Nginx 웹 서버에서 PHP 7.0으로 업그레이드

이제 최신 버전의 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을 설치할 수 있지만 ApacheNginx에 대한 업그레이드는 다른 섹션에서 살펴보겠습니다.

Apache 웹 서버에서 PHP 7.0으로 업그레이드

이 섹션은 mod_php 모듈을 사용하여 PHP 코드가 실행되는 Apache를 실행하는 시스템을 위한 것입니다. 아래 명령을 실행하여 최신 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();
?>

Nginx 웹 서버에서 PHP 7.0으로 업그레이드

이 섹션에서는 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와 통신하는 데 사용하는 PHP-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 업그레이드에 관한 추가 정보나 질문이 있는 경우 아래 댓글 섹션에 의견을 남겨주세요.