기술 가이드

Ubuntu 14.04에 OrangeHRM 설치 가이드

5 min read DevOps 업데이트됨 16 Oct 2025
Ubuntu 14.04에 OrangeHRM 설치 가이드
Ubuntu 14.04에 OrangeHRM 설치 가이드

개요

OrangeHRM은 직원 출결, 성과, 채용, 연례 평가를 관리하는 웹 기반 오픈소스 인사관리 소프트웨어입니다. Linux와 Windows를 모두 지원하며 Opensource, Professional, Enterprise의 세 가지 에디션이 있습니다. 이 문서는 Ubuntu 14.04 서버에 OrangeHRM 3.3.3(예시)을 설치하는 실무 절차를 설명합니다.

중요: Ubuntu 14.04는 공식 보안 업데이트가 종료되었습니다. 프로덕션 환경에서는 가능한 최신 LTS(예: Ubuntu 20.04/22.04)로의 마이그레이션을 우선 고려하세요.

주요 의도 및 관련 검색어

  • 기본 의도: Ubuntu 14.04에 OrangeHRM 설치
  • 관련 키워드: OrangeHRM 설치, OrangeHRM Apache 설정, OrangeHRM MariaDB, OrangeHRM 가상호스트, OrangeHRM 보안

요구사항

  • 새로 설치된 Ubuntu 14.04 서버(또는 루트 권한을 가진 sudo 사용자)
  • PHP > 5.5.0 (원문은 PHP5 계열을 사용), Apache 웹 서버, MariaDB(MySQL 호환)
  • 인터넷 연결(다운로드용)

중요: PHP 5 계열은 최신 보안 패치가 제공되지 않을 수 있습니다. 가능하면 지원되는 PHP 버전과 호환되는 OrangeHRM 버전으로 설치하세요.

설치 전 준비

시스템을 최신 상태로 업데이트합니다.

sudo apt-get update -y
sudo apt-get upgrade -y

업데이트가 끝나면 시스템을 재부팅하고 sudo 사용자로 로그인합니다.

1. Apache 웹 서버 설치

OrangeHRM은 웹 서버(Apache)가 필요합니다. 다음 명령으로 Apache와 필요한 라이브러리들을 설치합니다.

sudo apt-get install apache2 apache2-data apache2-mpm-prefork libaio1 libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libterm-readkey-perl libwrap0 tcpd -y

설치 후 Apache 서비스를 시작하고 부팅 시 자동 시작하도록 설정합니다.

sudo /etc/init.d/apache2 start
sudo update-rc.d apache2 defaults

노트: systemd 기반 배포판(신형 Ubuntu)은 systemctl을 사용합니다. Ubuntu 14.04의 경우 위 init 스크립트 명령이 적합합니다.

2. PHP 설치

OrangeHRM은 PHP > 5.5.0을 요구합니다. Ubuntu 14.04 환경에서 다음 명령으로 PHP5와 관련 모듈을 설치합니다.

sudo apt-get install php5 php5-cli php5-common php5-json php5-mysql php5-readline -y

설치가 끝나면 PHP 모듈이 Apache에 로드되는지 확인하세요. 필요 시 Apache를 재시작합니다.

sudo /etc/init.d/apache2 restart

중요: PHP5는 더 이상 활성 지원을 받지 않습니다. 가능하면 지원되는 PHP 버전과 OrangeHRM 버전 조합으로 마이그레이션을 계획하세요.

3. MariaDB 설치 및 초기 설정

OrangeHRM 데이터는 MariaDB/MySQL에 저장됩니다. MariaDB 서버를 설치하고 초기 보안 설정을 수행합니다.

sudo apt-get install mariadb-server -y

서비스 시작 및 부팅 시 자동 시작 설정:

sudo /etc/init.d/mysql start
sudo update-rc.d mysql defaults

MariaDB는 기본적으로 보안 강화가 필요합니다. 다음 스크립트를 실행해 루트 비밀번호 설정, 익명 계정 삭제, 원격 루트 접속 비허용, 테스트 DB 제거 등을 진행합니다.

sudo mysql_secure_installation

스크립트의 안내를 따라 응답합니다. 기본적으로는 익명 사용자 제거(Y), 원격 루트 로그인 금지(Y), 테스트 DB 제거(Y), 권한 재로드(Y)를 권장합니다.

루트 암호 설정 후 MariaDB 콘솔에 접속하여 OrangeHRM용 데이터베이스와 사용자 계정을 생성합니다.

mysql -u root -p

MariaDB 콘솔에서:

CREATE DATABASE orangehrm_db;
CREATE USER 'orangehrm'@'localhost' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON orangehrm_db.* TO 'orangehrm'@'localhost';
FLUSH PRIVILEGES;
\q

보안 권고: 실제 비밀번호는 강력한 문자열로 설정하고 루트 계정과는 별도로 관리하세요.

4. OrangeHRM 다운로드 및 배치

SourceForge에 있는 안정 버전(예: 3.3.3)을 다운로드하고 웹 루트로 이동시킵니다.

wget https://excellmedia.dl.sourceforge.net/project/orangehrm/stable/3.3.3/orangehrm-3.3.3.zip
unzip orangehrm-3.3.3.zip
sudo mv orangehrm-3.3.3 /var/www/html/orangehrm

디렉터리 권한을 웹 서버 사용자로 설정합니다. 기본 예시는 www-data(많은 Debian/Ubuntu 계열에서 사용)를 사용합니다.

sudo chown -R www-data:www-data /var/www/html/orangehrm
sudo chmod -R 777 /var/www/html/orangehrm

중요: 777 권한은 편리하지만 보안상 위험합니다. 프로덕션에서는 다음 권장 절차를 따르세요:

  • 디렉터리 소유권을 웹서버 계정으로 설정
  • 쓰기 권한이 필요한 디렉터리만 750 또는 770으로 변경
  • 불필요한 실행 권한 제거

예시(권장):

sudo chown -R www-data:www-data /var/www/html/orangehrm
sudo find /var/www/html/orangehrm -type d -exec chmod 755 {} \;
sudo find /var/www/html/orangehrm -type f -exec chmod 644 {} \;
# 업로드/캐시 폴더만 쓰기 권한 부여
sudo chmod -R 775 /var/www/html/orangehrm/symfony/cache
sudo chmod -R 775 /var/www/html/orangehrm/symfony/log

5. Apache 가상 호스트 구성

OrangeHRM용 가상 호스트 파일을 생성합니다.

sudo nano /etc/apache2/sites-available/orangehrm.conf

다음 내용을 추가합니다(필요 시 ServerName을 실제 도메인으로 수정).


ServerAdmin [email protected]
ServerName yourdomain.com
DocumentRoot /var/www/html/orangehrm

Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted

ErrorLog ${APACHE_LOG_DIR}/orangehrm-error.log
CustomLog ${APACHE_LOG_DIR}/orangehrm-access.log combined

파일을 저장하고 기본 가상 호스트를 비활성화한 뒤 OrangeHRM 사이트를 활성화합니다.

sudo a2dissite 000-defaults
sudo a2ensite orangehrm
sudo /etc/init.d/apache2 restart

중요: 프로덕션 도메인에서는 반드시 HTTPS(SSL/TLS)를 적용하세요. Let’s Encrypt를 사용하면 무료로 인증서를 발급받아 Apache에 적용할 수 있습니다.

6. 방화벽 설정 및 웹 설치 마법사 접근

UFW 방화벽을 활성화하고 HTTP 포트(80)를 허용합니다.

sudo ufw enable
sudo ufw allow tcp/80
sudo ufw status

브라우저에서 http://yourdomain.com 을 열면 OrangeHRM 설치 마법사로 리디렉션됩니다.

OrangeHRM Welcome Page

설치 마법사에서 라이선스 동의, 데이터베이스 정보 입력, 시스템 체크, 관리자 계정 생성, 설정 확인, 설치 진행, 회사 정보 입력 순으로 진행합니다.

Accept license agreement

Database settings

System check

Create admin user

Confirm settings

Installation starts

Registration

OrangeHRM Dashboard

7. 설치 후 보안 및 하드닝 권장 사항

  • 파일 권한 최소화: 불필요한 디렉터리에 쓰기 권한 제거
  • HTTPS 적용: Let’s Encrypt(무료) 또는 상용 인증서 사용
  • 데이터베이스 원격 접속 금지: DB는 localhost로만 연결
  • 백업: DB와 애플리케이션 파일 정기 백업 스케줄 구성
  • 업데이트 정책: OS와 PHP, 웹서버 보안 패치 적용(가능하면 최신 LTS로 이전)
  • 웹 애플리케이션 방화벽(WAF) 적용을 고려

8. 마이그레이션 및 호환성 팁

  • Ubuntu 14.04에서 최신 Ubuntu LTS(예: 20.04, 22.04)로 마이그레이션 권장
  • PHP 버전 차이로 인한 코드 호환성 문제 확인: PHP7+에서 deprecated된 함수가 있는지 사전 점검
  • 데이터베이스 덤프를 사용해 안전하게 마이그레이션:
mysqldump -u root -p orangehrm_db > orangehrm_db.sql
# 새 서버에서 복원
mysql -u root -p orangehrm_db < orangehrm_db.sql

9. 역할별 체크리스트

시스템 관리자:

  • OS 패치 및 커널 업데이트 계획
  • SSL/TLS 적용 및 자동 갱신(예: certbot) 구성
  • 파일 퍼미션과 소유권 설정
  • 백업 및 모니터링 구성

HR 관리자 / 비개발자:

  • 설치 후 관리자 계정 생성 및 비밀번호 정책 적용
  • 샘플 데이터로 테스트 후 실제 데이터 이관
  • 사용자 및 권한 구조 설계

개발/통합 담당자:

  • 필요한 커스텀 모듈/플러그인 호환성 점검
  • SSO, LDAP, 이메일(SMTP) 연동 테스트

10. 테스트 케이스 및 수용 기준

수용 기준:

  • 설치 마법사가 오류 없이 완료되고 로그인 가능할 것
  • 관리자 대시보드가 정상 표시될 것
  • 기본 CRUD(직원 추가/수정/삭제)가 정상 동작할 것
  • 백업 및 복원 시 데이터 무결성 보장

기본 테스트 케이스:

  • 로그인: 관리자 계정으로 로그인 성공
  • DB 연결: 설정한 DB 정보로 정상 연결
  • 시스템 체크: 모든 필수 항목이 녹색 통과
  • 파일 업로드: 프로필 이미지 업로드(허용된 확장자) 성공

11. 일반적인 문제와 해결 방법

문제: 설치 마법사에서 시스템 체크가 실패함

  • PHP 모듈 미설치 또는 권한 문제일 수 있습니다. Apache 에러 로그(/var/log/apache2/)와 PHP 오류 로그를 확인하세요.

문제: 데이터베이스 연결 오류

  • DB 호스트, 포트, 사용자명, 비밀번호를 다시 확인하세요.
  • mysql -u orangehrm -p 로 직접 접속해 권한을 점검합니다.

문제: 스타일/정적 파일(이미지/CSS) 로드 실패

  • DocumentRoot와 파일 권한을 확인하세요. .htaccess가 차단하지 않는지 확인합니다.

12. 롤백 및 장애 대응 요령

  • 설치 전 전체 백업(파일 + DB)을 반드시 수행하세요.
  • 문제가 발생하면 백업에서 복원합니다.

롤백 절차 요약:

  1. Apache 중지: sudo /etc/init.d/apache2 stop
  2. 현재 웹 디렉터리 백업(예: orangehrm-bad)
  3. 백업 파일과 DB 덤프를 사용해 복원
  4. 권한 재설정, Apache 재시작

13. 대체 접근법 및 업그레이드 전략

  • 컨테이너화: Docker로 OrangeHRM를 컨테이너화하면 호환성 및 배포가 쉬워집니다.
  • 매니지드 서비스: 호스팅 업체의 LAMP/PHP 호스팅을 이용해 인프라 운영 부담을 줄일 수 있습니다.
  • Blue-Green 배포: 프로덕션 가용성을 높이려면 신규 인스턴스에서 검증 후 트래픽 전환을 권장합니다.

14. 의사결정 흐름도

flowchart TD
  A[서버 준비 여부] -->|없음| B[새 서버 배포 '권장 최신 LTS']
  A -->|있음| C[OS 버전 확인]
  C -->|14.04| D[설치 진행 + 마이그레이션 계획]
  C -->|>=16.04| E[최신 설치 절차 사용]
  D --> F{PHP 버전}
  F -->|<=5.6| G[원문 절차 적용]
  F -->|>=7.0| H[호환성 점검 및 모듈 업데이트]
  G --> I[테스트 및 보안 강화]
  H --> I

결론

이 가이드를 따라 Ubuntu 14.04 서버에 OrangeHRM을 설치하고 기본 설정과 보안 권장 사항을 적용할 수 있습니다. 그러나 Ubuntu 14.04의 보안 지원 종료 때문에 가능한 빠르게 최신 LTS로 이전하는 것이 안전합니다. 문제가 있거나 특정 통합(예: LDAP, SSO, 메일서버) 관련 질문이 있으면 알려주세요.

요약: 설치 단계(웹서버 → PHP → DB → 파일 배치 → 가상호스트 → 방화벽 → 설치 마법사)와 설치 후 보안/마이그레이션 권장 사항을 포함했습니다.

참고 이미지

설치 완료 후 로그인 페이지

중요: 설치 전 전체 백업을 권장합니다.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Debian 11에 Podman 설치 및 사용하기
컨테이너

Debian 11에 Podman 설치 및 사용하기

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정
시스템 관리

Apt-Pinning 간단 소개 — Debian 패키지 우선순위 설정

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드
그래픽 가이드

OptiScaler로 FSR 4 주입: 설치·설정·문제해결 가이드

Debian Etch에 Dansguardian+Squid(NTLM) 구성
네트워크

Debian Etch에 Dansguardian+Squid(NTLM) 구성

안드로이드 SD카드 설치 오류(Error -18) 완전 해결
안드로이드 오류

안드로이드 SD카드 설치 오류(Error -18) 완전 해결

KNetAttach로 원격 네트워크 폴더 연결하기
네트워킹

KNetAttach로 원격 네트워크 폴더 연결하기