블로그 포스팅

2026.01.01 18:03

우분투 22.04 APM 서버 설치하기 (APACHE2 / PHP8.4 / MariaDB)

1767258207_da4d8680b3d062c5_mceclip0.png

 

카페24 가상서버 호스팅 서비스에서는 우분투 22.04 LTS OS가 제공됩니다. (26.01.01 기준)

우분투 22.04 LTS에서는 PHP 기본 버전이 PHP8.1 입니다. 하지만 저는 PHP8.4를 설치하였습니다. 한번 설치과정을 살펴보도록 하겠습니다.

 


 

1. 우분투 22.04 LTS 프로그램 최신버전 패치

패키지 목록 갱신 (root 계정으로 로그인이 되어있는 경우 sudo 생략가능합니다.)

sudo apt update

 

프로그램 최신버전 패치

sudo apt upgrade

 

설치, 제거, 업데이트 과정중에 생긴 필요없는 파일이 있으면 제거

sudo apt autoremove

 

서버 재부팅

sudo reboot

 

 


 

 

2.  Apache2 설치

운영체제 업데이트가 완료되었다면 이제 본격적으로 서버 설치를 해보겠습니다.

Apache2, PHP8.4, MariaDB 순서로 설치를 진행하겠습니다.

 

Apache2 설치

sudo apt install apache2

 

설치된 Apache2 버전 확인하기

sudo apache2 -v

1767259647_0929fb365dbc9a36_mceclip0.png

 

Apache2 모듈 활성화

sudo a2enmod rewrite
sudo a2enmod headers
sudo a2dismod -f autoindex

 

Apache2 변경사항 적용

sudo service apache2 restart

 

기본 언어셋 변경

sudo nano /etc/apache2/conf-available/charset.conf

1767259981_152ed03bbedcd32e_mceclip0.png

기본 언어값 UTF-8 설정에 주석처리가 되어있습니다. 주석(#)을 제거합니다.

 

추가 보안 설정

sudo nano /etc/apache2/conf-available/security.conf

1767287597_2f473c5a153cf161_mceclip0.png

1767287649_8ee8db0394f9f30a_mceclip1.png

위 그림을 참고하여 설정하면 됩니다. (주석제거 또는 내용 변경)

 

 

추가 보안 패치 (.git, .svn, .env 등 dot로 시작하는 파일 및 폴더 보호, Web Access가 되어서는 안될 파일들의 접근 제어)

서비스 운영중 의도치 않게 발생할 수 있는 보안 문제를 막는 코드입니다.

sudo nano /etc/apache2/apache2.conf

파일 중간(대략 199번째 줄)에 있는 <FilesMatch “^\.ht”> 구문 다음에 추가합니다.

# deny file, folder start with dot
<DirectoryMatch "^\.|\/\.">
    Require all denied
</DirectoryMatch>
 
# deny (log file, binary, certificate, shell script, sql dump file) access.
<FilesMatch "\.(?i:log|binary|pem|enc|crt|conf|cnf|config|sql|sh|key|yml|lock|bak|gitignore)$">
    Require all denied
</FilesMatch>
 
# deny access.
<FilesMatch "(?i:composer\.json|contributing\.md|license\.txt|readme\.rst|readme\.md|readme\.txt|copyright|artisan|gulpfile\.js|package\.json|phpunit\.xml|access_log|error_log|gruntfile\.js|bower\.json|changelog\.md|console|legalnotice|license|security\.md|privacy\.md)$">
    Require all denied
</FilesMatch>
 
# Allow Lets Encrypt Domain Validation Program
<DirectoryMatch "\.well-known/acme-challenge/">
    Require all granted
</DirectoryMatch>
 
# Block .php file inside upload folder. uploads(wp), files(drupal), data(gnuboard).
<DirectoryMatch "/(uploads|default/files|data|wp-content/themes)/">
    <FilesMatch ".+\.php$">
        Require all denied
    </FilesMatch>
</DirectoryMatch>
 
<DirectoryMatch "/(data/session)/">
    Require all denied
</DirectoryMatch>

 

변경사항 적용하기

sudo service apache2 restart

 

 

 

 

 

이 자료는 라엘님의 포스팅을 참고하여 재작성된 것 입니다.

해당 포스팅 링크는 아래와 같습니다. 

 

 

https://blog.lael.be/post/11072


  • 공유링크 복사