はじめに
記念すべきTechブログの最初の記事として、Liferayのインストール方法について記載します。
本ブログ執筆時点で最新でLTSバージョンでもあるDXP 2025 Q1.0をインストールします。
インストールするOSはWSL上のAlmalinuxですが、それ以外のミドルウェアおよびバージョンはLiferay DXPのCompatibility Matrixに準拠しています。
前提
この記事は以下の方を対象にしています。
- Liferay DXPのサブスクリプション契約をされている方
- RHEL互換Linuxディストリビューション環境にLiferayのインストールをする方
また、以下については記載しません。
- Elasticsearchのクラスタリング設定
- Dockerでの環境構築手順
- WSLの設定
インストール環境

Javaのインストール
Compatibility MatrixによるとLiferayはDXP 2024 Q3からJava11以前のサポートが廃止されました。
また、推奨はJava21との記載があることからJava21をインストールします。
まず、OSの標準リポジトリからインストール可能なJava 21を取得します
sudo dnf search java-21-openjdk
============== Name Exactly Matched: java-21-openjdk =================
java-21-openjdk.x86_64 : OpenJDK 21 Runtime Environment
============== Name Matched: java-21-openjdk ==========================
java-21-openjdk-demo.x86_64 : OpenJDK 21 Demos
java-21-openjdk-demo-fastdebug.x86_64 : OpenJDK 21 Demos optimised with full debugging on
java-21-openjdk-demo-slowdebug.x86_64 : OpenJDK 21 Demos unoptimised with full debugging on
java-21-openjdk-devel.x86_64 : OpenJDK 21 Development Environment
java-21-openjdk-devel-fastdebug.x86_64 : OpenJDK 21 Development Environment optimised with full debugging
: on
(以下略)
出力結果からJREであるjava-21-openjdkとJDKであるjava-21-openjdk-develをインストールします。
sudo dnf install -y java-21-openjdk java-21-openjdk-devel
もし、すでに過去バージョンのJavaをインストールしている場合はalternativeコマンドでデフォルトを切り替えて運用してください。
これで過去バージョンのLiferay と切り替えながら利用も可能です。
# 引数を適宜javaおよびjavacで利用
sudo alternatives --config javac
There are 3 programs which provide 'javac'.
Selection Command
-----------------------------------------------
*+ 1 java-21-openjdk.x86_64 (/usr/lib/jvm/java-21-openjdk-21.0.6.0.7-1.el9.alma.1.x86_64/bin/javac)
2 java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.25.0.9-3.el9.x86_64/bin/javac)
3 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.442.b06-2.el9.x86_64/bin/javac)
Enter to keep the current selection[+], or type selection number:
以下の出力が確認できればOKです
java -version
openjdk version "21.0.6" 2025-01-21 LTS
OpenJDK Runtime Environment (Red_Hat-21.0.6.0.7-1) (build 21.0.6+7-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-21.0.6.0.7-1) (build 21.0.6+7-LTS, mixed mode, sharing)
javac -version
javac 21.0.6
MySQLのインストール
ローカルマシン運用でLiferayに同梱されているhypersonicを利用する場合はこの章を読み飛ばしても構いません。
執筆時点の最新版MySQL9.2はまだLiferayのCompatibility Matrixに記載がないのでMySQL8.0を採用します。
執筆時点のAlmalinux9.5だと標準リポジトリに以下のようにMySQL8.0が含まれています。
dnf info mysql-server
Last metadata expiration check: 0:12:03 ago on Thu Feb 27 10:04:20 2025.
Installed Packages
Name : mysql-server
Version : 8.0.41
Release : 2.el9_5
Architecture : x86_64
Size : 108 M
Source : mysql-8.0.41-2.el9_5.src.rpm
Repository : @System
From repo : appstream
Summary : The MySQL server and related files
URL : http://www.mysql.com
License : GPLv2 with exceptions and LGPLv2 and BSD
Description : MySQL is a multi-user, multi-threaded SQL database server. MySQL is a
: client/server implementation consisting of a server daemon (mysqld)
: and many different client programs and libraries. This package contains
: the MySQL server and some accompanying files and directories.
以下のコマンドでインストールします。
sudo dnf install -y mysql-server
もし、テーブルの大文字小文字の区別をなくしたい場合は、この時点で設定ファイルの登録を行います。一度起動すると設定が適用されません。
sudo vi /etc/my.cnf.d/mysql-server.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/run/mysqld/mysqld.pid
lower_case_table_names=1 # この行を追加
サービスに登録して自動起動設定を行います。
sudo systemctl enable mysqld
MySQLを起動します。
sudo systemctl start mysqld
ログから、初回起動時に生成されるrootユーザーの初期パスワードを確認します。
「A temporary password is generated for root@localhost:」の後ろに記載されている文字列が初期パスワードです
head -n 5 /var/log/mysql/mysqld.log
2023-10-04T09:47:01.647903Z 0 [System] [MY-013169] [Server] /usr/libexec/mysqld (mysqld 8.0.41) initializing of server in progress as process 11512
2023-10-04T09:47:01.660447Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-10-04T09:47:02.423703Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-10-04T09:47:05.032024Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ************
2023-10-04T09:47:48.121495Z 0 [System] [MY-010116] [Server] /usr/libexec/mysqld (mysqld 8.0.41) starting as process 11658
ローカル運用でセキュリティ強化の必要がなければ読み飛ばしてもよいですが、mysql_secure_installationを使ってセキュリティ設定を行います。
sudo mysql_secure_installation
# rootのパスワード設定
Enter password for user root: [初期パスワードを入力]
New password: [新パスワードを入力]
Re-enter new password: [新パスワードの再入力]
# 入力した新パスワードの評価
# 数字、小文字、大文字、記号を含めていれば100の評価になる
Estimated strength of the password: 100
# 入力したパスワードで問題なければ"y"
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y
# 匿名ユーザーを削除する場合は "y"
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
# localhost以外からのrootアクセスを禁止する場合は"y"
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
# テスト用のデータベースを削除する場合は"y"
Remove the test database and access to it? (Press y|Y for Yes, any other key for No) : y
# 権限情報を今すぐ更新する場合は"y"
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
rootユーザーでログインします。
mysql -u root -p
Liferay用のデータベースを作成します。(※)
ここでは”lportal”という名前で作成します。
CREATE DATABASE lportal;
Liferay用の接続ユーザーを作成します。(※)
利用用途の接続元に合わせてユーザー名に”@接続元ホスト名”を設定ください。
ここではlocalhostからのアクセスのみを許可する構成とします。
CREATE USER liferay@localhost IDENTIFIED BY '[パスワード]';
作成したユーザーに対してデータベースの全権限を付与します。(※)
また、権限付与状況を確認します。
GRANT ALL ON lportal.* TO liferay@localhost;
SHOW GRANTS FOR liferay@localhost;
+---------------------------------------------------------------------+
| Grants for liferay@localhost |
+---------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `liferay`@`localhost` |
| GRANT ALL PRIVILEGES ON `lportal`.* TO `liferay`@`localhost` |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)
※ mysql上での操作です
Elasticsearchのインストール
ローカルマシン運用でLiferayに同梱されているsidecar版のElasticsearchを利用する場合はこの章を読み飛ばしても構いません。
なお、本番環境でのsidecar版のElasticsearchの利用はサポートの対象外となりますので推奨しません。
Almalinuxの標準リポジトリにElasticsearchのパッケージは含まれていないので、Elasticsearch8用のリポジトリを追加します。
まずはElasticsearch用リポジトリのGPG keyをインポートします。
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Elasticsearch用のリポジトリを追加します。
sudo vi /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-8.x]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
リポジトリを指定してElasticsearchをインストールします。
sudo dnf check-update --enablerepo=elasticsearch-8.x
sudo dnf install elasticsearch --enablerepo=elasticsearch-8.x -y
Liferayの利用に必要なプラグインをインストールします。
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-smartcn
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-stempel
プラグインがインストールできていることを確認します。
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin list
analysis-icu
analysis-kuromoji
analysis-smartcn
analysis-stempel
Liferay用のクラスタ設定を追記します。
ここではスタンドパローン運用の想定で”single-node”としていますが、クラスタリング構成の場合は適宜設定ください。
sudo vi /etc/elasticsearch/elasticsearch.yml
cluster.name: LiferayElasticsearchCluster
discovery.type: single-node
transport.port: 9300
サービス化して起動します。
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
Liferayからの接続ユーザー(elastic)のパスワード設定を行います。
/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic -i
This tool will reset the password of the [elastic] user.
You will be prompted to enter the password.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:[パスワードを入力]
Re-enter password for [elastic]:[パスワードを再入力]
Password for the [elastic] user successfully reset.
Liferay DXPのインストール
LiferayのHelp Centerから最新のQuartely Releaseをダウンロードします。
ここでは執筆時点の最新のLTSバージョンであるDXP 2025.Q1.0 Quarterly ReleaseのTomcatバンドル版を選択します。
Liferay起動用のグループおよびユーザーを作成します。
ここでは、”liferay”という名前で定義します。
sudo groupadd liferay
sudo useradd -s /bin/nologin -g liferay -d /opt/liferay-dxp liferay
任意の場所にダウンロードしたtar.gz形式のアーカイブを展開します。
ここでは以下を前提とします。
- ダウンロード資材パス:/home/matt/liferay-dxp-tomcat-2025.q1.0-lts-1739837301.tar.gz
- 展開先ディレクトリ:/opt
cd /opt
tar xvzf /home/matt/liferay-dxp-tomcat-2025.q1.0-lts-1739837301.tar.gz
展開すると以下のようなディレクトリ構成になります。
ll liferay-dxp
total 31M
drwxr-x--- 6 matt matt 4.0K Feb 27 14:36 data
drwxr-xr-x 2 matt matt 4.0K Feb 27 14:35 deploy
drwxr-xr-x 3 matt matt 4.0K Feb 18 09:21 elasticsearch-sidecar
drwxr-xr-x 4 matt matt 4.0K Feb 18 09:19 glowroot
drwxr-xr-x 2 matt matt 4.0K Feb 18 09:25 license
drwxr-x--- 3 matt matt 4.0K Feb 27 12:49 logs
drwxr-xr-x 11 matt matt 4.0K Feb 27 12:49 osgi
drwxr-xr-x 5 matt matt 4.0K Feb 18 09:25 patching-tool
drwxr-x--- 3 matt matt 4.0K Feb 18 09:27 routes
drwxr-xr-x 9 matt matt 4.0K Feb 18 09:28 tomcat
drwxr-xr-x 5 matt matt 4.0K Feb 18 09:15 tools
drwxr-x--- 463 matt matt 36K Feb 27 16:09 work
-rw-r--r-- 1 matt matt 31M Feb 18 09:11 glowroot-0.14.2-dist.zip
-rw-r--r-- 1 matt matt 38 Feb 27 12:47 portal-alternate.com.properties
-rw-r--r-- 1 matt matt 304 Feb 27 12:47 portal-ext.properties
-rw-r----- 1 matt matt 589 Feb 27 12:49 portal-setup-wizard.properties
先ほど作成したMySQLと接続する様に設定します。
vi /opt/liferay-dxp-2024q3.7/portal-ext.properties
jdbc.default.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.default.password=[MySQLのliferayユーザーパスワード]
jdbc.default.url=jdbc:mysql://localhost/lportal?characterEncoding=UTF-8&dontTrackOpenResources=true&holdResultsOpenOverStatementClose=true&serverTimezone=GMT&useFastDateParsing=false&useUnicode=true
jdbc.default.username=liferay
起動用ユーザーに権限の設定をします。
sudo chown -R liferay:liferay /opt/liferay-dxp
sudo chmod +x /opt/liferay-dxp/tomcat/bin/*.sh
オーナーが変更されていることを確認します。
ll /opt/liferay-dxp/
total 31M
drwxr-x--- 6 liferay liferay 4.0K Feb 27 14:36 data
drwxr-xr-x 2 liferay liferay 4.0K Feb 27 14:35 deploy
drwxr-xr-x 3 liferay liferay 4.0K Feb 18 09:21 elasticsearch-sidecar
drwxr-xr-x 4 liferay liferay 4.0K Feb 18 09:19 glowroot
drwxr-xr-x 2 liferay liferay 4.0K Feb 18 09:25 license
drwxr-x--- 3 liferay liferay 4.0K Feb 27 12:49 logs
drwxr-xr-x 11 liferay liferay 4.0K Feb 27 12:49 osgi
drwxr-xr-x 5 liferay liferay 4.0K Feb 18 09:25 patching-tool
drwxr-x--- 3 liferay liferay 4.0K Feb 18 09:27 routes
drwxr-xr-x 9 liferay liferay 4.0K Feb 18 09:28 tomcat
drwxr-xr-x 5 liferay liferay 4.0K Feb 18 09:15 tools
drwxr-x--- 463 liferay liferay 36K Feb 27 16:09 work
-rw-r--r-- 1 liferay liferay 31M Feb 18 09:11 glowroot-0.14.2-dist.zip
-rw-r--r-- 1 liferay liferay 38 Feb 27 12:47 portal-alternate.com.properties
-rw-r--r-- 1 liferay liferay 304 Feb 27 12:47 portal-ext.properties
-rw-r----- 1 liferay liferay 589 Feb 27 12:49 portal-setup-wizard.properties
次に自動起動の設定を行います。
sudo vi /etc/systemd/system/liferay.service
[Service]
User=liferay
Group=liferay
Type=oneshot
PIDFile=/opt/liferay-dxp/liferay.pid
RemainAfterExit=yes
# リモートデバッグを利用する場合は"catalina.sh jpda start"を利用
ExecStart=/opt/liferay-dxp/tomcat/bin/startup.sh
ExecStop=/opt/liferay-dxp/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
サービス化して起動します。
sudo systemctl enable liferay
sudo systemctl start liferay
ブラウザでアクセスするとアクティベーションされていないので、以下のような画面になるはずです。
LiferayのCustomer Portalから7.4用のactivation keyを取得します。
取得したアクティベーションキーをデプロイします。
再度ブラウザでアクセスすると以下の様に初期設定画面が表示されます。
監理者情報を入力してセットアップを完了します。
入力後、「設定完了」ボタンをクリックすると以下のように再起動を促す画面に切り替わります。
Liferayを再起動します。
sudo systemctl restart liferay
再度ブラウザでアクセスすると以下のようにLiferayが利用可能になります。
先ほど作成した管理者ユーザーでログインします。
初期パスワードは”test”です。
利用規約への同意画面が表示されますので「同意する」ボタンをクリックします。
パスワード変更画面が表示されますので、任意のパスワードに変更し「保存」ボタンをクリックします。
リマインダークエリの設定画面が表示されるので、適宜入力し「保存」ボタンをクリックします。
Enterprise Searchの利用規約モーダルが表示されるので「完了」ボタンをクリックします。
右上のメガメニューをクリックし「コントロールパネル > システム設定」をクリックします。
なお、Sidecar版のElasticsearchを利用する場合はこれ以降の手順は不要です、
「プラットフォーム > 検索」をクリックします。
画面左のメニューから「Elasticsearch7」をクリックします。
(インストールしたElasticsearchのバージョンは8.0ですがLiferayのコネクタのバージョンが7の為)
設定内容は以下の通りです。
- 動作モード:REMOTE
- 認証が有効:
- ユーザー名:elastic (デフォルトのまま)
- パスワード:[elasticユーザーに設定したパスワード]
右上のメガメニューをクリックし「コントロールパネル > 検索」をクリックします。
以下のように「ヘルス: GREEN」と表示されていればOKです。
おわりに
以上、Liferayのインストール手順でした。
最近だとDockerの利用が増えミドルウェアのインストールや設定を行うことも減ったかと思いますが、私は個人的にzshと自分用に設定したprezto環境が気に入ってるので普段からローカル環境を使います。
Docker利用がむずかしい環境などでのお役に立てれば幸いです!
次回はLiferayにアップロードしたプレビュー機能を拡張するための設定について記述します!
まつもとでした!
