お名前VPSにCentOS 7をインストールしてWebサイトを作ってみた


前々から高認が終わったらVPSを借りようと決めていたので借りていろいろ弄ってみました。
(ちなみに高認は寝坊して落ちました、次は来年8月です。)

こういう記事を書くのは初めてなので至らぬ点は多々あると思いますがよろしくお願いします。

お名前VPSを選んだ理由

僕がドメインをお名前.comで取得していたから、というだけです。
サービスや値段を考慮して他の所のVPSを選んでも構わないと思います。

お名前VPSの契約

ここからプラン一覧を見ることができます。
ご自身の用途に合わせたプランを選択しページの案内をよく読み契約を進めてください。

VPSの初期セットアップ

契約が完了すると5~10分ほどでセットアップ完了のメールが届きます。
メールに記載されているログインURLをクリックしてログインし、ページ左端にある「ご利用サービス確認」をクリックします。
先ほど契約したVPSが出てくるので「コントロールパネル」の下の「vps*********[ログインする]」をクリックします。
サーバーリスト下にあるVPS名をクリックすると初期セットアップ画面が表示されます。
この時OSはCentOS 6.5しか選べないので適当にセットアップを進めてしまいましょう。

CentOS 7のインストール

いよいよCentOS 7のインストールです。
CentOS 7はまだリリースされて日が浅く、6.xの方が情報も多くてベターっぽかったのですが僕は新しいもの好きなので7を選びました。
電源OFFをクリックしてVPSの電源を切ります。
OS再インストールから、OSは[カスタムOS]CentOS 7.0-1406(64bit)を選択し、その他はお好みで設定します(よくわからない場合はそのままをお勧めします。)
確認をクリックし、実行をクリックします。
コンソール画面へ行き、VPSを起動します。
インストールディスクが起動するのでInstall CentOS 7を選択し、Enterを押します。
言語選択画面が出てくるので日本語を選択し右下の続行をクリックします。
インストール先をクリックし、左のドライブを選択し上の完了をクリックします。
元の画面に戻るので続行をクリックします。
インストールが開始されるのでその間にrootパスワードの設定と作業用ユーザーを追加します。
画面の指示に従い好きな値を入力してください。
作業用ユーザーを作る時、「このユーザーを管理者にする」にチェックボックスを入れるのを忘れないでください。
インストールが完了すると右下に再起動ボタンが表示されるのでクリックし再起動します。

SSH接続

ここからはローカルPCにMacを使用することを想定しています。
Windowsの場合は別途ターミナルソフト(Tera Term等)をインストールしてください。
Linuxの場合はOS付属のターミナルエミュレータで構いません。
準備ができたら、ターミナルで以下を実行します。

$ ssh root@(VPSのIPアドレス)
The authenticity of host '***.***.***.***' can't be established.
RSA key fingerprint is **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**.
Are you sure you want to continue connecting (yes/no)? 

すると「初めての接続先ですが接続しますか?」という旨のメッセージが表示されるので「yes」と入力しEnterを押します。
次にパスワードを聞かれるのでインストール時に設定したrootパスワードを入力します。
これでSSHでの接続が完了しました。
ついでにアップデートとvimのインストール、次の作業の準備をしておきましょう。

# yum -y update
読み込んだプラグイン:fastestmirror
base                                                     | 3.6 kB     00:00     
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
Loading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
No packages marked for update
~~中略~~
完了しました!
# yum -y install vimLoading mirror speeds from cached hostfile
 * base: www.ftp.ne.jp
 * extras: www.ftp.ne.jp
 * updates: www.ftp.ne.jp
~~中略~~
完了しました!
# su (作業用ユーザー名)
$ cd
$ mkdir .ssh

SSHの設定

SSHのセキュリティーを高める為公開鍵認証ログインを使い、パスワード認証ログインを使えないように設定していきます。

まずクライアント側で公開鍵と秘密鍵を作成します。
既に~./ssh下に鍵がある方は公開鍵のアップロードまで飛ばしていただいて結構です。
Windowsの場合は使っているターミナルソフトによって作成方法が異なるようなので調べてみてください。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hoge/.ssh/id_rsa):  #空のままEnter
Enter passphrase (empty for no passphrase):  #空のままEnter
Enter same passphrase again:  #空のままEnter
Your identification has been saved in /Users/hoge/.ssh/id_rsa.
Your public key has been saved in /Users/hoge/.ssh/id_rsa.pub.
The key fingerprint is:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|    ~~~  ~~~     |
|     @    @      |
|       ||        |
|    ********     |
|    ********     |
+-----------------+

するとホームフォルダの.sshフォルダ下にid_rsa(秘密鍵)とid_rsa.pub(公開鍵)というファイルが作成されます。
このうちの公開鍵をVPSにアップロードします。

$ scp ~/.ssh/id_rsa.pub (作業用ユーザー名)@(VPSのIPアドレス):~/.ssh/

パスワードを聞かれるのでインストール時に設定した作業用ユーザーのパスワードを入力しEnterを押します。
次にVPSに接続します。

$ ssh (作業用ユーザー名)@(VPSのIPアドレス)

パスワードを聞かれるので入力します。
接続が完了したら、公開鍵の名前をSSHがデフォルトで読み込む物に変更し、アクセス権を変更します。

$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

次にSSHの設定ファイルを編集していきます。

$ sudo vim /etc/ssh/sshd_config
#RSAAuthentication yes
#PubkeyAuthentication yes
↓公開鍵認証を有効
RSAAuthentication yes
PubkeyAuthentication yes

以上で公開鍵認証による作業用ユーザーでの接続しかできなくなりました。
設定を反映させます。

$ sudo service sshd restart

これで設定は完了です。
正しく接続できるかどうかを確認します。
設定が失敗している場合もあるので先ほどの接続を切らずに新しいウィンドウやタブで実行してください。
sshクライアントはデフォルトで~/.ssh/id_rsaを読み込むので場所の指定は必要ありません。

$ ssh (作業用ユーザー名)@(VPSのIPアドレス)

接続が成功したら次はパスワード認証とrootログインを禁止します。

$ sudo vim /etc/ssh/sshd_config
#PermitRootLogin yes
↓rootでのログインを禁止
PermitRootLogin no

#PasswordAuthentication yes
↓パスワード認証ログインを禁止
PasswordAuthentication no

これでSSHの設定は完了です。
そこそこセキュリティーを高めれたかと思います。

ドメインの設定

ここではお名前.comで既にドメインを取得していることを前提とします。
他サイトで取得していてもほとんど同じようにできるはずですのでその場合は調べてみてください。

ドメインNaviにアクセスしてログインします。
取得済みのドメイン一覧が表示されるので一番右の[ネームサーバー]の下の[変更する]をクリックしてください。
お名前.com各サービスを使用からVPS(KVM)の横の[設定する]をクリックしてください。
確認画面が表示されるのでもう一度[設定する]をクリックします。
しばらくすると元の画面に戻るので次は左の[▶︎DNS関連機能の設定]をクリックしてください。
設定したいドメインの横にチェックを入れ、[次へ進む]をクリックしてください。
DNSレコード設定を利用するの横の[設定する]をクリックしてください。
入力の欄のVALUEにVPSのIPアドレスを入力し、TYPEがA、状態が有効になっている事を確認したら追加をクリックしてください。
一番下のDNSレコード設定用ネームサーバー変更確認にチェックを入れて確認画面へ進むをクリックしてください。
確認画面が出てくるので設定するをクリックしてください。
次に、VPSのコントロールパネルを開き、VPSの電源を切ります。
DNS逆引き設定の変更後のホスト名にドメイン名を入力し確認をクリックします。
確認画面が表示されるので実行をクリックします。
これでドメインとVPSが結びつきました。

Webサーバーの設定

いよいよ大詰め、Webサーバーの設定をしていきます。

VPSに接続し、サーバーソフトウェアをインストールしていきます。

$ sudo yum -y install httpd php php-mbstring

インストールが完了したら次はWebサーバーの起動設定とファイアウォールの設定をしていきます。

$ sudo systemctl start httpd
$ sudo systemctl enable httpd
$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --add-service=https --permanent

次にWebサーバーの設定ファイルを編集していきます。

$ sudo vim /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
ServerName www.example.com:80
↓サーバー名の指定
ServerName (先ほど設定したドメイン名):80

AddDefaultCharset UTF-8
↓文字化け防止
AddDefaultCharset none

これで最低限の設定は完了しました。
この他にも色々な設定があるので興味のある方は「Apache 設定」などで調べてみてください。

Webサイトの作成

これで最後です。
長かったですね、肩が凝ってきました。
さて、Webサーバーのドキュメントルートは/var/www/htmlになります。
いちいちアクセスするのは面倒なので作業用ユーザーのホームフォルダにシンボリックリンクを作成しましょう。
ドキュメントルートを変更してもいいですが僕はあまり好きではないのでこの方法を選びました。

$ ln -s /var/www/html ~/html

これで作業用ユーザーのホームフォルダ直下にあるhtmlフォルダで/var/www/htmlにアクセスできるようになりました。
htmlファイルを追加するにはいくつか方法がありますが今回は「ローカルPCでhtmlファイルを作成してscpコマンドで転送する」という方法を使いたいと思います。
まず適当なhtmlファイルをローカルPCで作成します。

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>Test WebSite</title>
</head>
<body>
    <h1>Hello!!</h1>
</body>

次にこれをscpコマンドで転送します。

$ scp index.html (作業用ユーザー名)@(VPSのIPアドレス):~/html

これでVPSにhtmlファイルが追加されました。
念のため確認しておきましょう。

$ cd html
$ ls -a
.  ..  index.html

ご自身のドメイン名をブラウザに入力してみて[Hello!!]と表示されればこれでWebサイトの作成は完了です。

おわりに

いかがだったでしょうか、僕自身想像していたよりかなり簡単に設定ができました。
この記事を書くのに費やした時間の方が少し長いくらいです、さすがに嘘です。
今後もいろいろ作って遊びながら学んでいきたいと思います。

参考リンク

SSH の設定でセキュリティ強化 for お名前.com VPS
CentOS 7 でLAMP(Apache+MariaDB(MySQL)+PHP)インストールからWordPressを動かすまで(Apache編)
CentOS 7.0 - ファイアウォール設定!