テクノロジーガイド

OsTicket を Ubuntu 16.04 に Nginx + PHP-FPM7 + MySQL 5.7 でインストールする

3 min read インストール 更新されました 08 Oct 2025
Ubuntu 16.04でOsTicketをNginx+PHP-FPM7に導入
Ubuntu 16.04でOsTicketをNginx+PHP-FPM7に導入

重要: 本手順は Ubuntu 16.04 と特定バージョン(PHP 7.0 / MySQL 5.7)を対象としています。他のバージョンではパッケージ名やソケットパス、設定の差異に注意してください。

目的と想定読者

  • 目的: OsTicket を安定して公開できる形でセットアップすること。
  • 想定読者: Linux サーバー運用者、ヘルプデスク導入担当者、自己ホスト型のチケットシステムを導入したい開発/運用担当。

主要バージョン(ファクトボックス)

  • OS: Ubuntu 16.04
  • PHP: 7.0 (PHP-FPM)
  • Web サーバー: Nginx
  • DB: MySQL 5.7
  • OsTicket: v1.10

前提条件

  • Ubuntu 16.04 がインストールされている仮想マシンまたは物理サーバー
  • root 権限(または sudo 権限)
  • 外部に公開する場合は適切な DNS とファイアウォール設定

重要: 本手順ではパスワードやドメイン名の実例( osticket.hakase-labs.com / osticketpw@ )を使っています。実運用では必ず独自の安全な値に置き換えてください。

ステップ 1 — Nginx と MySQL のインストール

まずサーバーへ SSH 接続してパッケージを最新にし、Nginx と MySQL をインストールします。

サーバーにログイン:

ssh [email protected]

リポジトリを更新:

sudo apt-get update

Nginx と MySQL をインストール:

sudo apt-get install -y nginx mysql-server

MySQL の root パスワードを求められたら、安全なパスワードを入力してください。

Ubuntu の MySQL パスワード設定画面

サービスを再起動して有効化:

systemctl restart nginx  
systemctl restart mysql

systemctl enable nginx  
systemctl enable mysql

動作確認(ポートとプロセスを確認):

netstat -plntu

期待: ポート 80 が Nginx、ポート 3306 が MySQL によってリッスンされていること。

Nginx と MySQL が稼働している様子

注意: netstat が無ければ apt-get install net-tools で導入するか、ss コマンドを使ってください。

ステップ 2 — PHP-FPM7 のインストールと設定

OsTicket は複数の PHP 拡張を必要とします(gd, imap, xml, mbstring など)。PHP 7 と必要拡張をインストールし、PHP-FPM を Nginx で利用できるように設定します。

インストール:

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.ini を編集(PHP-FPM 用):

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

cgi.fix_pathinfo を有効化(値 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;  
        #  
        #       # With php7.0-cgi alone:  
        #       fastcgi_pass 127.0.0.1:9000;  
        #       # With php7.0-fpm:  
                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 情報が表示されることを確認してください。

PHP 情報画面

セキュリティ注意: phpinfo は詳細情報を公開するため、確認後は必ず削除してください。

ステップ 3 — OsTicket 用データベース作成

MySQL にログインして、OsTicket 用のデータベースとユーザーを作成します。

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 の sites-available に新しい仮想ホストファイルを作成します。例では osticket.hakase-labs.com を使用します。必ず自身のドメインや IP に置き換えてください。

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;  
        }  
}

root と server_name を自分の環境に合わせて書き換えてください。保存後は有効化して設定テストを行います。

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

systemctl restart nginx

エラーが出たら、nginx -t の出力を確認して修正してください。

ステップ 5 — OsTicket のダウンロードと準備

Web ルート用のディレクトリを作成し、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 のウェブインストール

ブラウザから仮想ホスト(例: http://osticket.hakase-labs.com)へアクセスすると、要件チェック画面が表示されます。必要な PHP 拡張が緑になっていることを確認してください。

OsTicket 要件チェック

不足がある場合は赤で表示されます。依存モジュールをインストールして再確認してください。

OsTicket 依存関係の不足例

「Continue」をクリックして設定画面へ進みます。システム情報、管理者アカウント、データベース情報を入力します。管理者メールはヘルプデスクのデフォルトメールと異なるアドレスに設定してください。

OsTicket 設定画面

データベース情報にはステップ 3 で作成した情報を入力します。

データベース設定画面

「Install Now」をクリックしてインストールを実行します。完了すると成功画面が表示されます。

インストール完了画面

インストール後、setup ディレクトリを削除またはリネームし、設定ファイルのパーミッションを適切に設定します:

cd /var/www/osticket/upload/

mv setup/ setup-sh/  
chmod 0644 include/ost-config.php

これでインストールは完了です。

ステップ 7 — 動作確認と管理画面

OsTicket ホームページ

管理画面ログイン

エージェント画面

管理設定

トラブルシューティングとよくある失敗例

  • PHP 拡張不足: 要件画面で赤表示。該当拡張を apt で追加インストールし、php-fpm を再起動。
  • パーミッションエラー: web サーバーユーザー(www-data)に所有権を与えるか、必要最小限の書き込み権限のみ付与する。
  • Nginx エラー: nginx -t を実行して設定の文法エラーを確認。ログは /var/log/nginx/error.log を参照。
  • DB 接続エラー: ユーザー名、パスワード、ホスト(localhost)を再確認。MySQL の権限が正しく付与されているか確認する。

セキュリティ強化のチェックリスト

  • セキュアな TLS 設定: Let’s Encrypt 等で HTTPS を有効化し、HTTP を HTTPS にリダイレクトする。
  • ファイアウォール: 80/443 のみ許可し、不要なポートは閉じる(ufw 推奨)。
  • MySQL の root アクセス制限: リモート root ログインは無効化。
  • 設定ファイルの保護: include/ost-config.php のパーミッションを 0640 または 0644 に設定し、公開ディレクトリから直接読めないようにする。
  • phpinfo の削除: デバッグ用ファイルは本番で残さない。
  • 定期バックアップ: DB と upload 添付ファイルを定期的にバックアップ。

運用上のベストプラクティス(ロール別チェックリスト)

管理者(Admin):

  • 初期管理者アカウントの 2 要素認証(プラグインや外部サービスで対応)
  • 定期的に管理者メールを監査
  • 権限/ロールを最小化

運用担当(DevOps):

  • サーバー監視(プロセス/ディスク容量/ログ)
  • 自動バックアップと復旧手順の整備
  • セキュリティパッチ適用スケジュール

エージェント:

  • テンプレートと SLA の設定を事前定義
  • 添付ファイルの取り扱いポリシーを整備

受け入れ基準

  • Web ルートにアクセスして OsTicket のトップページが表示されること。
  • 管理者アカウントでログインでき、管理設定画面へアクセスできること。
  • 新規チケットを作成し、エージェント側で受信・更新できること。
  • データベース接続が正常で、インストール時のエラーがないこと。

移行やアップグレードの注意点

  • OsTicket のメジャーバージョン変更時は、事前にステージング環境で検証する。
  • PHP と MySQL のバージョン変更は互換性を確認。特に PHP 7.1+ の挙動差異に注意。
  • カスタムテンプレートやプラグインはアップグレード前にエクスポートしておく。

簡易運用プレイブック(SOP)

  1. 日次: ログ確認、ディスク空き容量確認
  2. 週次: バックアップ作成(DB + 添付ファイル)
  3. 月次: パッケージのアップデートと再起動手順の検証
  4. 障害発生時: まずサービス状態(systemctl status nginx|mysql|php7.0-fpm)、ログ確認、最後のバックアップからのリストア手順準備

ミニ用語集(1 行定義)

  • PHP-FPM: PHP を FastCGI として効率的に動かすためのプロセスマネージャ。
  • Nginx: 高性能な HTTP サーバー/リバースプロキシ。
  • OsTicket: PHP ベースのオープンソースのサポートチケットシステム。

参考リンク


要約:

  1. 必要パッケージ(Nginx, MySQL, PHP-FPM と拡張)をインストールして設定する。
  2. MySQL に OsTicket 用 DB とユーザーを作成。
  3. Nginx 仮想ホストを作成し、OsTicket をダウンロードして配置、ウェブインストールを実行。
  4. インストール後はセキュリティ強化とバックアップ運用を必ず行う。
共有する: X/Twitter Facebook LinkedIn Telegram
著者
編集

類似の素材

CentOS7でNginx+PHP‑FPM7+MariaDBにMoodle3.2を導入
システム構築

CentOS7でNginx+PHP‑FPM7+MariaDBにMoodle3.2を導入

Windows起動でプログラムが自動起動しない時の対処法
Windows

Windows起動でプログラムが自動起動しない時の対処法

プリインストールアプリを削除・無効化する方法
モバイル

プリインストールアプリを削除・無効化する方法

Warzone Dev Error 6068を修正する完全ガイド
ゲームトラブル

Warzone Dev Error 6068を修正する完全ガイド

WindowsでPowerShellのバージョンを確認する方法
システム管理

WindowsでPowerShellのバージョンを確認する方法

Edge に拡張機能を手動でインストールする方法
ブラウザ

Edge に拡張機能を手動でインストールする方法