Ubuntu 14.04 サーバーに OrangeHRM をインストールする方法
重要: Ubuntu 14.04 は既に公式サポートが終了しています。可能ならばサポート期間内の LTS(例: Ubuntu 20.04/22.04)への移行を検討してください。手順は 14.04 向けに記載しています。
概要
OrangeHRM は従業員の勤怠、評価、採用、年次査定などを管理するウェブベースのオープンソース人事管理ソフトウェア(HRMS)です。Linux と Windows の両方で動作します。エディションは Community(Open Source)版、Professional、Enterprise などがあります。本手順は OrangeHRM 3.3.3(ソースでは stable/3.3.3 を使用)を Ubuntu 14.04 サーバーに導入する際の実務的なガイドです。
用語(1 行定義)
- LTS: 長期サポート版(Long Term Support)。
- UFW: Ubuntu 標準の簡易ファイアウォールフロントエンド。
目的と対象読者
目的: 自前サーバーに OrangeHRM を導入して社内で運用できるようにする。対象: サーバー管理者、DevOps、社内 IT 担当者。
前提条件
- 新規または検証用の Ubuntu 14.04 サーバーが用意されていること。(本番では最新の LTS を推奨)
- PHP > 5.5.0 対応(本手順は php5 系を使用)
- Apache と MariaDB(または MySQL)が利用可能
- sudo 権限を持つユーザー
チェック: サーバーがインターネットに接続されていること、ファイアウォールで必要ポートが許可可能なこと。
1. システムの更新
まずパッケージとシステムを最新にします。長い運用の前には必ず更新してください。
sudo apt-get update -y
sudo apt-get upgrade -y更新後、必要であれば再起動してから sudo ユーザーでログインし直してください。
重要: 本番環境ではアップグレード前にスナップショットやバックアップを取得してください。
2. Apache のインストール
OrangeHRM はウェブアプリケーションなので 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 defaults3. PHP のインストール
OrangeHRM は PHP 5.5 以上を必要とします。Ubuntu 14.04 のパッケージリポジトリにある php5 を利用する手順です。
sudo apt-get install php5 php5-cli php5-common php5-json php5-mysql php5-readline -yインストール後、必要に応じて php.ini(例: /etc/php5/apache2/php.ini)で memory_limit、upload_max_filesize、max_execution_time を調整します。
推奨値(目安):
- memory_limit = 128M 以上
- upload_max_filesize = 20M 以上
- max_execution_time = 120
4. MariaDB のインストールと初期設定
OrangeHRM はデータを MariaDB/MySQL に保存します。MariaDB サーバーをインストールして初期設定を行います。
sudo apt-get install mariadb-server -yサービスの起動と自動起動設定:
sudo /etc/init.d/mysql start
sudo update-rc.d mysql defaultsMariaDB はデフォルトのままだと安全でないため、mysql_secure_installation を実行して基本的な保護を行います。
sudo mysql_secure_installationスクリプトの中でパスワード設定、匿名ユーザー削除、リモート root ログイン禁止、test データベース削除、権限テーブルのリロードなどを行います。提示される質問には基本的に「Y(または Y/n の Y)」で応答します。
コンソール出力(例)が表示されますが、そのまま指示に従ってください。
データベースとユーザーの作成
MariaDB にログインして OrangeHRM 用のデータベースとユーザーを作成します。
mysql -u root -pプロンプトでパスワードを入力後、以下を実行します。
CREATE DATABASE orangehrm_db;
CREATE USER 'orangehrm'@'localhost' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON orangehrm_db.* TO 'orangehrm'@'localhost';
FLUSH PRIVILEGES;
\q注意: ‘your-password’ は実運用では推測されにくいものに置き換えてください。パスワードは安全に保管します。
5. OrangeHRM のダウンロードと配置
まず OrangeHRM の安定版アーカイブをダウンロードします(この例は v3.3.3)。
wget https://excellmedia.dl.sourceforge.net/project/orangehrm/stable/3.3.3/orangehrm-3.3.3.zipダウンロード後に展開し、Apache のドキュメントルートへ移動します。
unzip orangehrm-3.3.3.zip
sudo mv orangehrm-3.3.3 /var/www/html/orangehrmディレクトリの所有権とパーミッションを設定します。運用では 777 を避け、最小権限に留めることを推奨します。
sudo chown -R www-data:www-data /var/www/html/orangehrm
sudo chmod -R 775 /var/www/html/orangehrm注: 元の手順では 777 を指定していますが、セキュリティ上の観点から 775 や明示的な所有者設定を推奨します。ファイルアップロードやキャッシュ保存のために特定ディレクトリだけ writable にする(例: /var/www/html/orangehrm/upload)方が安全です。
6. Apache の仮想ホスト設定
OrangeHRM 用の仮想ホスト(example: yourdomain.com)を作成します。
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次の点を確認してください。
- mod_rewrite が必要な場合は有効化する(sudo a2enmod rewrite)。
- AllowOverride All により .htaccess を利用できます。
7. ファイアウォール設定とウェブインストーラへのアクセス
OrangeHRM は通常 HTTP(ポート 80)で動作します。UFW を有効にしてポート 80 を許可します。
sudo ufw enable
sudo ufw allow tcp/80
sudo ufw statusブラウザで http://yourdomain.com にアクセスすると、OrangeHRM のインストールウィザードにリダイレクトされます。
ウェブインストーラの流れ(画面例)

ウェルカム画面で “Next” をクリックします。ライセンス表示で “I Accept” を選択し、データベース設定画面に進みます。

データベースホスト、ポート、データベース名、ユーザー名、パスワードを入力します。

システムチェックですべての項目が緑(OK)であることを確認します。

管理者アカウントを作成します。

設定確認後、インストールを開始します。

インストール進行中の画面。

会社情報を入力して完了します。

ログイン画面が表示されます。管理者でサインインしてください。

ログイン後のダッシュボード。

運用前チェックリスト(導入確認)
- Apache + PHP のバージョンとモジュールが満たされている
- MariaDB の root パスワードは設定済み
- OrangeHRM ディレクトリの所有者とパーミッションが適切
- ファイアウォールで HTTP が許可されている
- 初回ログインで管理者アカウントを作成した
- 定期バックアップ方針を決めた(DB とファイル)
セキュリティとハードニング(推奨)
- 可能であれば HTTPS(Let’s Encrypt 等)を必ず導入する。
- /var/www/html/orangehrm のうちアップロード用ディレクトリだけ書き込み許可にする。
- データベースの汎用ユーザーには最低限の権限を付与する(本手順は簡易のため GRANT ALL を使用。実運用では限定した権限を検討)。
- 管理者アカウントは複雑なパスワードにし、必要なら二要素認証(アプリ側 or LDAP/SSO 統合)を検討する。
- 定期的にログを監視し、古いアクセスログやインストール済みファイルの整合性を確認する。
トラブルシュート(よくある問題と対処)
- 画面が 500 エラーになる: /var/log/apache2/error.log を確認。PHP モジュールの不足やパーミッションが原因のことが多い。
- データベース接続エラー: MariaDB のユーザー、ホスト(localhost)設定、パスワード、DB 名を再確認。mysql コマンドで直接ログインして動作検証する。
- インストールウィザードでシステムチェックが赤になる: php.ini の設定(memory_limit 等)や拡張モジュールが不足している可能性あり。
- アップロードが失敗する: アップロード先ディレクトリの書き込み権限を確認。
代替アプローチ
- Docker を使う: コンテナ化することで OS 間の互換性や依存関係を管理しやすくなります。公式イメージがない場合は PHP+Apache+MariaDB の docker-compose を作成して運用可能です。
- パッケージ管理・構成管理ツール: Ansible や Puppet を使い自動化して、再現性のあるデプロイを行う。
移行とバックアップのポイント
- DB の定期的なダンプ(mysqldump)とアプリケーションファイルのバックアップをスクリプト化する。
- バージョンアップ時は、まず検証環境でアップグレード手順を試し、互換性問題がないか確認する。
運用ロール別チェックリスト
- サーバー管理者: OS とミドルウェアの更新、バックアップスケジュール、監視の設定。
- アプリ管理者: OrangeHRM のユーザー管理、設定変更の監査、データエクスポート。
- セキュリティ担当: SSL/TLS 設定、脆弱性スキャン、ログ監査。
いつこの手順が向かないか(反例)
- 既に新しい LTS(20.04/22.04 等)へ移行可能な場合は、古い 14.04 を使い続けないでください。
- 大規模なマルチテナントや高可用性が必要な場合は、単一サーバー構成では不十分でありロードバランサーや DB レプリケーション、ステートレス化が必要です。
参考手順の短い SOP(運用時の基本手順)
- 週次で apt-get update/upgrade を検討し、保守時間に実施
- 毎日 DB ダンプ(例: mysqldump)を別ストレージに保存
- 月次でログローテーションとストレージ使用状況の確認
- アップデート前にステージング環境で動作確認
1 行用語集
- OrangeHRM: オープンソースの人事管理システム(HRMS)。
結論
このガイドに従えば、Ubuntu 14.04 サーバーに OrangeHRM を導入して初期運用を開始できます。導入後はセキュリティ強化、バックアップ設計、監視の整備を行い、安全に運用してください。移行の余地があるなら新しい LTS へのアップグレードを強く推奨します。
まとめ: 本手順はインストールから初期構成、セキュリティと運用の観点までカバーしています。問題が発生したらログを確認し、まずはローカルやステージング環境で再現を試みてください。
重要: 質問や不明点があれば、具体的なエラーメッセージやログ抜粋を示して問い合わせると早く解決できます。