기술 가이드

Ubuntu 16.04에 OsTicket 설치 및 설정 가이드

4 min read 튜토리얼 업데이트됨 08 Oct 2025
Ubuntu 16.04에 OsTicket 설치 가이드
Ubuntu 16.04에 OsTicket 설치 가이드

중요: 예제 명령은 루트 또는 sudo 권한으로 실행합니다. 도메인, 비밀번호, 경로는 운영 환경에 맞게 바꿔야 합니다.

목적과 관련 검색어

  • 주요 의도: Ubuntu 16.04에 osTicket 설치
  • 관련 변형: osTicket 설치 가이드, osTicket nginx 설정, osTicket php-fpm, osTicket MySQL 설정, osTicket 배포

사전 요구 사항

  • Ubuntu 16.04 시스템 (root 또는 sudo 권한)
  • PHP-FPM 7.x, Nginx, MySQL 5.7 사용 예제
  • 도메인 이름(예: osticket.example.com)을 소유하거나 /etc/hosts로 테스트할 수 있어야 함

1단계 - Nginx와 MySQL 설치

서버에 SSH로 접속합니다:

ssh [email protected]

패키지 목록을 업데이트합니다:

sudo apt-get update

Nginx와 MySQL 서버를 설치합니다:

sudo apt-get install -y nginx mysql-server

설치 중 MySQL 루트 암호를 입력하라는 프롬프트가 나오면 안전한 암호를 설정하세요.

Ubuntu에서 MySQL 루트 암호 설정 화면

서비스를 재시작하고 부팅 시 자동 시작을 활성화합니다:

systemctl restart nginx
systemctl restart mysql
systemctl enable nginx
systemctl enable mysql

포트 확인으로 서비스 상태를 점검합니다:

netstat -plntu

포트 80은 Nginx, 포트 3306은 MySQL에 사용 중인 것을 확인할 수 있습니다.

Nginx(포트80)과 MySQL(포트3306) 실행 상태 예시

2단계 - PHP-FPM 7 설치 및 구성

osTicket은 몇 가지 PHP 확장을 필요로 합니다. 예: php-gd, imap, xml, mbstring 등. PHP-FPM과 필요한 확장을 설치합니다:

sudo apt-get install -y php7.0-cli php7.0-mysql php7.0-cgi php7.0-fpm php7.0-gd php7.0-imap php7.0-xml php7.0-mbstring php7.0-intl php-apcu

PHP 설정 파일을 편집합니다:

cd /etc/php/7.0/
vim fpm/php.ini

다음 줄의 주석을 제거하고 값을 0으로 설정합니다:

cgi.fix_pathinfo=0

파일을 저장하고 종료한 뒤 PHP-FPM을 재시작하고 자동 시작을 설정합니다:

systemctl restart php7.0-fpm
systemctl enable php7.0-fpm

이제 Nginx 가상호스트 설정에서 PHP-FPM 소켓을 사용하도록 구성해야 합니다. 기본 가상호스트 파일을 편집합니다:

cd /etc/nginx/sites-available/
vim default

php 처리 섹션을 활성화하거나 다음과 같은 블록을 포함하도록 수정합니다:

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

설정을 저장하고 Nginx를 재시작합니다:

systemctl restart nginx

PHP 동작을 확인하려면 웹 루트에 phpinfo 파일을 생성합니다:

cd /var/www/html/
echo '' > info.php

웹브라우저에서 http://서버_IP/info.php 를 열어 PHP 구성 정보를 확인합니다.

phpinfo() 출력 화면 — PHP 구성 정보

Note: 설치 완료 후 보안을 위해 info.php 파일을 삭제하세요.

3단계 - osTicket용 데이터베이스 생성

MySQL 루트 계정으로 로그인합니다:

mysql -u root -p
TYPE YOUR PASSWORD

데이터베이스와 사용자를 생성합니다(예제 이름 사용):

create database osticket_db;
create user osticket@localhost identified by 'osticketpw@';

해당 사용자에게 데이터베이스 권한을 부여합니다:

grant all privileges on osticket_db.* to osticket@localhost identified by 'osticketpw@';
flush privileges;

데이터베이스와 사용자가 생성되면 MySQL 셸을 종료합니다.

osTicket용 데이터베이스와 사용자 생성 예시

보안 권고: 실제 배포에서는 강력한 비밀번호를 사용하고, 원격 접속이 필요 없다면 localhost로 제한하세요.

4단계 - osTicket용 Nginx 가상호스트 생성

Nginx 가상호스트 디렉터리에서 새 파일을 만듭니다:

cd /etc/nginx/sites-available/
vim osticket

다음 내용을 붙여넣습니다. 도메인과 루트 디렉터리를 환경에 맞게 바꿉니다:

server {
  listen 80;
        server_name osticket.hakase-labs.com;

        root   /var/www/osticket/upload;

        access_log  /var/log/nginx/access.log;
        error_log  /var/log/nginx/error.log;

        index index.php;
        client_max_body_size 2000M;
        client_body_buffer_size 100M;
        client_header_buffer_size 10M;
        large_client_header_buffers 2 10M;

        client_body_timeout 12;
        client_header_timeout 12;
        keepalive_timeout 15;
        send_timeout 10;

        gzip             on;
        gzip_comp_level  2;
        gzip_min_length  1000;
        gzip_proxied     expired no-cache no-store private auth;
        gzip_types       text/plain application/x-javascript text/xml text/css application/xml;

        set $path_info "";

        location ~ /include {
            deny all;
            return 403;
        }

        if ($request_uri ~ "^/api(/[^\?]+)") {
            set $path_info $1;
        }

        location ~ ^/api/(?:tickets|tasks).*${
            try_files $uri $uri/ /api/http.php?$query_string;
        }

        if ($request_uri ~ "^/scp/.*\.php(/[^\?]+)") {
            set $path_info $1;
        }

        location ~ ^/scp/ajax.php/.*$ {
            try_files $uri $uri/ /scp/ajax.php?$query_string;
        }

        location / {
            try_files $uri $uri/ index.php;
        }

        location ~ \.php$ {
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
            fastcgi_param  PATH_INFO    $path_info;
        }
}

위 예제는 도메인 osticket.hakase-labs.com과 웹 루트 /var/www/osticket/upload를 사용합니다. 운영 환경에 맞게 server_name과 root를 변경하세요.

파일을 저장한 뒤 심볼릭 링크로 활성화하고 문법을 검사합니다:

ln -s /etc/nginx/sites-available/osticket /etc/nginx/sites-enabled/
nginx -t
systemctl restart nginx

5단계 - osTicket 다운로드 및 웹 파일 준비

웹 루트 디렉터리를 만들고 osTicket 패키지를 다운로드합니다:

mkdir -p /var/www/osticket/
cd /var/www/osticket/
wget http://osticket.com/sites/default/files/download/osTicket-v1.10.zip
unzip osTicket-v1.10.zip

압축을 풀면 웹 파일이 upload/ 디렉터리에 위치합니다. 샘플 구성 파일을 복사합니다:

cd upload/
cp include/ost-sampleconfig.php include/ost-config.php

웹 서버 사용자(www-data)로 소유권을 변경합니다:

cd /var/www/osticket/
chown -R www-data:www-data upload/

파일 권한과 소유권은 보안과 운영 요구에 따라 조정하세요.

6단계 - osTicket 설치 마법사 실행

브라우저에서 도메인으로 접속합니다. 예시:

h77p://osticket.hakase-labs.com

설치 요구사항이 녹색(충족)인지 확인하세요.

osTicket 필수 모듈 설치 여부 확인(녹색 표시)

의존성이 누락된 경우 빨간색으로 표시됩니다. 누락 모듈을 설치한 뒤 새로고침하세요.

osTicket 누락 의존성(빨간 표시) 예시

‘Continue’를 클릭하면 구성 화면이 나타납니다. System Settings와 Admin User 항목을 채우세요. HelpDesk 이름과 기본 발신 이메일을 입력하고, 관리자 이메일은 다른 주소를 사용합니다.

osTicket 시스템 및 관리자 설정 화면

데이터베이스 설정에는 3단계에서 생성한 데이터베이스, 사용자, 비밀번호를 입력합니다.

osTicket 설치 중 데이터베이스 설정 입력 화면

‘Install Now’ 버튼을 클릭하고 설치가 완료될 때까지 기다립니다.

osTicket 설치 완료 화면

설치가 완료되면 setup 디렉터리를 제거하거나 이름을 변경하고 구성 파일 권한을 적절히 설정합니다:

cd /var/www/osticket/upload/
mv setup/ setup-sh/
chmod 0644 include/ost-config.php

이제 설치가 끝났습니다.

7단계 - 테스트 및 확인

홈 페이지 접속:

http://osticket.hakase-labs.com/

관리자 로그인:

http://osticket.hakase-labs.com/scp/

에이전트(담당자) 패널:

http://osticket.hakase-labs.com/scp/index.php

관리자 설정 페이지:

http://osticket.hakase-labs.com/scp/settings.php

이미지 예시:

osTicket 홈페이지 대시보드

osTicket 관리자 로그인 페이지

osTicket 에이전트(담당자) 패널

osTicket 관리자 설정 페이지

문제 해결 체크리스트

  • Nginx가 80 포트를 점유하고 있는지 확인: sudo systemctl status nginx
  • PHP-FPM 소켓 경로(/run/php/php7.0-fpm.sock)가 정확한지 확인
  • 파일 소유권이 www-data로 설정되어 있는지 확인: sudo chown -R www-data:www-data /var/www/osticket/upload
  • MySQL 연결 에러 시 credentials와 호스트(localhost/127.0.0.1)를 재확인
  • 설치 중 누락된 PHP 확장 모듈은 apt-get으로 추가 설치 후 php-fpm 재시작

보안 권장사항

  • 설치 후 /var/www/html/info.php 파일 삭제
  • setup/ 디렉터리는 반드시 제거하거나 접근 차단
  • HTTPS 적용: Let’s Encrypt 또는 다른 인증서로 TLS 적용을 권장
  • MySQL 원격 접속 불필요 시 비활성화 또는 방화벽 규칙으로 제한
  • 주기적인 패키지 및 보안 업데이트 수행: sudo apt-get update && sudo apt-get upgrade

대체 접근 방식과 확장 팁

  • Apache 대신 Nginx를 사용하는 이유: 경량 및 성능, 리버스 프록시 활용 가능
  • Docker 컨테이너로 배포하면 환경 일관성과 이식성이 향상됨(운영 환경에 따라 고려)
  • LDAP/Active Directory 인증을 사용하려면 osTicket의 LDAP 플러그인을 활성화하고 외부 디렉터리와 연동

롤백 및 업그레이드 팁

  • 업그레이드 전 파일과 DB 백업을 반드시 수행: mysqldump 및 웹 루트 전체 복사
  • 업그레이드 실패 시 DB 덤프와 웹 루트 복사본으로 빠르게 롤백

간단 운영 체크리스트 (역할별)

  • 운영팀: 시스템 업데이트, 백업 스케줄, 방화벽 규칙 점검
  • 개발/통합팀: API 엔드포인트 테스트, 플러그인 호환성 확인
  • 고객지원팀: 관리자 계정으로 로그인 테스트, 이메일 알림 정상 수신 확인

짧은 용어집

  • PHP-FPM: PHP를 FastCGI 프로세스 매니저로 실행하는 방식
  • Nginx: 경량 웹서버 및 리버스 프록시
  • ost-config.php: osTicket 구성 파일

결론 요약

osTicket은 비교적 가벼운 PHP 기반 헬프데스크 솔루션입니다. Ubuntu 16.04 환경에서 Nginx + PHP-FPM 7 + MySQL 5.7로 안정적으로 동작합니다. 본 가이드를 따라 설치하면 기본 운영이 가능한 상태까지 구성할 수 있으며, 보안과 백업 절차를 반드시 병행하세요.

추가 링크

Notes: 설치와 운영 중 서비스 이름, 포트, 도메인, 파일 권한은 환경별로 반드시 확인하고 조정하세요.

공유하기: 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로 원격 네트워크 폴더 연결하기