はじめに
エンジニア1年目の学習すべき内容の代表例として、Linuxコマンドの学習が挙げられると思います。
ただ、Linux基礎に関する書籍は、VirtualBoxでコマンドをポチポチ打って学習するものが多いと思います。そのため、本記事ではLinuxサーバーを使いながら、ハンズオン形式で、Linuxコマンドを学習したいと思います。
また、今回は【入門】シェルスクリプトでバッチ処理を実装するの環境構築も行なっていきます。
作るもの(環境構築するもの)
- Linuxインストールと設定
- Apacheインストールと設定
- MySQLインストールと設定
本記事で登場するLinuxコマンド一覧
コマンド | コマンド説明 | オプション・サブコマンド |
---|---|---|
yum | yumコマンドはCentOS等のRedHat系のLinuxディストリビューションで使用されるRPMパッケージを管理するコマンド |
-y : 問い合わせに対して「Yes」を返す |
vim | vimエディターで、ファイルを編集する際に使用される | --- |
ssh | サーバーとリモートで通信する場合に使用されるコマンド |
-p :ポート番号を指定する |
su | (スーパー)ユーザーに変更する。 | --- |
sudo | スーパーユーザーもしくは別のユーザーとしてコマンドを実行する際に使用される。 | --- |
systemctl | サービスを管理するコマンド |
start : サービスを開始する。 enable :システム起動時に、サービスを自動的に開始する。 restart : サービスを再起動する |
semanege | SElinuxの管理で使用するコマンド | --- |
grep | 文字列を検索する | --- |
cp | ファイル・ディレクトリをコピーする | --- |
mkdir | ディレクトリを作成する | --- |
pwd | 現在作業しているディレクトリを表示する | --- |
ls | ファイル・ディレクトリを一覧で表示する | --- |
Linuxインストールと設定
仮想サーバー(Virtual Private Server)を契約し、LinuxのCent0S8をインストールする
さくらVPSを契約します。CentOS8のサポートが2021年末に終了するので、CentOS Stream8をインストールしました。
Linuxの初期設定をする。
サーバーのファイルを編集するために、エディターをインストールします。vim, nano, Emacs等のエディターがありますが、今回は一般的に使用されるvimをインストールします。
CentOS等のRed Hat系のLinuxディストリビューションソフトウェアだと、yumコマンドを使用します。オプションに -y を入れると「すべての問い合わせにyes」と回答します。
// suコマンド : rootユーザーになる
$ su -
// yumコマンド:RPMパッケージを管理するコマンド
# yum -y install vim
インストールしたvimを使用して、SSHサーバーの設定ファイルを編集します。
// cdコマンド:カレントディレクトリの位置を変更する。
# cd /etc/ssh
// sshd_configファイルのバックアップをとる。
// cpコマンド:ファイルをコピーする。
# cp sshd_config sshd_config.old
// lsコマンド:ファイルを一覧表示する。
# ls
sshd_config sshd_config.old
// vimコマンド:ファイルを開く
# vim /etc/ssh/sshd_config
/etc/ssh/sshd_configファイルを以下のように変更しました。
変更箇所 | 変更前 | 変更後 |
---|---|---|
17行目 | #Port 22 | Port 10022 |
43行目 | #PermitRootLogin yes | PermitRootLogin no |
続いてSELinuxの設定をします。SELinuxは、Linuxのセキュリティをより強固にするモジュールです。先程、変更したSSHポート番号をSELinuxでも許可されるように設定します。
// SeLinuxパッケージをインストール
# yum -y install policycoreutils-python-utils
// semanegeコマンド:SElinuxの管理で使用するコマンド
// SELinuxで10022番ポートを許可する
# semanage port -a -t ssh_port_t -p tcp 10022
// 10022番ポートを許可されているかを確認する。
// grepコマンド:ファイル中の文字列を検索する
# semanage port -l | grep ssh
ssh_port_t tcp 10022, 22
ファイアーウォールの設定も変更し、10022番ポートからのアクセスを通過させるようにします。
// ファイアウォールの設定ファイルをコピーする。
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/
// 設定ファイルのバックアップをとる
# cp /etc/firewalld/services/ssh.xml /etc/firewalld/services/ssh_bk.xml
// 設定ファイルを編集する。
# vim /etc/firewalld/services/ssh.xml
変更箇所 | 変更前 | 変更後 |
---|---|---|
5行目 | port="22" | port="10022" |
ファイヤウォールの設定を反映する。
# firewall-cmd --reload
# systemctl restart sshd
SSHコマンドで、サーバーとリモートで通信を行う
// sshコマンド:
$ ssh -p 10022 centuser@xxx.xxx.xx.xx
作業用のディレクトリを作成します。
ユーザーのホームディレクトリ(/home/user)の配下に、作業用ディレクトリを新規作成する。
// 現在、自分がいる作業ディレクトリを確認する。
$ pwd
/home/user
// 作業用ディレクトリ(work01)を新規作成する。
$ mkdir work01
// ディレクトリにあるファイル・ディレクトリを確認する
$ ls
work01
Apacheインストールと設定
Apacheのパッケージ名のhttpdをインストールし、起動する。
Webで公開するファイルが置かれたディレクトリをドキュメントルートと呼びます。
ドキュメントルートにHTMLファイルを格納すると、Web(外部)から閲覧することができます。
// sudoコマンド : スーパーユーザーもしくは別のユーザーとしてコマンドを実行する
// httpdをインストールする
$ sudo yum -y install httpd
// httpdを起動する
$ sudo systemctl start httpd.service
// 自動的に起動するように設定する
$ sudo systemctl enable httpd.service
// HTMLを作成し、
$ sudo vim /var/www/html/helloworld.html
<html>
<head>
<title>Hello world</title>
</head>
<body>
<p>Hello world ! This is a test page</p>
</body>
</html>
http:/IPアドレス/helloworld.htmlにアクセスすると、Webページが確認できました。
MySQLインストールと設定
Webサービスにとって必要な不可欠なデータベースをインストールし、起動します。
sudo yum -y install mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
MySQLのインストールは終了です。
Linux, Apache、MySQLの環境構築が完了しました。
【入門】シェルスクリプトでバッチ処理を実装するに続きます。