CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
dotCMSは、Javaで記述されたオープンソースのエンタープライズグレードのコンテンツ管理システムです。それはあなたのビジネスのためのウェブサイトを作成するために必要なほぼすべての機能が含まれています。CRM、モバイルアプリケーションなどの他のサービスと統合するRESTful APIを提供します。コンテンツのリアルタイムインデックス作成にはElasticsearchを使用し、多層キャッシュの実装にはRedisを使用します。
この記事はdotCMS 4.2.2向けに書かれていますが、提供されている手順は新しいバージョンでも機能する場合があります。
このチュートリアルでは192.168.0.1
、パブリックIPアドレスおよびcms.example.com
Vultrインスタンスを指すドメイン名として使用します。サンプルのドメイン名とパブリックIPアドレスのすべての出現箇所を実際のものに置き換えてください。
CentOS 7のアップデート方法ガイドを使用して、ベースシステムをアップデートします。システムが更新されたら、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_HOME
とJRE_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
デフォルトでは、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アーカイブをダウンロードします。
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
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
/または標準HTTP
とHTTPS
サー���スがファイアウォールを通過できるようにする必要があります。また、ポート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コンテンツ管理システムがサーバーにインストールされました。デモサイトを変更することも、ゼロからサイトを構築することもできます。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。