OCI 인스턴스에 워드프레스를 설치해 보자.
OCI(Oracle Cloud Infrastructure)에서 인스턴스를 생성한 후, Oracle Linux에 워드프레스를 설치하는 과정을 단계별로 초보자도 쉽게 따라할 수 있도록 자세히 설명할 예정이니 무작정 따라해 보자.
시작 전에 이전 글에서 언급한 대로 오라클 리눅스 8에 스왑 메모리 확장 설정은 미리 해두길 바란다. 이 작업 후 부족한 리소스의 시스템에 패키지들을 온전히 설치할 수 있었다.
SWAP 파티션으로 OCI 무료 인스턴스의 메모리 늘리기
swap 파티션으로 OCI 무료 인스턴스의 메모리 늘리기
워드프레스를 설치하기 위해 생성한 무료 오라클 인스턴스가 말썽이다. 워드프레스 패키지를 설치하려고만 하면 조금 있다 시스템이 멈춰버린다. 이런 이유로 yum 아니 dnf 관련 명령어를 실행
solafide.tistory.com
1. 기본 환경 설정
시스템 패키지 업데이트
가장 먼저 시스템을 최신 패키지로 업데이트 한다.
sudo dnf update -y -vv
이 과정이 대략 30분 이상이 소요된 것으로 기억한다. 인내심을 가지고 기다리자. -vv 옵션을 주어 패키지가 설치되는 진행 상태를 확인할 수 있다. 시스템이 간혹 정지된것 같은 불안감이 온다면 새 터미널을 열어 top 명령으로 자원이 활용되고 있음을 모니터링 하자. 주기적으로 화면이 갱신된다면 시스템이 다운된 것은 아니다.
긴 인내심 끝에 아래 메시지를 보았다면 첫 단추는 잘 꿴것이다.

sudo dnf install -y epel-release -vv
EPEL 엑스트라 패키지도 설치해 주자. EPEL은 Extra Packages for Enterprise Linux 로서 Red Hat 계열 리눅스 배포판 (예: RHEL, CentOS, Oracle Linux) 을 위한 추가 소프트웨어 패키지 저장소이다. Red Hat 계열 기본 저장소에는 없는 추가적인 오픈소스 패키지를 제공한다. 이 패키지를 설치하면 기본 저장소에 없는 패키지 설치가 가능하며 추가적인 php 모듈이나 워드프레스 설치시 필요한 일부 확장 모듈(php-gd, php-mbstring, php-xml 등)이 이 EPEL 저장소에 있어 사용할 수 있다.
필수 패키지 설치
다음은 Apache, PHP, MariaDB(또는 MySQL) 설치에 필요한 도구들을 설치한다.
sudo dnf install -y wget unzip nano
웹에서 파일을 다운로드 하는 도구 wget, zip 파일 압축을 해제하기 위해 unzip, 그리고 nano 텍스트 에디터를 다운받아 설치 한다. 본인이 이미 vi와 같은 전통 에디터에 익숙해 있다면 nano 에디터 설치는 스킵할 수 있다.
2. LAMP 스택 설치
2.1 Apache 설치 및 설정
Apache 설치
Apache 웹서버를 설치하는 과정이다.
sudo dnf install -y httpd
Apache 서비스 시작 및 부팅 시 자동 실행 설정
설치한 Apache 웹서버를 기동하고 시스템을 재부티 할 때마다 자동으로 실행되도록 설정한다.
sudo systemctl start httpd
sudo systemctl enable httpd
방화벽 설정 (HTTP/HTTPS 허용)
OCI 콘솔 > 네트워킹 > 가상 클라우드 네트워크 > '본인이 설정한 서브넷' > 서브넷 세부정보 를 보면 자신의 가상 네트워크에 설정된 보안 목록(일종의 네트워크 방화벽)을 볼 수 있다. 보안 목록에는 기본적인 수신 규칙과 송신 규칙이 미리 등록이 되어 있어, 서버로의 http, https 인바운드 통신과 모든 아웃바운드 통신을 허용이 되었아. 하지만 이 보안 목록이 있더라도 서버에 방화벽 설정이 없으면 내 서버에 접속을 할 수 없으니 이 방화벽 설정을 잊지 않고 해두자.
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
브라우저 확인
OCI 콘솔에서 인스턴스의 공인 IP로 접속해 Apache 기본 페이지가 나오는지 확인한다.
http://<your_instance_ip>

아파치 웹서버가 성공적으로 설치되고 가동이 되었다면 본인의 브라우저에서 위 페이지를 볼 수 있을 것이다.
2.2 MariaDB (또는 MySQL) 설치 및 설정
MariaDB 설치
데이터베이스를 설치한다. MariaDB는 MySQL이 Oracle에 인수된 이후 MySQL의 소스 코드를 기반으로 개발된 MySQL 포크로 Mysql와 대부분의 명령어를 공유하며, 높은 호환성을 유지하면서도 새로운 기능과 개선 사항을 추가된 DBMS 이다.
sudo dnf install -y mariadb-server
MariaDB 서비스 시작 및 부팅 시 자동 실행 설정
데이터베이스도 기동하고 부팅시 자동 실행 될 수 있도록 설정한다.
sudo systemctl start mariadb
sudo systemctl enable mariadb
보안 설정 스크립트 실행
mysql_secure_installation 은 MySQL 및 MariaDB 설치 후 보안을 강화하기 위해 사용하는 스크립트이다. 이 명령어를 실행하면 데이터베이스의 기본 보안 설정을 쉽게 구성할 수 있다.
sudo mysql_secure_installation
나의 이전 글을 통해 OCI 인스턴스를 설치하고 접속 했다면 인증서 기반으로 접근하였기 때문에 아직 운영체체(Oracle Linux 8)의 root 비밀번호는 생성하지 않았을 것이다. (아래 링크 참조)
오라클 클라우드(OCI)에 가상 머신 생성하여 접속해 보기
오라클 클라우드(OCI)에 가상 머신 생성하여 접속해 보기
가장 저렴하게 워드프레스(Wordpress) 기반의 블로그를 구현해 볼 수 있는 방법은 뭐가 있을까? 물론 개인 PC에서 VMware와 같은 가상 머신을 구동하여 WP를 설치하고 테스트 해 볼 수도 있겠으나 실
solafide.tistory.com
이 명령 실행후 처음 나오는 OS root 비번에 대한 경고는 엔터 입력 후 그대로 진행하고 DBMS의 root 비밀번호를 설정한다. 이후 다음 과정들을 모두 'y'를 클릭하여 보안성을 강화한다.
root 비밀번호 설정: Y
익명 사용자 삭제: Y
원격 root 접속 차단: Y
테스트 데이터베이스 삭제: Y
권한 테이블 다시 로드: Y
워드프레스용 데이터베이스 및 사용자 생성
데이터베이스 사용자 계정을 생성한다. 여기에서 생성한 계정명과 데이터베이스 명은 이후 워드프레스 설정시 반드시 입력해야 하는 정보이므로 꼭 기억해 두도록 하자
sudo mysql -u root -p
MariaDB 콘솔에서 다음 명령어 실행한다.
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
wordpress는 데이터베이스 이름, wpuser는 데이터베이스 계정명, 'strong_password'는 DB 계정의 비밀번호니 본인에 맞게 생성하고 앞서 말한대로 이후 설정을 꼭 기억을 해두자. 참고로 'localhost' 는 DB 접속지를 나타낸다. 접속지를 localhost로 설정할 경우 사용자가 데이터베이스 서버가 실행되고 있는 동일한 머신에서 접속할 수 있음을 의미한다. 이 경우, 해당 사용자 계정은 로컬에서만 접근할 수 있으며, 원격에서의 접속은 허용되지 않는다. IP주소나 host명 또는 % 입력할 수도 있으나, DB에 직접 접속하는 것은 본인의 서버에 허용하는 것이 보안상 유익하므로 특별한 목적이 없는 경우 'localhost'로 두자.
2.3 PHP 설치 및 설정
PHP 및 확장 모듈 설치
이제 PHP를 설치해보자.
sudo dnf install -y php php-mysqlnd php-fpm php-opcache php-gd php-xml php-mbstring php-json php-curl
Apache 재시작
sudo systemctl restart httpd
PHP 동작 확인
PHP 정보를 확인할 수 있는 파일 생성하고 브라우저에서 확인해 보자.
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
브라우저에서 확인
http://<your_instance_ip>/info.phphttp://<your_instance_ip>/info.php
설치가 정상적으로 되었음을 확인한 후 보안을 위해 위 파일을 삭제해 둔다. 필자는 즉시 이 파일을 즉시 삭제하지 않았고, 이후 워드프레스 모든 기능이 정상적으로 작동되는지 확인기 위해 필요할 수 있다 판단하여 해당 파일을 잠시 남겨 두었으나 이렇더라도 보안적으로 악용될 수 있으므로 해당 파일은 꼭 삭제하자.
sudo rm /var/www/html/info.php
3. 워드프레스 설치
워드프레스 다운로드 및 압축 해제
최신 버전의 워드프레스를 임시 디렉토리(/tmp)에 다운받자.
cd /tmp
wget https://wordpress.org/latest.zip
unzip latest.zip
워드프레스 파일을 웹 루트 디렉터리로 이동
압축 해제한 파일들을 웹 다큐먼트 루트 디렉토리 (/var/www/html) 에 이동한다.
sudo rsync -avP /tmp/wordpress/ /var/www/html/
Apache 권한 설정
아파치 웹서버가 실행되는 apache 계정이 관련 디렉토리들과 파일들을 적절히 사용할 수 있도록 이들의 소유권 및 권한을 변경한다.
sudo chown -R apache:apache /var/www/html/
sudo chmod -R 755 /var/www/html/
워드프레스 설정 파일 수정
워드프레스 설치 후 정상적으로 접속하기 위해 반드시 입력되어야 하는 초기 정보이므로 정확히 입력 될 수 있도록 주의하자.
cd /var/www/html
cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
아래 부분을 수정한다. 본인이 위 2.2 절에서 DB 생성 하면서 입력했던 정보대로 'wordpress', 'wpuser', 'strong_password' 값을 변경하여 입력한다.
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'strong_password' );
define( 'DB_HOST', 'localhost' );
Apache 재시작
sudo systemctl restart httpd
4. 워드프레스 설치 마법사 실행
브라우저에서 본인의 OCI 인스턴스의 공인 IP로 접속한다.
http://<your_instance_ip>

위와 같은 페이지가 보인다면 모든 서버와 워드프레스의 설치가 일단 정상적으로 완료 되었다고 할 수 있다. 이 페이지에서 언어 선택 후, 본인이 만들 사이트의 제목, Wordpress 관리자 계정 및 비밀번호 등을 설정한다. DB 설정이나 PHP 설정이 온전하게 되지 않은 경우 위와 같은 정상적인 첫페이지가 아닌 에러 페이지가 보일 것이다. 이 경우 당황하지 말고 본인의 과정에서 누락된 부분이나 잘못 입력한 부분이 없는지를 확인하고 수정하자.
사실 트러블 슈팅보다 처음부터 다시 시작하는 것이 더 빠를 수도 있으니 원인을 오랫동안 찾지 못하고 있다면 이 부분도 고려해 보자.
- 싸이토
'좌충우돌 워드프레스 사용기' 카테고리의 다른 글
오라클 인스턴스에 root 계정으로 접속하기 (0) | 2025.02.20 |
---|---|
Apache, MariaDB, PHP 최신 버전으로 업데이트 하기 (0) | 2025.02.12 |
오라클 클라우드 인스턴스에 퍼블릭 IP 고정하기 (0) | 2025.02.09 |
swap 파티션으로 OCI 무료 인스턴스의 메모리 늘리기 (0) | 2025.02.07 |
오라클 클라우드(OCI)에 가상 머신 생성하여 접속해 보기 (0) | 2025.02.04 |