Linux Server

[Linux]Ubuntu 20.04 웹 서버 구축(3) - PHP 7.4 설치

톰아저씨의 오두막 2021. 7. 1. 18:25

[Linux]Ubuntu 20.04 웹 서버 구축(3) - PHP 7.4 설치

[Linux] Ubuntu 20.04 Web Server Construction - PHP 7.4 Installation

Ubuntu and PHP

PHP 개요

PHP를 소개하기 전에 웹 페이지 프로그래밍 언어에 대하여 설명을 드립니다.

 

웹 개발용 언어는 클라이언트용 언어와 서버용 언어로 나눌 수 있습니다. 클라이언트 언어는 웹 문서에서 사용자와 직접 상호 작용하는 부분을 담담하고, 서버용 언어는 서버와 응용 프로그램, 데이터베이스 등과 상호 통신하는 역할을 담당합니다. 클라이언트용 언어는 HTML, CSS, Javascript 등이 있으며, 서버용 언어는 PHP, Java, ASP, Python, C#, .net 등의 언어들이 있습니다. 

 

ⓐ HTML과 CSS

 

처음 웹 페이지를 작성하기 위해서 HTML과 CSS는 가장 기본이 되는 언어입니다. 두 언어는 실제 로직을 다루는 것이 아니므로 프로그래밍 언어라고 할 수 없습니다. HTML(HyperText Markup Language)은 웹 페이지 작성을 위한 마크업 언어이고, CSS(Cascading Style Sheet)는 스타일을 담당하는 언어입니다.

 

HTML이 텍스트, 이미지, 표와 같은 구성요소를 웹 문서에 넣는 구조 역할을 담당하는 것이라면, CSS는 색상, 크기, 위치, 배치방법 등의 디자인 요소를 담당하게됩니다. HTML, CSS로 구성된 웹페이지를 '정적인 웹페이지'라고 합니다.

 

이에 반해 Javascript, PHP는 동적으로 웹 페이지를 만들어 주는 역할을 합니다.   

 

ⓑ Javascript

 

Javascript 는 클라이언트(Client) 측 개발 언어로 웹 개발자들이 사용하는 대중적인 프로그래밍 언어입니다. 웹 브라우저에 인터프리터(Interpreter)가 내장되어 있으므로 소스코드를 바로 실행할 수 있습니다. 

 

ⓒ PHP

 

PHP(Php Hypertext Preprocessor) 는 서버(Server) 측에서 실행되는 언어입니다. 처음 개발되었을 때는 PHP는 Personal Home Page의 약자였으며, 처음부터 웹 페이지 개발에 목적을 두고 만들어진 C 언어 기반의 언어로서 MySQL, MariaDB 등과 연동하여 사용하게됩니다.

 

php는 오픈 소스이고 무료이며 Window, Linus 계열 등 대다수의 운영 체제에서 사용이 가능합니다. 일반적으로 간단한 사이트 제작에 최적화된 언어이므로 규모가 크고 복잡한 사이트의 경우는 한계가 있습니다. 

 

지금부터 Ubuntu 20.04에 PHP 7.4 를 설치하는 방법을 설명드리겠습니다.

 

패키지 설치 전 사전 필수 작업


Ubuntu 에서 리눅스 패키지를 배포하거나 설치하기 전에는 필수적으로 시스템 내에 설치된 패키지들을 업그레이드하여 최신 버전으로 유지해 주는 것이 좋습니다. 패키지 설치 전 필수 작업은 다음 글을 참고바랍니다.

 

 

[Ubuntu]Ubuntu 20.04 패키지 설치 전 사전 필수 작업

[Ubuntu]Ubuntu 20.04 패키지 설치 전 사전 필수 작업 [Ubuntu] Prerequisite tasks before installing Ubuntu 20.04 package Ubuntu 에서 리눅스 패키지를 배포하거나 설치하기 전에는 필수적으로..

tomcabin.tistory.com

 

PHP 7.4 설치

ⓐ Ubuntu 공식 저장소에서 Ubuntu 20.04 용 php를 설치하면 php 7.4 버전이 설치됩니다. php를 설치하기 전에 Apache2와 MariaDB 또는 MySQL이 정상적으로 설치되어 있어야 합니다. 그렇지 않으면 오류가 발생할 수 있습니다. 

 

1
root@uncletom-vm:~# sudo apt install php

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
root@uncletom-vm:~# sudo apt install php
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음의 추가 패키지가 설치될 것입니다 :
  libapache2-mod-php7.4 php-common php7.4 php7.4-cli php7.4-common 
  php7.4-json
  php7.4-opcache php7.4-readline
제안하는 패키지:
  php-pear
다음 새 패키지를 설치할 것입니다:
  libapache2-mod-php7.4 php php-common php7.4 php7.4-cli php7.4-common
  php7.4-json php7.4-opcache php7.4-readline
0개 업그레이드, 9개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
4,019 k바이트 아카이브를 받아야 합니다.
이 작업 후 18.0 M바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] y
받기:1 http://kr.archive.ubuntu.com/ubuntu focal/main amd64 php-common
all 2:75 [11.9 kB]
받기:2 http://kr.archive.ubuntu.com/ubuntu focal-updates/main amd64 
php7.4-common amd64 7.4.3-4ubuntu2.4 [979 kB]
받기:3 http://kr.archive.ubuntu.com/ubuntu focal-updates/main amd64 
php7.4-json amd64 7.4.3-4ubuntu2.4 [19.2 kB]
받기:4 http://kr.archive.ubuntu.com/ubuntu focal-updates/main amd64 
......
Creating config file /etc/php/7.4/apache2/php.ini with new version
Module mpm_event disabled.
Enabling module mpm_prefork.
apache2_switch_mpm Switch to prefork
apache2_invoke: Enable module php7.4
php7.4 (7.4.3-4ubuntu2.4) 설정하는 중입니다 ...
php (2:7.4+75) 설정하는 중입니다 ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for php7.4-cli (7.4.3-4ubuntu2.4) ...
Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.4) ...
root@uncletom-vm:~

 

설치 과정에서 php 7.4와 함께 다음과 같은 부속 패키지 들이 설치됩니다.

 

① libapache2-mod-php7.4
② php-common
③ php7.4
④ php7.4-cli php7.4-common
⑤ php7.4-json
⑥ php7.4-opcache
⑦ php7.4-readline

 

 

ⓑ 추가로 Apache2와 MySql 계열의 DB와 연동을 위해 다음 패키지를 설치합니다.

 

' libapache2-mod-php' 는 Apache2와의 연동에 필요한 라이브러리 패키지이고, php-mysql은 MySQL 계열 DB와 연동할 때 필요한 패키지입니다.

 

1
root@uncletom-vm:~# sudo apt install php libapache2-mod-php php-mysql

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
root@uncletom-vm:~# sudo apt install php libapache2-mod-php php-mysql
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
패키지 php는 이미 최신 버전입니다 (2:7.4+75).
다음 새 패키지를 설치할 것입니다:
  libapache2-mod-php php-mysql php7.4-mysql
0개 업그레이드, 3개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
125 k바이트 아카이브를 받아야 합니다.
이 작업 후 505 k바이트의 디스크 공간을 더 사용하게 됩니다.
받기:1 http://kr.archive.ubuntu.com/ubuntu focal/main amd64 
    libapache2-mod-php all 2:7.4+75 [2,836 B]
받기:2 http://kr.archive.ubuntu.com/ubuntu focal-updates/main amd64 
    php7.4-mysql amd64 7.4.3-4ubuntu2.4 [121 kB]
받기:3 http://kr.archive.ubuntu.com/ubuntu focal/main amd64 
    php-mysql all 2:7.4+75 [2,000 B]
내려받기 125 k바이트, 소요시간 1초 (85.3 k바이트/초)
Selecting previously unselected package libapache2-mod-php.
(데이터베이스 읽는중 ...현재 192760개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../libapache2-mod-php_2%3a7.4+75_all.deb ...
Unpacking libapache2-mod-php (2:7.4+75) ...
Selecting previously unselected package php7.4-mysql.
Preparing to unpack .../php7.4-mysql_7.4.3-4ubuntu2.4_amd64.deb ...
Unpacking php7.4-mysql (7.4.3-4ubuntu2.4) ...
Selecting previously unselected package php-mysql.
Preparing to unpack .../php-mysql_2%3a7.4+75_all.deb ...
Unpacking php-mysql (2:7.4+75) ...
php7.4-mysql (7.4.3-4ubuntu2.4) 설정하는 중입니다 ...
 
Creating config file /etc/php/7.4/mods-available/mysqlnd.ini with new version
 
Creating config file /etc/php/7.4/mods-available/mysqli.ini with new version
 
Creating config file /etc/php/7.4/mods-available/pdo_mysql.ini with new version
libapache2-mod-php (2:7.4+75) 설정하는 중입니다 ...
php-mysql (2:7.4+75) 설정하는 중입니다 ...
Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.4) ...
Processing triggers for php7.4-cli (7.4.3-4ubuntu2.4) ...
root@uncletom-vm:~

 

이상 php 7.4가 완료되었습니다.

버전을 확인해 봅니다.

 

1
2
3
4
5
6
root@uncletom-vm:~# php -v
PHP 7.4.3 (cli) (built: Oct  6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
root@uncletom-vm:~

 

PHP 설치 정보의 확인

ⓐ  텍스트 편집기(gedit)에서 다음을 입력 한 후 '/var/www/html' 폴더에 'phpinfo.php' 로 저장합니다.

 

1
2
3
<?php
    phpinfo();
?>     

 

phpinfo.php

ⓑ 웹 브라우저로 PHP 정보를 확인합니다. 주소 필드에 'localhost/phpinfo.php' 를 입력합니다.

 

 

이상으로 'Ubuntu 20.04'에 'php'를 설치하는 방법을 소개드렸습니다.

감사합니다.