CentOS 7にdotCMSをインストールする方法

dotCMSは、Javaで記述されたオープンソースのエンタープライズグレードのコンテンツ管理システムです。それはあなたのビジネスのためのウェブサイトを作成するために必要なほぼすべての機能が含まれています。CRM、モバイルアプリケーションなどの他のサービスと統合するRESTful APIを提供します。コンテンツのリアルタイムインデックス作成にはElasticsearchを使用し、多層キャッシュの実装にはRedisを使用します。

この記事はdotCMS 4.2.2向けに書かれていますが、提供されている手順は新しいバージョンでも機能する場合があります。

前提条件

  • Vultr CentOS 7サーバーインスタンス。
  • sudoのユーザー
  • サーバーに向けられたドメイン名。

このチュートリアルでは192.168.0.1、パブリックIPアドレスおよびcms.example.comVultrインスタンスを指すドメイン名として使用します。サンプルのドメイン名とパブリックIPアドレスのすべての出現箇所を実際のものに置き換えてください。

CentOS 7のアップデート方法ガイドを使用して、ベースシステムをアップデートします。システムが更新されたら、Javaのインストールに進みます。

Javaをインストールする

OpenJDKは、パッケージがデフォルトのYUMリポジトリで利用できるため、簡単にインストールできます。

sudo yum -y install java-1.8.0-openjdk-devel

Javaが正しくインストールされている場合は、そのバージョンを確認できます。

java -version

同様の出力が得られます。

[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

さらに先に進む前に、JAVA_HOMEおよびJRE_HOME環境変数を設定する必要があります。システム上のJava実行可能ファイルの絶対パスを見つけます。

readlink -f $(which java)

同様の出力が表示されます。

[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre/bin/java

次に、Javaディレクトリーのパスに従ってJAVA_HOMEJRE_HOME環境変数を設定します。

echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre" >> ~/.bash_profile

bash_profileファイルを実行します。

source ~/.bash_profile

これで、echo $JAVA_HOMEコマンドを実行して、環境変数が設定されていることを確認できます。

[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64

PostgreSQLをインストールする

デフォルトでは、dotCMSはH2データベースエンジンを使用するように設定されています。H2データベースエンジンは、フラットファイルベースのデータベースエンジンです。本番環境での使用はお勧めしません。このチュートリアルでは、PostgreSQLサーバーを使用してdotCMSデータベースを格納します。

PostgreSQLはオブジェクトリレーショナルデータベースシステムであり、その安定性と速度で知られています。PostgreSQLの最新リリースのリポジトリをシステムに追加します。

sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

PostgreSQLデータベースサーバーをインストールします。

sudo yum -y install postgresql10-server postgresql10-contrib postgresql10 

データベースを初期化します。

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

PostgreSQLサーバーを起動し、起動時に自動的に起動するようにします。

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10

デフォルトのPostgreSQLユーザーのパスワードを変更します。

sudo passwd postgres

デフォルトのPostgreSQLユーザーとしてログインします。

sudo su - postgres

dotCMSの新しいPostgreSQLユーザーを作成します。

createuser dotcms 

PostgreSQLは、psqlデータベースサーバーでクエリを実行するためのシェルを提供します。PostgreSQLシェルに切り替えます。

psql

dotCMSデータベースの新しく作成されたユーザーのパスワードを設定します。

ALTER USER dotcms WITH ENCRYPTED password 'DBPassword';

データベースのユーザーパスワードDBPasswordを安全なパスワードに置き換えます。dotCMSインストール用の新しいデータベースを作成します。

CREATE DATABASE dotcms OWNER dotcms;

psqlシェルを終了します。

\q

sudoユーザーに切り替えます。

exit

dotCMSをインストールする

dotCMSアーカイブをダウンロードします。

wget https://dotcms.com/physical_downloads/release_builds/dotcms_4.2.2.tar.gz

アプリケーションの最新バージョンへのリンクは、dotCMSダウンロードページにあります

dotCMSファイルを格納する新しいディレクトリを作成し、そこに抽出します。

sudo mkdir /opt/dotcms
sudo tar -zxf dotcms*.tar.gz -C /opt/dotcms

データベース構成ファイルを開きます。

cd /opt/dotcms
sudo nano dotserver/tomcat-*/webapps/ROOT/META-INF/context.xml

H2ブロックを見つけます。

<!-- H2 -->
<Resource name="jdbc/dotCMSPool" auth="Container"
 ...

 validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />

H2セクション-->の先頭からセクションの終わりまでコメント区切り文字を置き換えることにより、セクション全体をコメント化します。次のようになります。

<!-- H2
<Resource name="jdbc/dotCMSPool" auth="Container"
 ...

 validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />
-->

セクション-->の最後からコメント区切り文字を削除し、それを最上部のラッピングに配置することにより、PostgreSQLセクションのコメントを解除しますPOSTGRESQL。また、既存の値を検索username=してpassword=、PostgreSQLデータベースユーザーのユーザー名とパスワードに置き換えます。以外のデータベース名を使用した場合は、でデータベース名dotcmsを変更する必要がありますurl=。構成が完了すると、ファイル内のPostgreSQLブロックは次のようになります。

<!-- POSTGRESQL -->
<Resource name="jdbc/dotCMSPool" auth="Container"
      type="javax.sql.DataSource"
      factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
      driverClassName="org.postgresql.Driver"
      url="jdbc:postgresql://localhost/dotcms"
      username="dotcms" password="DBPassword" maxTotal="60" maxIdle="10" maxWaitMillis="60000"
      removeAbandonedOnBorrow="true" removeAbandonedOnMaintenance="true" removeAbandonedTimeout="60" logAbandoned="true"
      timeBetweenEvictionRunsMillis="30000" validationQuery="SELECT 1" testOnBorrow="true" testWhileIdle="true" />

すべての実行可能ファイルに実行権限を付与します。

sudo chmod 755 ./bin/*.sh
sudo chmod 755 dotserver/tomcat-*/bin/*.sh

dotCMSがサーバーにインストールされました。アプリケーションをすぐに実行するには、以下を実行します。

cd /opt/dotcms
sudo bin/startup.sh

サーバーが正常に起動すると、次の出力が表示されます。

[user@vultr dotcms]$ sudo bin/startup.sh
Using DOTCMS_HOME = /opt/dotcms/dotserver/tomcat-8.0.18/webapps/ROOT
Using DOTSERVER = dotcms
Using CATALINA_PID = /tmp/dotcms.pid
Using JAVA_OPTS =  -Djava.awt.headless=true -Xverify:none -Dfile.encoding=UTF8 -server -XX:+DisableExplicitGC -XX:MaxMetaspaceSize=512m -Xmx1G -XX:+UseG1GC -javaagent:/opt/dotcms/dotserver/tomcat-8.0.18/webapps/ROOT/WEB-INF/lib/byte-buddy-agent-1.6.12.jar -Ddotserver=dotcms
Using CATALINA_BASE:   /opt/dotcms/dotserver/tomcat-8.0.18
Using CATALINA_HOME:   /opt/dotcms/dotserver/tomcat-8.0.18
Using CATALINA_TMPDIR: /opt/dotcms/dotserver/tomcat-8.0.18/temp
Using JRE_HOME:        /
Using CLASSPATH:       /opt/dotcms/dotserver/tomcat-8.0.18/bin/bootstrap.jar:/opt/dotcms/dotserver/tomcat-8.0.18/bin/tomcat-juli.jar
Using CATALINA_PID:    /tmp/dotcms.pid
Tomcat started.

上記のコマンドは、ポートでアプリケーションを提供するためにTomcat Webサーバーを起動します8080。dotCMS Webサイトが機能しているかどうかを確認するには、必要なポート8080がシステムファイアウォールを通過できるようにします。

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload

お気に入りのブラウザを開き、にアクセスしhttp://192.168.0.1:8080ます。アプリケーションがデモWebサイトを実行していることがわかります。ウェブサイトが表示されない場合は、dotCMSサーバーの最初の起動に数分かかるため、PostgreSQLデータベースにデータを書き込み、キャッシュを構築するまでお待ちください。起動ログを確認することもできます。

tail -n 1000 -f /opt/dotcms/dotserver/tomcat-*/webapps/ROOT/dotsecure/logs/dotcms.log

Systemdサービスを構成する

dotCMSサーバーは、インストーラーパッケージで提供される起動スクリプトを使用して直接起動できます。便宜上、dotCMSサーバー用のSystemdユニットファイルを設定する必要があります。これにより、システムの再起動や障害時にアプリケーションサーバーが自動的に起動するようになります。

シャットダウンスクリプトを使用して、実行中のdotCMSサーバーを停止します。

sudo bin/shutdown.sh

セキュリティ上の理由から、dotCMSサーバーを実行するための非特権ユーザーを作成します。

sudo adduser -d /opt/dotcms -s /sbin/nologin dotcms

dotCMSユーザーにファイルの所有権を提供します。

sudo chown -R dotcms:dotcms /opt/dotcms

新しいSystemdサービスを作成します。

sudo nano /etc/systemd/system/dotcms.service

ファイルに入力します。

[Unit]
Description=dotCMS service
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/dotcms/bin/startup.sh
ExecStop=/opt/dotcms/bin/shutdown.sh
User=dotcms
Group=dotcms
Restart=always

[Install]
WantedBy=multi-user.target

アプリケーションを起動し、起動時に自動的に起動するようにします。

sudo systemctl start dotcms
sudo systemctl enable dotcms

サービスが実行されていることを確認します。

sudo systemctl status dotcms

リバースプロキシの構成

デフォルトでは、dotCMSサーバーはポートでリッスンします8080。Nginxをリバースプロキシとして構成し、標準HTTPおよびHTTPSポートを介してアプリケーションにアクセスできるようにします。Let's Encryptの無料SSLで生成されたSSLを使用するようにNginxを設定します。

Nginx Webサーバーをインストールします。

sudo yum -y install nginx

Webサーバーを起動し、起動時に自動的に起動するようにします。

sudo systemctl start nginx
sudo systemctl enable nginx

Let's Encrypt CAのクライアントアプリケーションであるCertbotをインストールします。

sudo yum -y install certbot

証明書を要求する前に、ポート80および443/または標準HTTPHTTPSサー���スがファイアウォールを通過できるようにする必要があります。また、ポート8080は不要になったため、ファイアウォールの例外のリストから削除します。

sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

注: Let's Encrypt CAから証明書を取得するには、証明書を生成するドメインをサーバーに向ける必要があります。そうでない場合は、ドメインのDNSレコードに必要な変更を加え、DNSが伝播するのを待ってから、証明書要求を再度行ってください。証明書ボットは、証明書を提供する前にドメイン認証局をチェックします。

SSL証明書を生成します。

sudo certbot certonly --webroot -w /usr/share/nginx/html -d cms.example.com

生成された証明書は、おそらくに保存され/etc/letsencrypt/live/cms.example.com/ます。Let's Encrypt証明書は90日で期限切れになるため、cronジョブを使用して証明書の自動更新を設定することをお勧めします。

cronジョブファイルを開きます。

sudo crontab -e

ファイルの最後に次の行を追加します。

30 5 * * * /usr/bin/certbot renew --quiet

上記のcronジョブは、毎日午前5時30分に実行されます。証明書の有効期限が切れる場合、証明書は自動的に更新されます。

dotCMSサイトの新しいサーバーブロックファイルを作成します。

sudo nano /etc/nginx/conf.d/cms.example.com.conf

ファイルに入力します。

server {
    listen 80;
    server_name cms.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    server_name cms.example.com;

    ssl_certificate           /etc/letsencrypt/live/cms.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/cms.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/dotcms.access.log;

    location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;

      proxy_pass          http://localhost:8080;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:8080 https://cms.example.com;
    }
  }

Nginx Webサーバーを再起動して、変更を有効にします。

sudo systemctl restart nginx

dotCMSアプリケーションがサーバーにインストールされ、運用環境で使用できるようになりました。次のアドレスの管理ダッシュボードにアクセスします。

https://cms.example.com/dotAdmin

初期の管理者アカウントを使用してログインし、[email protected]そして admin。ログイン直後にデフォルトのパスワードを変更します。

おめでとうございます。dotCMSコンテンツ管理システムがサーバーにインストールされました。デモサイトを変更することも、ゼロからサイトを構築することもできます。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。