Ubuntu 22.04에서 Apache2, PHP 8.2, MariaDB 설치 및 설정 가이드
Ubuntu 22.04 LTS에서 웹 서버를 구축하려면 Apache2, PHP 8.2, 그리고 MariaDB를 설치해야 합니다.
본 가이드는 Apache2, PHP 8.2, MariaDB를 설치하는 방법뿐만 아니라,
초기 서버 설정, 시간 설정, php.ini 설정, SWAP 추가, PHP 8.2 모듈 설치까지 포함하여
최적화된 서버 환경을 구축하는 방법을 설명합니다. 또한, 워드프레스 운영을 위한 필수 모듈과 함께
phpMyAdmin 설치 방법도 포함하여 보다 완벽한 환경을 구성할 수 있도록 도와드립니다.
목차
- 초기 서버 설정
- Apache2, PHP 8.2, MariaDB 설치
- 서버 및 PHP 시간 설정
- RAM 용량별 SWAP 추가 설정
- 워드프레스 운영을 위한 PHP 8.2 필수 모듈
- phpMyAdmin 설치
1. 초기 서버 설정
Ubuntu 서버를 원활하게 운영하기 위해 기본적인 초기 설정이 필요합니다.
여기에서는 패키지 업데이트, 방화벽 설정, 기본 유틸리티 설치에 대해 설명합니다 ~ 한줄씩 입력하세요.
1.1 패키지 업데이트 및 필수 패키지 설치
sudo apt update && sudo apt upgrade -y sudo apt install -y curl wget unzip software-properties-common
1.2 방화벽 설정
http, https, ssh 세가지의 기능을 안전하게 연결 할 수 있도록 사용할 포트만 열어 줍니다.
sudo ufw allow OpenSSH sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable sudo ufw status
1.3 호스트네임 및 호스트 파일 설정
서버의 호스트네임을 설정하고 `/etc/hosts` 파일을 수정합니다. #myserver은 자신의 서버 네임으로 변경 또는 그냥 hostname으로 두셔도 되기는 합니다.
sudo hostnamectl set-hostname myserver echo "127.0.1.1 myserver" | sudo tee -a /etc/hosts
—
2. Apache2, PHP 8.2, MariaDB 설치
웹 서버를 구성하기 위해 Apache2, PHP 8.2, MariaDB를 설치합니다.
2.1 Apache2 설치 및 활성화
sudo apt install -y apache2 sudo systemctl enable apache2 sudo systemctl start apache2
Apache2가 정상적으로 실행 중인지 확인합니다.
sudo systemctl status apache2
2.2 PHP 8.2 및 필수 확장 모듈 설치
sudo add-apt-repository ppa:ondrej/php -y sudo apt update sudo apt install -y php8.2 php8.2-cli php8.2-common php8.2-mbstring php8.2-xml php8.2-mysql php8.2-curl php8.2-zip
PHP 버전을 확인하여 설치가 정상적으로 이루어졌는지 확인합니다.
php -v
2.3 MariaDB 설치 및 설정
sudo apt install -y mariadb-server mariadb-client sudo systemctl enable mariadb sudo systemctl start mariadb
MariaDB가 정상적으로 실행 중인지 확인합니다.
sudo systemctl status mariadb
2.4 MariaDB 보안 설정
sudo mysql_secure_installation
위 명령을 실행하면 다음과 같은 설정을 진행합니다.
- root 비밀번호 설정
- 익명 사용자 제거
- 원격 root 로그인 비활성화
- 테스트 데이터베이스 제거
- 권한 적용
3. 서버 및 PHP 시간 설정
서버와 PHP의 기본 시간대(Timezone)를 올바르게 설정해야 로그 기록, 예약 작업(cron), 워드프레스 등의 애플리케이션에서
시간이 올바르게 반영됩니다. 기본적으로 UTC로 설정되어 있지만, 한국에서는 Asia/Seoul로 변경해야 합니다.
3.1 시스템 시간(Timezone) 설정
다음 명령어를 사용하여 현재 서버의 시간을 확인하고, 올바른 시간대로 변경합니다.
timedatectl sudo timedatectl set-timezone Asia/Seoul
이후 다시 명령어를 실행하여 변경된 내용을 확인할 수 있습니다.
timedatectl
3.2 PHP 시간(Timezone) 설정
PHP의 기본 설정 파일인 `php.ini`에서 시간대를 설정해야 합니다. php fpm폴더와 cli 폴더 두 곳에 php.ini 파일이 있으니 동일하게 설정을 해주세요.
설정 파일을 편집합니다.
sudo nano /etc/php/8.2/apache2/php.ini
`date.timezone` 항목을 찾아 다음과 같이 변경합니다.
date.timezone = Asia/Seoul
저장 후 Apache를 다시 시작하여 변경 사항을 적용합니다.
sudo systemctl restart apache2
3.3 변경 사항 확인
PHP 설정이 제대로 반영되었는지 확인하려면 다음 명령을 사용합니다.
php -i | grep "date.timezone"
4. RAM 용량별 SWAP 추가 설정
SWAP 메모리는 물리적 RAM이 부족할 때 디스크 공간을 이용하여 메모리처럼 사용할 수 있도록 하는 기능입니다.
RAM이 부족한 경우 시스템이 느려질 수 있으므로, 적절한 크기의 SWAP을 설정하는 것이 중요합니다.
4.1 현재 SWAP 확인
서버에 설정된 SWAP이 있는지 확인합니다.
free -h
4.2 RAM 용량에 따른 SWAP 크기
RAM 용량 | 권장 SWAP 크기 |
---|---|
1GB 이하 | 2GB |
2GB ~ 4GB | 4GB |
4GB ~ 8GB | 2GB |
8GB 이상 | 1GB |
4.3 SWAP 생성
예를 들어, 2GB의 SWAP 공간을 추가하는 방법은 다음과 같습니다.
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile
4.4 부팅 시 SWAP 유지
SWAP을 영구적으로 적용하려면 `/etc/fstab` 파일을 수정합니다.
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
4.5 SWAP 확인
설정이 제대로 적용되었는지 확인합니다.
swapon --show free -h
5. 워드프레스 운영을 위한 PHP 8.2 필수 모듈 설치
워드프레스는 다양한 기능을 제공하기 위해 여러 가지 PHP 모듈이 필요합니다.
기본 PHP만 설치하면 일부 기능이 정상적으로 작동하지 않을 수 있으므로,
필수 확장 모듈을 추가로 설치해야 합니다.
5.1 필수 PHP 모듈 설치
다음 명령어를 사용하여 워드프레스 운영에 필요한 PHP 8.2 모듈을 설치합니다. 굳이 워드프레스가 아니여도 필수 모듈이니 설치해 주시는 게 좋습니다.
sudo apt install -y php8.2-curl php8.2-mbstring php8.2-xml php8.2-xmlrpc php8.2-soap php8.2-gd php8.2-intl php8.2-zip php8.2-bcmath php8.2-imagick php8.2-mysql
5.2 설치된 모듈 확인
PHP 모듈이 정상적으로 설치되었는지 확인하는 방법입니다.
php -m
출력된 목록에서 위에 설치한 모듈들이 포함되어 있는지 확인하세요.
5.3 PHP 설정 최적화
워드프레스 실행 속도를 개선하고 업로드 제한을 늘리기 위해 `php.ini` 파일을 수정합니다.
sudo nano /etc/php/8.2/apache2/php.ini
아래 설정을 찾아서 변경합니다. 각 설정값인 upload_max_filesize를 찾아서 아래의 값으로 변경해주세요.
upload_max_filesize = 128M post_max_size = 128M memory_limit = 512M max_execution_time = 300 max_input_time = 300
파일을 저장한 후 Apache를 다시 시작합니다.
sudo systemctl restart apache2
PHP 8.2 필수 모듈 설치
php8.2-curl: 원격 서버와 데이터 교환을 위한 CURL 라이브러리
php8.2-mbstring: 다국어 지원을 위한 문자열 처리 라이브러리
php8.2-xml 및 php8.2-xmlrpc: XML 관련 기능 사용
php8.2-soap: SOAP 프로토콜 지원
php8.2-gd: 이미지 처리 기능
php8.2-intl: 국제화 관련 기능
php8.2-zip: ZIP 압축 파일 처리
php8.2-bcmath: 고정소수점 연산을 위한 라이브러리
php8.2-imagick: 고급 이미지 처리 기능
php8.2-mysql: MySQL/MariaDB와의 연결 지원
PHP 모듈 확인
php -m 명령어로 설치된 PHP 모듈을 확인합니다.
PHP 설정 최적화
업로드 파일 크기, 메모리 사용량, 실행 시간을 조정하여 워드프레스의 성능을 향상시킵니다.
변경 후 Apache를 재시작하여 적용합니다.
6. phpMyAdmin 설치 및 설정
phpMyAdmin은 웹 인터페이스를 통해 MySQL/MariaDB를 관리할 수 있도록 도와주는 도구입니다.
GUI 환경에서 데이터베이스 관리를 쉽게 할 수 있어 많은 사용자들이 활용합니다.
이 단계에서는 phpMyAdmin 설치 및 보안 설정 방법을 설명합니다.
6.1 phpMyAdmin 설치
다음 명령어를 사용하여 phpMyAdmin을 설치합니다.
sudo apt install -y phpmyadmin
설치 과정 중 다음과 같은 설정이 필요합니다.
- 웹 서버 선택: `apache2`를 선택합니다.
- 데이터베이스 설정: `Yes`를 선택하여 phpMyAdmin이 MySQL/MariaDB와 통합되도록 합니다.
- phpMyAdmin 관리자 비밀번호 설정: 원하는 비밀번호를 입력합니다.
6.2 Apache2와 phpMyAdmin 연결
phpMyAdmin을 정상적으로 실행하려면 Apache2에 연결해야 합니다.
설정 파일을 확인합니다.
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
이후 Apache2를 다시 로드합니다.
sudo systemctl restart apache2
6.3 phpMyAdmin 보안 설정
phpMyAdmin은 기본적으로 `/phpmyadmin` 경로로 접근이 가능하기 때문에 보안이 취약할 수 있습니다.
이를 강화하기 위해 Apache 인증을 추가합니다.
보안 디렉터리를 생성하고 사용자 인증을 설정합니다.
sudo nano /etc/apache2/conf-available/phpmyadmin.conf
파일의 끝부분에 다음을 추가합니다.
Options SymLinksIfOwnerMatch AllowOverride All Require all granted
이제 `.htpasswd` 파일을 생성하여 보호할 사용자 계정을 추가합니다.
sudo apt install -y apache2-utils sudo htpasswd -c /etc/phpmyadmin/.htpasswd admin
비밀번호를 입력하고 파일을 저장한 후, Apache2를 다시 시작합니다.
sudo systemctl restart apache2
6.4 phpMyAdmin 접속
브라우저에서 아래 주소를 입력하여 phpMyAdmin에 접속할 수 있습니다.
http://your-server-ip/phpmyadmin
사용자 이름과 비밀번호를 입력하여 로그인하면 MySQL/MariaDB를 관리할 수 있습니다.
마무리 및 정리
지금까지 Ubuntu 22.04 서버에서 Apache2, PHP 8.2, MariaDB를 설치하고,
초기 설정을 수행하는 방법을 살펴보았습니다. 또한, 서버의 시간 설정, PHP 환경 설정,
SWAP 추가 설정, PHP 모듈 설치 등을 수행하여 워드프레스 운영을 위한 최적의 환경을
구축하였습니다. 마지막으로 phpMyAdmin 설치 및 보안 강화를 통해 데이터베이스
관리까지 손쉽게 할 수 있도록 설정하였습니다.
최종 점검 사항
- Apache2, PHP 8.2, MariaDB가 정상적으로 실행되는지 확인
- 서버 및 PHP의 시간 설정이 Asia/Seoul로 되어 있는지 확인
- SWAP 설정이 올바르게 적용되었는지 점검
- PHP 8.2의 필수 모듈이 정상적으로 설치되었는지 확인
- phpMyAdmin이 정상적으로 작동하며 보안이 강화되었는지 점검
추가적인 추천 설정
보다 안정적인 운영을 위해 아래의 추가적인 설정을 적용하는 것도 좋습니다.
- Let’s Encrypt SSL을 이용하여 HTTPS 적용
- Fail2Ban을 활용한 SSH 및 Apache 보안 강화
- 자동 백업 스크립트 설정 (MySQL/MariaDB, 웹사이트 데이터)
- 웹서버 캐시 최적화 (OPcache, Redis, Memcached 등)
다음 단계
이제 서버의 기본적인 구성이 완료되었습니다. 다음 단계로 워드프레스를 설치하여 본격적인 웹사이트 운영을 시작할 수 있습니다.
wget https://wordpress.org/latest.tar.gz tar -xvzf latest.tar.gz mv wordpress /var/www/html/
이후 MySQL/MariaDB에 워드프레스용 데이터베이스를 생성하고, 적절한 설정을 진행하면 됩니다.