Linuxサーバー環境構築ガイド:Java, Tomcat, MySQL, Redis, Nginxの導入手順

JDKの導入

パッケージマネージャを利用してOpenJDKを導入します。以下のコマンドを実行し、インストールが完了するまで待機します。

yum install -y java-1.8.0-openjdk-devel

導入が完了したら、バージョンを確認して正常にインストールされたかを検証します。

java -version

Tomcatの構築

アプリケーションサーバーであるTomcatのセットアップを行います。まず、配置用のディレクトリを作成します。ここでは /opt/tomcat-app を例とします。

sudo mkdir /opt/tomcat-app

次に、ダウンロードしたアーカイブを展開します。-C オプションで出力先を指定します。

sudo tar -zxvf apache-tomcat-9.0.13.tar.gz -C /opt/tomcat-app

展開後のディレクトリ構成は以下の役割を持ちます。

  • bin: 起動や停止などの実行スクリプト
  • lib: 実行時に必要なJARファイル
  • conf: 各種設定ファイル
  • logs: ログ出力先
  • webapps: Webアプリケーションの配置場所
  • work: 動的生成されたコードやクラスファイル
  • temp: 一時ファイルの格納先

起動と停止は bin ディレクトリ配下のスクリプトで行います。

cd /opt/tomcat-app/apache-tomcat-9.0.13/bin
./startup.sh
./shutdown.sh

起動後、デフォルトの8080ポートでリッスンしているか確認します。

netstat -npl | grep :8080

MySQLのセットアップ

既存のMySQL関連パッケージが存在する場合は競合を避けるため削除します。

rpm -qa | grep mysql
rpm -e --nodeps mysql-libs-[バージョン]

データベース用のユーザーとグループを作成します。

groupadd dbgroup
useradd -r -g dbgroup dbuser

アーカイブを取得し、展開します。

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

展開したディレクトリを /opt/mysql-db に移動し、データ格納用フォルダを作成します。

mv mysql-5.7.24-linux-glibc2.12-x86_64 /opt/mysql-db
mkdir /opt/mysql-db/data

所有者と権限を調整します。

chown -R dbuser:dbgroup /opt/mysql-db
chmod -R 755 /opt/mysql-db

データベースの初期化を行います。この際に出力される一時パスワードは必ず記録してください。

cd /opt/mysql-db/bin
./mysqld --initialize --user=dbuser --datadir=/opt/mysql-db/data --basedir=/opt/mysql-db

初期化時に libaio.so.1 のエラーが発生した場合は、yum install -y libaio でライブラリを導入してください。

サービスを起動し、システムコマンドとして利用できるようシンボリックリンクを張ります。

/opt/mysql-db/support-files/mysql.server start
ln -s /opt/mysql-db/support-files/mysql.server /etc/init.d/mysqld
ln -s /opt/mysql-db/bin/mysql /usr/bin/mysql
service mysqld restart

クライアントで接続し、初期パスワードを更新します。

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!' PASSWORD EXPIRE NEVER;
flush privileges;

外部ホストからのアクセスを許可する場合は、ユーザーのホストを変更します。

use mysql;
update user set Host='%' where User='root';
flush privileges;

OS起動時に自動起動させる設定を追加します。

cp /opt/mysql-db/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld

Redisの構築

ソースコードからビルドして導入します。導入先とソースの配置先を決定します。ここではそれぞれ /opt/redis-srv, /opt/build とします。

mkdir /opt/redis-srv
cd /opt/build
wget http://download.redis.io/releases/redis-3.0.7.tar.gz
tar -xzvf redis-3.0.7.tar.gz
cd redis-3.0.7
make PREFIX=/opt/redis-srv install

設定ファイルを導入先の実行ファイルと同じ場所にコピーします。

cp redis.conf /opt/redis-srv/bin/

起動と停止のコマンドです。

/opt/redis-srv/bin/redis-server /opt/redis-srv/bin/redis.conf
/opt/redis-srv/bin/redis-cli -p 6379 shutdown

運用を簡単にするために、~/.bash_profile などにエイリアスを設定します。

alias redisdir="cd /opt/redis-srv/bin"
alias startredis="/opt/redis-srv/bin/redis-server /opt/redis-srv/bin/redis.conf"
alias stopredis="/opt/redis-srv/bin/redis-cli -p 6379 shutdown"

Redisをキャッシュサーバーとしてのみ利用する場合は、redis.conf 内のメモリ関連設定を調整します。

maxmemory 2048mb
maxmemory-policy allkeys-lru

Dockerを用いたNginxの起動と設定

Docker Hubから公式イメージを取得し、コンテナを起動します。

docker pull nginx
docker run --name web-proxy -p 80:80 -d nginx

コンテナ内の設定ファイルを編集する方法として、コンテナにログインして直接編集するアプローチがあります。

docker exec -it web-proxy bash
apt-get update
apt-get install vim
vim /etc/nginx/nginx.conf

編集後はコンテナを再起動して反映させます。

docker stop web-proxy
docker start web-proxy

より実用的な方法として、ホストOSのディレクトリをマウントするアプローチがあります。あらかじめホスト側に設定ファイルを準備しておく必要があります。

docker run --name web-proxy -p 80:80 \
-v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/docker-nginx/log:/var/log/nginx \
-v /home/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
-d nginx

この方法では、ホスト側のファイルを変更するだけでコンテナの設定を管理でき、ログの永続化も容易になります。

タグ: JDK Tomcat MySQL redis nginx

6月28日 01:25 投稿