기술 가이드

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
저자
편집

유사한 자료

Windows 시작 프로그램이 실행되지 않을 때 해결법
Windows

Windows 시작 프로그램이 실행되지 않을 때 해결법

안드로이드·iOS 사전설치 앱 안전 제거 가이드
모바일 팁

안드로이드·iOS 사전설치 앱 안전 제거 가이드

Dev Error 6068 해결: Warzone 충돌 완전 가이드
게임

Dev Error 6068 해결: Warzone 충돌 완전 가이드

Windows에서 PowerShell 버전 확인하기
시스템 관리

Windows에서 PowerShell 버전 확인하기

Microsoft Edge에서 확장 수동 설치 가이드
브라우저 가이드

Microsoft Edge에서 확장 수동 설치 가이드

Ubuntu 16.04에 OsTicket 설치 가이드
튜토리얼

Ubuntu 16.04에 OsTicket 설치 가이드