1. AWSのEC2にssh接続する。
2. 新しいターミナルを開き、自分のパソコンのフォルダをec2のフォルダにコピーする。
- 自分のパソコンのフォルダは"/Users/name/Documents/html/hdoc"を指定した。
- ec2のフォルダは"/home/ec2-user"を指定した。
- EC2インスタンスのパブリックDNSは、ec2-3-115-72-15.ap-northeast-1.compute.amazonaws.com:/home/ec2-userを指定した。
scp -i "/Users/name/Downloads/ec2-key.pem" -r
"/Users/name/Documents/html/hdoc" ec2-user@ec2-3-115-72-15.ap-northeast-1.compute.amazonaws.com:/home/ec2-user
- -iオプションででキーペア("/Users/name/Downloads/ec2-key.pem") を指定する。
- -rオプションを追加して、ディレクトリ全体をコピーできるようにする。
3. EC2のルートディレクトリ(/var/www/html)にあるすべてのファイルとディレクトリを削除。
sudo rm -rf /var/www/html/*
4. EC2のホームディレクトリの内容をドキュメントルートにコピー。
/home/ec2-user/hdoc の内容を /var/www/html にコピーした。
sudo cp -R /home/ec2-user/hdoc/* /var/www/html/
5. EC2のドキュメントルートの権限の確認
-lオプションは、詳細な情報を表示するためのもので、所有者やグループを含む情報を表示する。
ls -l /var/www/html
# drwxr-xr-x 5 root root 64 4月 17 07:45 html-folder
# -rw-r--r-- 1 root root 2940 4月 17 07:45 index.html
# -rw-r--r-- 1 root root 6975 4月 17 07:45 output.html
# -rw-r--r-- 1 root root 1333 4月 17 07:45 はじめに.html
各カラムがどの情報を表しているかの説明。
1. ファイルの属性と権限
- 最初の文字は、ファイルタイプ。
'd' はディレクトリ、 '-' は通常のファイルを意味する。 - 所有者、グループ、他のユーザーに対するファイルのアクセス権限(各3文字)。
許可がある場合は 'r'(読み込み)、'w'(書き込み)、'x'(実行)が表示され、ない場合は '-' が表示される。
2. ファイルのハードリンク数
3. ファイルを所有するユーザー
- root:ファイルの所有者
4. ファイルを所有するグループ
- root:ファイルのグループ所有者
5. ファイルサイズ(バイト数)
6. ファイルの最終更新日時
7. ファイル名
表示された権限情報を見ると、ファイルとディレクトリは root ユーザーが所有している。
ファイルとディレクトリの権限は適切である。
6. サーバー側のスクリプトを使用する場合や、動的コンテンツを提供する場合は、ウェブサーバにユーザーとグループを設定する必要がある。
私のウェブサイトは、HTML、JavaScript、CSS だけで構成された静的なウェブサイトなので、ユーザー名とグループ名をウェブサーバーにする必要はない。
私は所有権を変更しなかったが、やり方は載せておく。
ウェブサーバにユーザーとグループを設定する。
Apache ウェブサーバーの場合、一般的なユーザー名とグループ名は www-data である。
sudo chown -R www-data:www-data /var/www/html/html-folder
sudo chown www-data:www-data /var/www/html/index.html
sudo chown www-data:www-data /var/www/html/output.html
sudo chown www-data:www-data /var/www/html/はじめに.html
7. ファイルとディレクトリの権限が適切でない場合は書き換える。
今回は書き換える必要がなかったが、やり方は載せておく。
一般的に、ディレクトリは 755(所有者に読み書き実行、グループと他のユーザーに読み取り実行)の権限が適切。
ファイルは 644(所有者に読み書き、グループと他のユーザーに読み取り)の権限が適切。
# html-folder以下のディレクトリの権限を755に設定
sudo find /var/www/html/html-folder -type d -exec chmod 755 {} \;
# html-folder以下のファイルの権限を644に設定
sudo find /var/www/html/html-folder -type f -exec chmod 644 {} \;
# ファイルの権限を644に設定
sudo chmod 644 /var/www/html/index.html
8. EC2のssh接続を終了
exit