LoginSignup
3
1

More than 3 years have passed since last update.

ConoHaにApacheを入れる

Last updated at Posted at 2020-08-31

はじめに

個人的な備忘録として作成しました。
ConoHaVPSにApacheをインストールし、Webサーバーとして使えるようにするところまでを扱います。
Qiita初投稿なこともあり、誰かの役に立つかは正直微妙ですがよろしくお願いいたします。
なお、この記事は2020年7月頭に書いたものです(投稿が遅くなってしまいました)。

■この記事と直接関係ありませんが、作成したポートフォリオがこちらです↓

Nintendo Switch ダウンロードソフトデータベースβ
https://switch-dlsoft-db.com

Nintendo Switchのダウンロードソフトのセール情報を主にまとめたWebサイトになります。(何番煎じかわかりませんが…)
2020年6月頃から作り始めて、3ヶ月でここまでできました。

ConoHaのアカウントを作成してログイン

サインアップ|レンタルサーバーならConoHa

上記ページからアカウントを作成する。
ConoHaアカウント作成.PNG

アカウントを作成したらConoHaにログインする。
ログインするとこんな感じの画面になる。
※画面は既にVPSを一台契約している状態です。
ConoHaダッシュボード.PNG

VPSを追加

[1]コントロールパネル左メニューの「サーバー追加」をクリックする。
サーバー追加01.PNG

[2]サーバー追加のページが表示される。
サーバー追加02.PNG

[3]「リージョン」を選択し、「サービス」で「VPS」を選択、メモリ容量を選択する。
サーバー追加03.PNG

[4]サーバーの作成に使うイメージを選択する。私は、OSタブから「CentOS 8.2(64bit)」を選択した。その後、rootパスワードとネームタグを設定する。VPSを2台以上契約する場合は、区別できるようにわかりやすい名前(ネームタグ)をつけておこう。
サーバー追加04.PNG

[5]オプションを設定する。今回は標準の設定のまま弄らなかった。
サーバー追加05.PNG

[6]金額とスペックを確認して、「追加」をクリックする。これでVPS追加が完了する。
サーバー追加06.PNG

参考サイト
VPSを追加する|ConoHa VPSサポート
VPSへログインする|ConoHa VPSサポート

TeraTermをインストール

代表的なSSHクライアントソフトである「TeraTerm」をインストールする。

[1]次のページにアクセスし、TeraTermをダウンロードする。
ダウンロードファイル一覧 - Tera Term - OSDN
TeraTerm01.PNG

[2]ダウンロードした「teraterm-4.105.exe」を実行し、インストールする。特に設定を変える必要はなく、指示通りに進めていけばよい。
TeraTerm02.PNG
TeraTerm03.PNG
TeraTerm04.PNG
TeraTerm05.PNG
TeraTerm06.PNG
TeraTerm07.PNG
TeraTerm08.PNG
TeraTerm09.PNG
TeraTerm10.PNG

インストールが完了した。

参考サイト
【ゼロからわかる】Teratermのインストールと使い方

TeraTermでConoHaにログインする

[1]TeraTermを起動する。「新しい接続」ウインドウが表示されるので、TCP/IPの「ホスト」にConoHaで構築した仮想サーバーのIPアドレスを入力し、OKを押す。

VPSへのログイン01.PNG

なおIPアドレスは、ConoHaのコントロールパネルにログイン後、「サーバー」→「仮想サーバー(ネームタグ)」→「ネットワーク情報」→「IPアドレス」で確認可能。(画像では隠しています)
VPSへのログイン02.PNG
VPSへのログイン03.PNG

[2]次のようなウインドウが出てくるが、気にせず続行を押す。
VPSへのログイン04.PNG

[3]ユーザー名に「root」、パスフレーズには仮想サーバー構築時に設定したパスワードを入力し、OKを押す。
VPSへのログイン05.PNG

[4]次のような画面が表示されればOK。
VPSへのログイン06.PNG

参考サイト
TeraTermでのSSH接続設定|ConoHa VPSサポート
VPSへログインする|ConoHa VPSサポート

一般ユーザーを追加する

rootアカウントは全ての権限を持ち、誤操作で重要なファイルを削除してしまう可能性もあり通常作業には向かない。root権限を必要としない作業は一般ユーザーを使うべきなので、一般ユーザーを追加する。

[1]下記のコマンドで一般ユーザーを追加する。なお、私はユーザー名を「niisan1ban」とした。

# useradd [ユーザー名]

一般ユーザーの追加01.PNG

[2]追加した一般ユーザーのパスワードを設定する。

# passwd [ユーザー名]
New password: [任意のパスワードを入力]
Retype new password: [↑で入力したパスワードを再度入力]

一般ユーザーの追加02.PNG

「passwd: all authentication tokens updated successfully.」と表示されていれば設定完了。

参考サイト
一般ユーザーを追加する|ConoHa VPSサポート
コマンドを操作してみよう|ConoHa VPSサポート

sudoを設定する

作成した一般ユーザーはroot権限がないが、sudoを利用することでroot権限が必要な操作が可能になる。ConoHaのVPSのテンプレートイメージCentOS8では、初期状態で「wheel」グループに所属している一般ユーザーはsudoを利用可能になっている。

[1]一般ユーザーを「wheel」グループに所属させるには、次のコマンドを入力する。

# usermod -G wheel [所属させるユーザー名]

sudoを設定する01.PNG

これでsudoを設定できた。
ここで一旦rootユーザーからログアウトしておこう。

# logout

参考サイト
sudoを設定する|ConoHa VPSサポート

一般ユーザーでログインし、sudoコマンドが使えるか確認する

[1]再びTeraTermを立ち上げ、追加した一般ユーザーの[ユーザー名]と[パスワード]を入力してログインする。
一般ユーザーへのログイン01.PNG
一般ユーザーへのログイン02.PNG

rootアカウントの場合コマンド入力欄は[#]で始まるが、一般ユーザーは[$]で始まる。

[2]下記のように先頭に[sudo]を入力の上、適当なコマンドを実行する。

$ sudo [コマンド]

[3]パスワード入力を求められるので、ログインした一般ユーザーのログインパスワードを入力する。
一般ユーザーへのログイン03.PNG

sudoコマンドが使えることが確認できた。なお、[date]コマンドは現在時刻を表示するコマンドである。
ちなみに、最初にsudoコマンドを実行するときは、次のような文が表示されるかも。(スクショし忘れた…)

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

  #1) Respect the privacy of others.
  #2) Think before you type.
  #3) With great power comes great responsibility.

参考サイト
一般ユーザーを追加する|ConoHa VPSサポート
sudoを設定する|ConoHa VPSサポート

一般ユーザーで公開鍵認証を利用可能にする

鍵を生成する

[1]TeraTermを起動し接続画面で「キャンセル」をクリックする。
一般ユーザーで公開鍵認証を利用する01.PNG

[2]「設定」→「SSH鍵生成」をクリックする。
一般ユーザーで公開鍵認証を利用する02.PNG

[3]鍵の種類で「RSAを選択」、ビット数を「2048」にして「生成」クリック。
[4]必要に応じて鍵のパスフレーズを入力し、「公開鍵の保存」「秘密鍵の保存」をクリック。
※パスフレーズは秘密鍵利用時に必要。空欄でも利用は可能。私は空欄にした。

一般ユーザーで公開鍵認証を利用する03.PNG

鍵をVPSに設置する

[1]TeraTermを使い一般ユーザーでVPSへログインし、保存した「公開鍵」をドラック&ドロップし、表示されたウインドウで「SCP」をクリックして「OK」を押す。
一般ユーザーで公開鍵認証を利用する04.PNG

[2]ユーザーのホームディレクトリに「.ssh」というディレクトリを作成し、パーミッションを「700」に設定する。
一般ユーザーで公開鍵認証を利用する05.PNG

[3]ホームディレクトリに設置した公開鍵を「.ssh」へコピーし「authorized_keys」へファイル名を変更する。また、「authorized_keys」のパーミッションを「600」へ変更する。
一般ユーザーで公開鍵認証を利用する06.PNG

[4]ホームディレクトリに設置した公開鍵は、不要なので削除しておく。
一般ユーザーで公開鍵認証を利用する07.PNG

ここまでのコマンドをまとめると次のようになる。

$ mkdir .ssh
$ chmod 700 .ssh
$ mv id_rsa.pub .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ rm -f id_rsa.pub

公開鍵認証を利用してログイン可能かを確認する

[1]TeraTermを立ち上げ直し、ログイン画面で一般ユーザーの[ユーザー名]と[パスフレーズ]を入力する。
※なお、パスフレーズはSSH鍵作成時に決めたものであり、空欄にした場合は入力しなくてOK。
[2]「認証方式」のところで、「RSA/DSA/ECDSA/ED25519鍵を使う」にチェックを入れ、「...」を押して秘密鍵「id_rsa」を選択する。
一般ユーザーで公開鍵認証を利用する08.PNG
一般ユーザーで公開鍵認証を利用する09.PNG
[3]OKを押してログインする。

公開鍵認証を使用してログインできた。

rootログインを禁止する

[1]TeraTermを起動し、rootでログインする。
[2]SSH接続の設定ファイルを次のように変更する。viコマンドの使い方についてはこのサイトを参照。

# vi /etc/ssh/sshd_config
#rootログインを禁止にする
PermitRootLogin yes
↓
PermitRootLogin no #[yes]を[no]に変えます

#パスワードログインを禁止にする
PasswordAuthentication yes
↓
PasswordAuthentication no #[yes]を[no]に変えます

[3]SSH接続の設定の変更を反映させる。

# systemctl reload sshd

これで、rootではログインできなくなった。

参考サイト
一般ユーザーで公開鍵認証を使用してSSHログインする|ConoHa VPSサポート
公開鍵認証を設定する|ConoHa VPSサポート
第7回:エディタを使ってみる!|ConoHa VPSサポート
コマンドを操作してみよう|ConoHa VPSサポート

Apacheをインストールする

Webコンテンツの公開にはWebサーバーが必要である。今回は、ConoHaをWebサーバー化するために、代表的なWebサーバーソフトである「Apache」をインストールしていく。

[1]TeraTermで一般ユーザーでログインする。
[2]「su -」コマンドでrootアカウントに切り替える。パスワードを要求されるので、rootアカウントのパスワードを入力する。

$ su -

[3][yum]コマンドを使ってApacheをインストールする。

# yum install httpd

Apacheのインストール01.PNG

途中で次のような表示が出て処理が止まるが、これはインストールしていいか聞かれているだけなので[y]を入力して[Enter]を押す。

Is this ok [y/N]:

Apacheのインストール02.PNG

無事にインストールできた場合は、最後に「Complete!」と表示される。

Apacheのインストール03.PNG

参考サイト
WordPressに必要なソフトウェアをインストールしよう(Apache編)|ConoHa VPSサポート

「su -」と「sudo」の違い

$ su - [ユーザー名]
  • su -
    • ユーザーを切り替える(Switch User)
    • ユーザー名を省略した場合はスーパーユーザー(rootユーザー)になる
    • 必要な作業を行った後にlogoutなどで元のユーザーに戻る
    • 求められるパスワードは切り替え先ユーザーのもの
$ sudo [コマンド]
  • sudo
    • スーパーユーザー(rootユーザー)で実行(Super User Do)
    • コマンド実行の度にsudoをつける必要がある
    • 求められるパスワードは元のユーザーのもの

※「su -」と「su」でも意味が違う。詳しくは下記のサイト参照。

参考サイト
【Linux】「su」と「sudo」の違い | プログラミングマガジン

Apacheの起動

Apacheのインストールは完了したので、早速起動する。
今回利用するCentOS8では、[systemctl]というコマンドを使って各サービス(デーモン)の起動や停止を行う。

次のコマンドでApacheを起動する。「httpd」はApacheのことである。

# systemctl start httpd

問題なく起動に成功すると何も表示されずコマンド入力可能な状態になる。しかし、今のままではVPSを再起動する度にApacheも起動し直す必要がある。httpdが停止しているとWebページが表示されない。それでは困るので、VPS起動時に自動でhttpdが起動するよう次のコマンドで設定する。

# systemctl enable httpd

成功すると「Created symlink ~」と表示される。
サービス状態を確認するときは、次のコマンドを使う。

# systemctl status httpd

無事起動出来ていると緑色の丸印や「active (running)」が表示される。

Apacheの起動01.PNG

以上でWebサーバーが構築され、コンテンツをブラウザで閲覧する準備が整った。
しかし、構築したWebサーバーにはまだコンテンツがない。
次の章では、HTMLファイルをWebサーバーに設置していく。

参考サイト
WordPressに必要なソフトウェアをインストールしよう(Apache編)|ConoHa VPSサポート

HTMLファイルの設置

ディレクトリ[/var/www/html]に、ファイル[index.html]を設置する。
viコマンドの使い方についてはこのサイトを参照。

# vi /var/www/html/index.html

HTMLファイルの設置01.PNG

上記のコマンドで編集画面が開かれる。
iで編集モード(INSERT)に移行し、[Apache Test]と入力する。

HTMLファイルの設置02.PNG

[Esc]キーを押しINSERTモードから抜け、[:wq]でファイルを保存&viエディタを終了する

HTMLファイルの設置03.PNG

これで、Webサーバーにコンテンツを設置できた。
ブラウザで、「http://<VPSのIPアドレス>/index.html」に接続する。
しかし、繋がらない…。

HTMLファイルの設置04.PNG

これは、ファイアウォールがhttp通信をブロックしているためである。
ファイアウォールとは、予め設定したルールに従い、通してはいけない通信を止める機能のこと。
次の章で、ファイアウォールの設定を変える。

参考サイト
WordPressに必要なソフトウェアをインストールしよう(Apache編)|ConoHa VPSサポート

ファイアウォールの設定を変える

CentOS8では、firewalldというサービスでファイアウォールの設定をすることが出来る。
firewalldでは特定の通信を指定して利用可能な通信を設定可能である。
例えばSSHであったりHTTP、SMTPなど様々あり、サービスの名前や、それぞれのポート番号を指定しての設定が可能である。

主な通信のサービス名とポート番号は以下の通り。

  • SSH 22番ポート
  • HTTP 80番ポート
  • HTTPS 443番ポート
  • POP3 110番ポート
  • IMAP 143番ポート
  • SMTP 25番ポート

ConoHaのテンプレートイメージのfirewalldでは、デフォルト起動するようになっており、設定は[SSH]のみ開放されていたため、[HTTP]通信は行えなかった。

設定を確認するには次のコマンドを使用する。

# firewall-cmd --list-all

ファイアウォール01.PNG

[services]の項目に[ssh]の記載がある。

firewalldを操作してみる

  • firewalldの起動
# systemctl start firewalldv
  • firewalldの停止(停止をするとすべての通信を開放するので注意)
# systemctl stop firewalld
  • firewalldの再起動
# systemctl restart firewalld
  • サービス名を指定して通信を許可する
    • とりあえず、[http]と[https]を解放する。
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https

ファイアウォール02.PNG

  • 設定を反映させる
# firewall-cmd --reload
  • 設定内容を確認する
# firewall-cmd --list-all

ファイアウォール03.PNG

[http]および[https]が追加されていることが確認できる。
再びブラウザで、「http://<VPSのIPアドレス>/index.html」に接続すると、今度は表示された。

ファイアウォール04.PNG

参考サイト
ファイアウォールの設定をしてセキュリティを強化しよう|ConoHa VPSサポート
WordPressに必要なソフトウェアをインストールしよう(Apache編)|ConoHa VPSサポート

ファイルの削除

ディレクトリ[/var/www/html]に設置した[index.html]は、もう必要ないので削除する。
ファイルの削除にはrmコマンドを使う。

# rm /var/www/html/index.html

確認のメッセージが出るので、[y]を押してEnterキーを押す。

参考サイト
WordPressに必要なソフトウェアをインストールしよう(Apache編)|ConoHa VPSサポート

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1