この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
タイトルの通りですが、今後も使うかもしれないので、備忘録として残しておきたいと思います。
まずはAWS Management Consoleでt1.microのインスタンスを作成します。(あえて手順は書きません)
次にEC2インスタンスがrunningになったのを確認してSSHでログインします。(security groupの設定で事前にSSHを許可しておきます。インスタンス作成時に作成したSSH鍵も指定します。)
ec2-userでログイン後はタイムゾーンを日本時間に設定しておきます。
sudo su -
cp -i /usr/share/zoneinfo/Japan /etc/localtime
※以後の操作はすべてrootユーザで行っています。
次にApacheのインストールをします。
yum -y install httpd
次にユーザ及び公開するディレクトリを作成し、Apacheを起動します。(自動起動の設定も同時に行っておきます)
useradd test-user ←ユーザを作成します。
passwd test-user ←作成したユーザのパスワードを設定します。
cd /var/www/html/
mkdir public
chown -R test-user:test-user public
chmod 755 public
service httpd start
chkconfig httpd on
これで、apacheまでのインストールは完了です。次にAmazon EC2上でvsftpdをインストールします。
yum install vsftpd
/etc/vsftpd/vsftpd.confをviで開いて編集します。
anonymous_enable=NO
ascii_upload_enable=YES(先頭の#を削除)
ascii_download_enable=YES(先頭の#を削除)
以下の行を追加します。
use_localtime=YES
force_dot_files=YES
pasv_min_port=60000
pasv_max_port=61000
pasv_address=xxx.xxx.xxx.xxx(Elastic IPアドレスを指定します。)
vsftpdの起動をします。(自動起動の設定も同時に行っておきます)
service vsftpd start
chkconfig vsftpd on
とりあえずFTPクライアントをインストールしました。(FFFTPを使用して無事接続確認が完了)
Apacheの公開用ドキュメントディレクトリにBasic認証をつけるための手順を以下にまとめておきます。まずはユーザ認証によるアクセス制限をかけるディレクトリを/var/www/html/publicとします。(適宜読み替えてください。)ディレクトリが決まったら、htpasswdコマンドでtest-userというユーザーを作成し、パスワードを設定する。パスワードの設定に必要なパスワードファイルは、ここでは/etc/httpdディレクトリに.htpasswdとして作成します。(新規に.htpasswdファイルを作成する際には-cオプションをつけます
htpasswd -c /etc/httpd/.htpasswd test-user
New password:
Re-type new password:
Adding password for user test-user
次にApacheの設定ファイルにBasic認証するための設定を追加します。
vi /etc/httpd/conf/httpd.conf
以下の設定をviで編集します。
<Directory "/var/www/html/public">
AuthType Basic
AuthName "Secret Zone"
AuthUserFile /etc/httpd/.htpasswd
Require user test-user
</Directory>
/etc/httpd/conf/httpd.confの編集後はApacheの再起動が必要なので、再起動します。
service httpd restart
http://Elastic IPアドレス/publicにアクセスして、認証画面がでるかを確認します。
参考までにInboundでsecurity groupに設定している項目
- SSHポート(22番)の開放設定
- HTTPポート(80番)の開放設定
- FTPポート(21番)の開放設定
- パッシブFTPのデータ転送用のポート(60000-61000)
これで一通りやりたかったことは完了