はじめに
前提
✅VPSは契約済み。
準備
【手順1】rootユーザーでSSH接続する
✅VPS上で各種コマンドを実行したいので、まずはSSH接続する!
【手順1-1】秘密鍵を生成する
すでに秘密鍵(〇〇.pem)をダウンロードしていれば作業不要。
なければ新たに秘密鍵(〇〇.pem)を生成する。
自分が契約しているVPSのドキュメントを見るのがおすすめ。
【手順1-2】秘密鍵を.sshディレクトリに置く
【手順1-3】秘密鍵の権限を変更する
秘密鍵(例:ssh_key.pem)
の権限を変更する。
chmod 600 ~/.ssh/ssh_key.pem
【手順1-4】サーバーの22番ポートを接続許可する
✅VPSの管理画面でSSH接続に使用する22番ポートを接続許可しておく。
(XServerの場合)
- 管理画面で「パケットフィルター設定」を開き、「パケットフィルター設定を追加する」
- 「SSH接続で22番ポートを許可する設定」を追加する。
【手順1-5】サーバーのIPアドレスを確認する
✅VPSの管理画面で「サーバーのIPアドレス」を確認する。
(XServerの場合)
管理画面の「VPS管理」で確認できる。
→この場合IPアドレスは220.158.21.55。
→この後のSSH接続で使うのでメモしておく。
【手順1-5】SSH接続する
【手順2】パッケージを更新する
✅VPSは古い状態で提供されることが多いので、まずはパッケージを最新に更新する。
【手順2-1】更新
【手順3(飛ばしてもOK)】一般ユーザーを追加する
今はrootユーザーという何でもできる最強権限で操作しており、誤操作のリスクが高い💦
普段は安全な一般ユーザーで操作したいので、まずは一般ユーザーを作る✅
【手順3-1】一般ユーザーを追加
✅一般ユーザー「deploy(任意の名前)」を追加する。
- 一般ユーザーを追加。
adduser deploy
パスワードや名前の入力を求めれるので、適当に入力してEnterを押していく。
- sudo権限を付与。
usermod -aG sudo deploy
【手順3-2】一般ユーザーにSSH鍵を配置
✅ 新しく作った一般ユーザー(ここでは deploy)でも、パスワードではなく 公開鍵認証 でログインできるようにする。
- .ssh ディレクトリを作成。
sudo mkdir -p /home/deploy/.ssh
- ディレクトリに権限を設定。
sudo chmod 700 /home/deploy/.ssh
- rootユーザーの公開鍵を、一般ユーザー用にコピー。
sudo cp /root/.ssh/authorized_keys /home/deploy/.ssh/authorized_keys
(公開鍵、秘密鍵はrootユーザーと同じものを使い回す)
- 公開鍵の所有者、権限を設定。
sudo chown deploy:deploy /home/deploy/.ssh/authorized_keys sudo chmod 600 /home/deploy/.ssh/authorized_keys
【手順3-3】一般ユーザーでSSH接続する
HTMLを公開する
【手順1】Webサーバー(Nginx)を入れる
✅HTMLを表示するにはWebサーバーが必要!
【手順1-1】インストール
【手順1-2】ファイアウォールの設定
✅ブラウザで該当ページを見るため、HTTP(80番ポート)を開ける。
- ファイアウォールでHTTP(80番ポート)を開ける。
# 22番ポートも引き続き必要なので開けておく sudo ufw allow 22/tcp # 80番ポートを開ける sudo ufw allow 'Nginx HTTP' # 有効化 sudo ufw enable # 確認 sudo ufw status
Nginx HTTP
がALLOW
になっていればOK!💡これで、VPSの中にインストールしているWebサーバーはHTTP(80番ポート)を開放できた!しかし、まだVPS自体はHTTP(80番ポート)を開放できていない💦
→両方とも開放して初めてHTTP(80番ポート)が使えるようになる
- サーバーの管理画面で、HTTP(80番ポート)を許可する。
(契約しているVPSによって手順は異なるが、どのVPSでも管理画面の中に「パケットフィルタリング」や「パケットフィルター」という設定があるはず!)
(XServerの場合)
- 該当のVPSの管理画面を開く。
- パケットフィルター設定を追加する。
- Web(80番ポート)の設定を追加する。
- 該当のVPSの管理画面を開く。
【手順1-3】http://〇〇にアクセスして表示を確認
【手順2】任意のHTMLを表示してみる
✅デフォルトのHTMLではなく、任意のHTMLを表示する。
【手順2-1】新しいHTMLを作成
✅適当なHTMLを作ってみる。
- HTMLを作成。
sudo nano /var/www/html/index.html
<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <title>テストページ</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <style>body{font-family:system-ui;max-width:720px;margin:40px auto;padding:0 16px;line-height:1.8}</style> </head> <body> <h1>やったー!公開できた🎉</h1> </body> </html>
→
CTRL
+X
→Y
→Enter
を押してファイルを保存して閉じる。
【手順2-2】http://〇〇/index.htmlにアクセスして表示を確認
✅今作ったindex.htmlが表示されるか確認してみる
- ブラウザで
http://<VPSのIP>/index.html
もしくはhttp://ドメイン名/index.html
にアクセスし、今作ったページが表示されればOK🎉(VPSのIPはサーバーの管理画面から確認できる)
/var/www/html/〇〇
にHTMLを増やしていけば自由にサイトが作れる!まとめ
✅VPSを契約してから、Nginxをインストールして、HTMLを表示するまでの流れをまとめた。
大まかな流れは、
- SSH接続して
- Nginxをインストールする
の2ステップだけでHTMLが表示されるようになるので比較的簡単だった☺️
ただし、今回はセキュリティには配慮できていないので、実際に運用する場合はさらに設定が必要になりそう⚠️