2022/01/01
「はじめてのVPSシリーズ」の第4回目です。
前回はポート番号の変更を行いました。
SSH接続に関してのセキュリティ対策としてはこの辺りでOKです。
今回はVPSにWEBサーバー(Apache)をインストールしてHTMLファイルをアップして表示してみます。
今回のゴール
VPSにWEBサーバーをインストールしてブラウザにIPアドレスを入力して以下のようにHTMLページが表示される。
前提知識
WEBサーバーをインストールしたら次にHTMLファイルをアップロードします。
/var/www/html ディレクトリ(ドキュメントルート)にHTMLファイルをアップロードすることになるのですが、デフォルトでは一般ユーザーの権限(SFTPユーザーの権限)では書き込みできません。
ですので、ここの権限(パーミッション)を変更する作業が発生します。
事前に、Linuxコマンドで権限の確認の仕方や変更手順を調べておくと、作業はスムーズにいきます。
例えば、デフォルトの状態でドキュメントルートの権限を確認する場合は
・ /var/www ディレクトリに移動
・ ls-l コマンドで権限確認
すると、以下のような内容が確認できます。
これをApacheユーザーと一般ユーザーでも書き込みできるように所有者と権限を変更します。
新しいLinuxの教科書
ただ、読むだけではなく実践しながら進める形式になっています。(※コマンド一覧とか早引きの本ではありません)初心者がつまずくであろう箇所は補足説明がしっかり入っています。基本を大事にしている本なので、書いてあることはとてもわかりやすいです。それゆえ、中級者以上の方には物足りないかもしれませんが、初学者にはススメします!
手順
1. WEBサーバー(Apache)インストール
CentOSでは、httpd は Apache のことを指します。
# 事前にrootユーザーになっておく
$ yum install httpd
2. httpd(Apache)起動
インストールしたら早速httpd(Apache)を起動します。
#httpd(Apache)を起動
$ systemctl start httpd
#httpd(Apache)を自動起動
$ systemctl enable httpd
自動起動が正しく設定されたかどうかは以下のコマンドで確認できます。
$ systemctl list-unit-files -t service
上下キーでリストをたどるか "/httpd" と入力してエンターを押すとキーワード検索ができます。
この辺りはviコマンドの操作と同じです。
よくわからない方は以下のページにある「ファイルを閲覧する」にあるviコマンドの説明をご参照ください。
3. ファイアウォールの設定
http通信が遮断されている状態なので、通信が通過できるようにします。
ついでに、暗号化された通信(SSL)も許可しておきます。
#http通信
$ firewall-cmd --add-service=http --zone=public --permanent
#https通信
$ firewall-cmd --add-service=https --zone=public --permanet
サービスが起動していない状態で firewall-cmd コマンドを使用すると FirewallD is not running というエラーが発生します。サービスを起動してからコマンドを使用してください。
[root@example ~]#systemctl start firewalld
以下のように "success" と表示されていれば成功です。
最後に設定を反映させるためにファイアウォールを再起動します。
#ファイアウォール再起動
$ systemctl restart firewalld
ブラウザに VPS の IPアドレスを入力してみます。
以下のような画面になればOK。
4. ドキュメントルートの所有者・権限変更
Apache をインストールするとデフォルトでは /var/www/html の場所が HTML を設置するディレクトリ(ドキュメントルート)になります。
ただ、書き込み権限がrootユーザーのみなので、apacheユーザーと一般ユーザーでも書き込みできるように、所有者と権限を変更してあげます。
#ドキュメントルートまで移動
$ cd /var/www
#--------------------------
#所有者・権限を変更
#--------------------------
#htmlディレクトリの所有者をapacheに
#グループを一般ユーザー(例ではlaraweb)に
$ chown apache:laraweb html
#権限を変更
#所有者とグループの権限を全部OKにする
$ chmod 775 html
実演
5. SFTPクライアントソフトで接続・アップロード
上記の作業が完了すると、htmlファイルをドキュメントルートにアップロードするとブラウザで確認することができます。
SFTPクライアントソフトを使ってHTMLファイルをアップロードしてみましょう。
Windows | Mac |
---|---|
RLogin、WinSCP、Filezilla | Cyberduck、Filezilla、Transmit |
どのツールを使うにしても、以下の情報があれば接続できます。
プロトコル | SFTP |
---|---|
ポート番号 | 22(前回記事でsshのポート番号を変更した人はその番号) |
接続先 | VPSのIPアドレス |
ユーザー名 | 一般ユーザー(例では "laraweb" ) ※ SFTP は ssh と同様、root では接続できません |
パスワード | 一般ユーザのパスワード |
自分はFilezilla(ファイルジラ)を選択しました。
Filezillaの設定では以下のようになります。
ポイントはログオンタイプに「鍵ファイル」を選択することと、利用できる鍵ファイルが ppk 形式なので変換することです。
ただ、Filezillaには ppk 形式に変換する機能があるので、「変換するか?」というダイアログが表示されればそのまま「OK」を押すだけです。
秘密鍵をppk形式に変換できたら保存し、再びサイトマネージャから読み込みます。
接続が成功したら一般ユーザーのホーム画面(/home/laraweb)にアクセスします。
ここから親ディレクトリへ2階層上がり、var → www → html とディレクトリを移動します。
この場所に以下の index.html を作成し、アップロードします。
<html>
<head>
<title>Test Page</title>
</head>
<body>
<h1>Hello Apache!</h1>
</body>
</html>
6. 動作確認
VPSのIPアドレスをブラウザに入力して下記のように確認できればOKです。
以上です。
さくらのVPS
Linuxの知識がある方や初心者の枠から脱した人は「VPS」をおススメします!もし、あなたがデザイナーで静的ページのサイトしか作らないのであれば「レンタルサーバー」でOKです。ただ、Webプログラマーとして仕事をするのであればroot権限のあるVPSサーバーを最低1台、自分専用(学習用)を持っておいたほうがいいでしょう。
Laravelプログラマーの初心者が選ぶ学習用サーバーとは?
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。