Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

Ubuntu Linux 14.04 LTS에 PHP 7 설치하는 완벽 가이드

PHP란 무엇인가?

PHP는 웹 개발을 위해 설계된 서버 사이드 스크립팅 언어로, 범용 프로그래밍 언어로도 널리 활용됩니다. 1994년 라스무스 레르도프(Rasmus Lerdorf)가 최초로 개발한 PHP의 공식 참조 구현체는 현재 PHP Group에서 관리하고 있습니다. 최신 버전인 PHP 7은 기존 PHP 5.6에 비해 약 2배 빠른 성능과 50% 향상된 메모리 효율을 제공합니다. 이 글에서는 우분투(Ubuntu) 리눅스에 PHP 7을 설치하는 방법을 단계별로 자세히 살펴보겠습니다.

PHP 7을 설치하기 전에 먼저 ondrej/php라는 이름의 PPA(Personal Package Archive)를 시스템에 등록해야 합니다. 이 저장소를 추가하면 PHP 5.6과 PHP 7.0을 함께 설치할 수 있습니다.

PHP 5.6 + 7.0 동시 설치를 위한 PPA 설정

아래 명령어를 실행하여 PPA를 추가합니다.

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

정상적으로 실행되면 다음과 비슷한 출력이 표시됩니다.

Co-installable PHP versions: PHP 5.6, PHP 7.0 and batteries included.

You can get more information about the packages at https://deb.sury.org

For PHP 5.6 use: ppa:ondrej/php5-5.6
For PHP 5.5 use: ppa:ondrej/php5
For PHP 5.4 use: ppa:ondrej/php5-oldstable

BUGS & FEATURES: This PPA now has a issue tracker: https://deb.sury.org/pages/bugreporting.html

PLEASE READ: If you like my work and want to give me a little motivation, please consider donating: https://deb.sury.org/pages/donate.html

WARNING: add-apt-repository is broken with non-UTF-8 locales, see https://github.com/oerdnj/deb.sury.org/issues/56 for workaround:

# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
.............................

패키지 목록 업데이트

PPA가 추가되었다면 다음 명령어로 패키지 인덱스를 최신 상태로 갱신합니다.

$ sudo apt-get update

실행 결과 예시는 아래와 같습니다.

Ign https://dl.google.com stable InRelease
Get:1 https://security.ubuntu.com trusty-security InRelease [65.9 kB]
Ign https://extras.ubuntu.com trusty InRelease
Hit https://ppa.launchpad.net trusty InRelease
Ign https://in.archive.ubuntu.com trusty InRelease
Get:2 https://extras.ubuntu.com trusty Release.gpg [72 B]
Hit https://dl.google.com stable Release.gpg
Hit https://ppa.launchpad.net trusty InRelease
Hit https://dl.google.com stable Release
Hit https://extras.ubuntu.com trusty Release
Get:3 https://in.archive.ubuntu.com trusty-updates InRelease [65.9 kB]
Hit https://dl.google.com stable/main amd64 Packages
Get:4 https://ppa.launchpad.net trusty InRelease [20.9 kB]
Hit https://extras.ubuntu.com trusty/main Sources
Get:5 https://security.ubuntu.com trusty-security/main Sources [106 kB]
Hit https://extras.ubuntu.com trusty/main amd64 Packages
Hit https://extras.ubuntu.com trusty/main i386 Packages
..................................

설치 가능한 PHP 7 패키지 확인

다음 명령어로 PHP 7 관련 패키지 목록을 검색할 수 있습니다.

$ sudo apt-cache search php7

검색 결과 예시입니다. 필요한 확장 모듈을 미리 파악해 두면 좋습니다.

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
php7.0-bz2 - bzip2 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 7 설치하기

다음 명령어를 실행하여 PHP 7을 설치합니다.

$ sudo apt-get install php7.0

설치 과정에서 의존성 패키지와 함께 자동으로 설치·삭제되는 항목이 표시됩니다. 내용을 확인한 후 y를 입력하여 진행하세요.

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
    libapache2-mod-php5 linux-headers-4.2.0-27 linux-headers-4.2.0-27-generic
    linux-image-4.2.0-27-generic linux-image-extra-4.2.0-27-generic
    linux-signed-image-4.2.0-27-generic
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
    libssl1.0.2 php-common php7.0-cli php7.0-common php7.0-fpm php7.0-json
    php7.0-opcache php7.0-readline
Suggested packages:
    php-pear
The following packages will be REMOVED:
    php5 php5-cli php5-readline
The following NEW packages will be installed:
    libssl1.0.2 php-common php7.0 php7.0-cli php7.0-common php7.0-fpm
    php7.0-json php7.0-opcache php7.0-readline
0 upgraded, 9 newly installed, 3 to remove and 3 not upgraded.
Need to get 4,383 kB of archives.
After this operation, 8,056 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
................................

Nginx 설치 및 PHP 7 연동 설정

Nginx 설정을 진행하기 전에 시스템에 Nginx가 설치되어 있는지 먼저 확인하세요. 설치되어 있지 않다면 다음 명령어로 설치합니다.

$ sudo apt-get install -y nginx

Nginx가 이미 설치되어 있다면 이 단계는 건너뛰어도 됩니다. 다음으로 설정 파일을 편집기로 엽니다.

$ sudo vi nginx.conf

파일 하단에 아래 코드를 추가하여 .php 요청이 PHP-FPM(PHP 7)으로 전달되도록 설정합니다.

# Pass all .php files onto a php-fpm/php-fcgi server.
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 설정을 다시 불러옵니다.

$ sudo service nginx reload

정상적으로 적용되면 아래와 같은 출력이 표시됩니다.

* Reloading nginx configuration nginx [ OK ]

PHP 7 설치 테스트

설치가 제대로 되었는지 확인하기 위해 /var/www/html/ 디렉터리에 test.php 파일을 생성합니다.

<?php
    phpinfo();
?>

파일을 저장한 후 웹 브라우저에서 다음 주소로 접속합니다.

https://localhost/test.php

PHP 설정 정보 페이지가 정상적으로 표시된다면 설치가 완료된 것입니다. 축하합니다! 이제 우분투 리눅스 14.04 LTS에 PHP 7을 설치하는 방법을 모두 익히셨습니다. 다음 리눅스 포스트에서도 유용한 명령어와 실전 팁을 계속 소개해 드릴 예정이니 많은 관심 부탁드립니다.