우분투 리눅스에 Apache 2 + PHP 8 설치하기(Ubuntu 20.04 LTS)

우분투 리눅스에 Apache 2 + PHP 8 설치하기(Ubuntu 20.04 LTS)

리눅스 서버는 세계적으로 가장 많이 사용되고 있는 웹 서버 운영체제입니다. 유닉스 파생 운영체제인 미닉스에서 영감을 받아 만들어진 완전히 새로운 운영체제인 리눅스는 어디에서나 무료로 사용할 수 있는 오픈소스 소프트웨어입니다. 전 세계 수많은 프로그래머가 함께 리눅스 커널 개발에 참여하고 있어 신기술 반영이 빠른 편이며 이에 따라 리눅스 운영체제는 높은 보안성을 제공함과 동시에 굉장히 안정적인 퍼포먼스를 자랑하는 운영체제입니다. 보통 높은 수준의 안정성이 보장되어야 하는 웹 서버에 사용되며 이 글에서도 우분투 리눅스에 아파치 웹 서버와 PHP 8을 설치하는 방법에 대해 알아볼 것입니다.

아파치 웹 서버란? (Apache HTTP Server)

아파치 웹 서버는 오픈소스 웹 서버 소프트웨어입니다. 리눅스와 동일하게 오픈소스라는 점에서 전 세계적으로 가장 많이 사용되고 있는 웹 서버입니다. 모듈 방식의 확장기능을 지원하며 PHP를 비롯해 JSP와 같은 Java 기반 프로그래밍 언어도 지원합니다.

강력한 성능을 자랑하는 웹 서버로 이름을 날렸지만 2.2 버전부터 소프트웨어가 무거워졌다는 평을 받고 있으며, 이에 따라 아파치에 대응해 만들어진 엔진엑스(NGINX)가 최근들어 부상하고 있습니다. 그럼에도 아직까지는 아파치 웹 서버가 가장 많이 사용되고 있는 웹 서버이며, 이 글에서도 아파치 웹 서버를 설치하고 아파치에 PHP를 연동하는 방법에 대해 알아볼 것입니다.

가장 최근에 발표된 PHP 8

이 글에서는 가장 최근에 발표된 PHP 8을 아파치 웹 서버에 설치하는 방법에 대해 알아볼 것입니다. PHP 버전 8은 JIT(Just In Time) 기술을 채택해 이전 버전보다 성능을 최대 4배까지 끌어올렸으며, 여러 개의 변수 유형을 지정할 수 있는 유니온 타입을 지원합니다.

PHP는 버전이 올라감에 따라 성능도 향상되기 때문에 이왕이면 가장 최신의 버전을 사용하는 것이 좋습니다. 아직 웹호스팅 서비스 중에서는 PHP 8을 지원하는 곳이 없지만 가까운 시일 내에는 PHP 8 웹 호스팅도 생겨날 것입니다.

우분투에 아파치 웹 서버 설치하기

우분투 서버에 아파치 웹 서버를 설치하는 방법에 대해 알아보겠습니다. 이 글에서는 Microsoft Azure 가상머신을 사용하였으며, 설치방법은 Ubuntu 20.04 LTS Server 운영체제를 기반으로 설명하겠습니다.

같은 리눅스라면 우분투 리눅스와 사용법이 거의 동일하기 때문에 이 글에서 설명하는 내용을 그대로 따라해도 큰 문제는 없을 것입니다. 물론 패키지 관리자는 달라지기 때문에 레드햇 같은 다른 계열의 리눅스에서는 apt 명령어를 사용할 수 없으니 주의 바랍니다.

(1) $ sudo apt-get update

아파치 웹 서버를 설치하기 전 기존에 설치된 모든 패키지를 최신버전으로 업데이트합니다. 리눅스에서는 새로운 패키지를 설치하기 이전에 패키지 업데이트를 진행하는 것이 좋습니다. 루트 계정으로 로그인할 수 없다면 sudo 명령어를 사용해 루트 권한을 가져올 수 있도록 합니다.

sudo apt-get update 명령어를 실행하면 위와 같이 현재 설치되어 있는 패키지들이 최신 버전으로 업데이트됩니다. 업데이트가 끝나면 Reading package lists… Done. 메시지가 출력됩니다. 이 메시지가 출력되면 다른 명령어를 입력할 수 있는 프롬프트가 나타납니다.

(2) $ sudo apt-get install apache2

이제 아파치 웹 서버를 설치할 단계입니다. 위 명령어를 실행하면 아파치 웹 서버가 자동으로 설치됩니다. 패키지 관리자가 아파치 패키지에 종속되어 있는 다른 패키지들도 알아서 설치해주기 때문에 조금만 기다리면 아파치 웹 서버 설치가 완료됩니다.

설치 중간에 디스크 공간을 얼마나 사용해야 하는지 알려주고 설치를 계속 진행할 것인지 여부를 물어보는 메시지가 나타납니다. 계속 설치를 진행해야 하므로 Y를 입력하고 엔터를 눌러줍니다. 그러면 설치가 진행됩니다. 설치가 완료되면 위에서와 같이 새로운 명령어를 입력할 수 있는 프롬프트가 나타납니다. 이제 아파치 웹 서버 설치가 완료되었습니다.

(3) $ sudo systemctl status apache2

아파치 웹 서버 설치 과정은 모두 끝났습니다. 그런데 아파치가 제대로 설치되었는지 확인하는 절차가 필요할 수도 있습니다. 위 명령어를 실행하면 아파치 웹 서버가 정상적으로 설치되었는지 확인할 수 있습니다. 아래와 같은 내용이 출력되면 정상적으로 설치된 것입니다.

보통 아파치 웹 서버는 운영체제가 시작하면 자동으로 실행됩니다. 그런데 자동으로 실행되지 않는 경우에는 아래 명령어를 실행하여 부팅 시 아파치가 자동으로 실행되도록 조치할 수도 있습니다.

$ sudo systemctl enable apache2

지금까지 아파치 웹 서버를 설치하는 과정을 살펴봤습니다. 웹 브라우저에 자신의 우분투 시스템 IP 주소를 입력해보시기 바랍니다. 아래와 같이 기본 페이지가 출력되면 아파치 웹 서버가 성공적으로 설치된 것입니다.

지금까지 우분투 리눅스에 아파치 웹 서버 설치 방법에 대해 알아봤습니다. 이제 설치된 아파치 웹 서버에 PHP를 연동하는 방법에 대해 알아보도록 하겠습니다.

우분투 리눅스에 PHP 8 설치하기 (아파치 웹 서버)

우분투 리눅스에 아파치 웹 서버를 설치했으니 이제는 PHP 8을 설치해보도록 하겠습니다. 또한 PHP 엔진과 함께 PHP 의존성 관리자인 컴포저(Composer)도 함께 설치하겠습니다. 컴포저를 사용하면 PHP 프로그래밍에 필요한 각종 라이브러리를 쉽게 설치할 수 있어 편리합니다.

(1) $ sudo apt-get install build-essential

PHP를 설치하기 전 우분투 리눅스에 C 컴파일러인 GCC를 먼저 설치하겠습니다. PHP를 설치하거나 컴포저를 사용할 때 C 컴파일러가 필요하기 때문입니다. 위 명령어를 실행하면 GCC가 설치됩니다.

아파치를 설치할 때와 마찬가지로 계속 설치 유무 확인 메시지가 나타나면 Y 를 입력해 설치를 계속합니다. GCC 설치가 완료되면 PHP 설치를 시작합니다.

(2) $ sudo add-apt-repository ppa:ondrej/php

위 명령어를 입력 후 실행하면 패키지 관리자에 PHP 8 저장소가 저장됩니다. 아파치 웹 서버와 같이 기본 저장소에서 PHP를 설치하는 경우 PHP 8이 아닌 이전 버전이 설치되기 때문에 위와 같이 별도의 저장소를 지정해주어야 합니다. 이 명령어를 실행하고 작업이 완료되면 아래와 같은 내용이 출력됩니다. 이제 다음 단계로 넘어가면 되겠습니다.

(3) $ sudo apt-get install php8.0 libapache2-mod-php8.0

PHP 8 설치를 위해 위 명령어를 실행합니다. PHP 8 엔진과 함께 아파치 연동을 위한 모듈도 함께 설치됩니다. 아래와 같이 계속 설치 유무 확인 메시지가 나타나면 Y 를 입력해 설치를 계속합니다.

PHP 엔진과 아파치 모듈 설치가 끝나면 아래 명령어를 통해 아파치 웹 서버를 재시작합니다. PHP가 제대로 설치되었는지 확인하기 위해 웹 브라우저에 PHP 엔진 정보를 출력해보겠습니다. 아래 소스코드 파일을 작성한 후 웹 브라우저에서 PHP 엔진 정보가 잘 출력되는지 확인합니다.

/var/www/html/index.php
phpinfo();

위와 같이 PHP 엔진 정보가 출력된다면 아파치 웹 서버와 PHP가 정상적으로 연동 설치된 것입니다. 지금까지 아파치 웹 서버와 PHP를 우분투 리눅스에 설치해봤습니다. 이제부터 자신만의 PHP 웹 서비스를 만들 수 있게 되었습니다! 그렇다면 지금부터는 웹 서비스를 개발할 때 자주 사용되는 확장 라이브러리와 PHP 라이브러리를 간편하게 관리해주는 컴포저를 설치해보도록 하겠습니다.

(4) 자주 사용되는 PHP 확장 라이브러리 설치

웹 서비스를 개발할 때 주로 사용되는 확장 라이브러리는 다음 명령어를 통해 설치할 수 있습니다. 패키지 관리자 apt-get 명령어에서는 띄어쓰기를 사용해 여러 개의 패키지를 동시에 설치할 수 있습니다.

sudo apt-get install php8.0-common php8.0-mysql php8.0-xml php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip php-pear

각 모듈에 종속되는 패키지도 함께 설치되기 때문에 위와 같이 굉장히 많은 패키지들이 설치되는 것을 확인할 수 있습니다. 계속 진행하면 PHP에 확장 라이브러리가 연동 설치됩니다. PHP 확장 라이브러리를 설치한 후에는 반드시 아파치 웹 서버를 재시작해주시기 바랍니다.

컴포저(Composer) 설치하기

컴포저는 PHP 라이브러리를 관리해주는 의존성 관리도구입니다. PHP 프레임워크인 라라벨이나 코드이그나이터를 사용하려면 반드시 컴포저를 설치해야 합니다. 가장 최근에 발표된 컴포저 2.0 버전을 설치하기 위해서는 이 글에서 소개하는 아래 방법이 필요합니다. 우분투 기본 저장소에서 컴포저를 설치하는 경우 오래된 이전 버전이 설치될 수 있기 때문에 아래 과정을 반드시 확인해주시기 바랍니다.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f76181c7d3') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ sudo php composer-setup.php --install-dir=/bin --filename=composer
$ php -r "unlink('composer-setup.php');"

위 내용은 PHP CLI를 통해 컴포저를 설치하는 방법입니다. 컴포저 공식 홈페이지에서 설치파일을 다운로드한 후 해당 파일을 실행하는 명령어입니다. 컴포저 설치가 완료되면 한 번 컴포저를 실행해보시기 바랍니다. 컴포저는 다음 명령어로 실행할 수 있습니다. composer

컴포저가 제대로 설치되었다면 위와 같은 화면이 출력될 것입니다. 이제부터는 의존성 관리자인 컴포저를 사용해 PHP 라이브러리를 간편하게 가져올 수 있게 되었습니다. 예를 들어, 라라벨 프레임워크를 사용하고자 한다면 다음과 같은 방법으로 라이브러리를 가져올 수 있습니다.

$ composer create-project laravel/laravel app

지금까지 우분투 리눅스에 아파치 웹 서버와 PHP, 컴포저를 설치해봤습니다. 이것만으로 웹 서비스를 개발하는데 큰 지장은 없을 것입니다. 물론 아직 데이터베이스는 설치하지 않았지만 데이터베이스 관리 시스템 설치 방법도 위 내용과 크게 다른 점은 없습니다. 데이터베이스 설치 방법은 추후에 별도의 글에서 설명할 수 있도록 하겠습니다.

One Comment
Leave a reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다