FTPが使えるようにする@Amazon EC2
タイムゾーンの確認
$ date 2014年 3月 18日 火曜日 10:09:26 UTC
日にち、曜日は合ってますが時間が違います。
タイムゾーンの変更
sudoコマンドでルート権限に切り替え
$ sudo su -
タイムゾーンを日本語に設定
# cp -i /usr/share/zoneinfo/Japan /etc/localtime
overwriteしていいか確認されるのでyes
cp: overwrite `/etc/localtime'?
dateコマンドで確認
Tue Mar 18 19:11:12 JST 2014
オーケー。
Apacheのインストール
yum -y install httpd
Package httpd-2.2.26-1.1.amzn1.x86_64 already installed and latest version Nothing to do
そうです。最新のものが入っているいるのです。すでに。 (最初の設定時、ブラウザアクセスして確認済み)
なのでここはとばして
ユーザを作成
ユーザを作成し、パスワードを設定します。
ユーザ「showzine」を作成
# useradd ユーザー名
ユーザのパスワードを設定
passwd ユーザー名
Changing password for user ユーザー名. New password:
パスワード入力を促されるので希望するパスワードをタイプ。
タイプしたあとに確認用にRetypeを促されるので再度タイプしてオーケー。
passwd: all authentication tokens updated successfully.
公開ディレクトリを作成
Webの公開ディレクトリを作成します。
cdコマンドで移動します。
cd /var/www/html/
ディレクトリ「public」を作成します。
# mkdir public
このディレクトリ及びディレクトリ内のファイルのの所有者を「ユーザー名」に変更します。
# chown -R ユーザー名:ユーザー名 public
publicディレクトリのパーミッションを755に変更します。
# chmod 755 public
Apacheの自動起動を設定します。
# chkconfig httpd on
FTPサーバを構築
vsftpdをインストールします。
# yum install vsftpd
一度確認のメッセージが出るので、yesをタイプして進みます。
Complete!が表示されたらインストール完了。
vsftpdの設定ファイルをvimで開いて編集します。
# vim /etc/vsftpd/vsftpd.conf
上記コマンドで設定ファイルがvimで開かれます。
anonymous_enable=YESを
anonymous_enable=NOに変更
#ascii_upload_enable=YES #ascii_download_enable=YES
上記の記述、どちらも冒頭の#を削除
ファイルの最後に以下を追記 (pasv_addressは自分で追加したElastic IPsの値)
use_localtime=YES force_dot_files=YES pasv_min_port=60000 pasv_max_port=61000 pasv_address=54.186.101.105
保存してvimを終了。
vsftpdを起動。
合わせて自動起動の設定もします。
起動
# service vsftpd start Starting vsftpd for vsftpd: [ OK ]
自動起動を有効化
# chkconfig vsftpd on
FTP接続してみる
ホスト名、ユーザー名で接続を試みるも、パスワードを求められる以前に接続に失敗しました。
FTPで設定したportが実際には未設定(AWSコンソール側のSecurity Groupで)なのではないかと思うので確認。
やはり使用している(自分で作成した)Security GroupにはSSHとHTTPのPortしかない。
Custom TCP ruleとしてPort rangeを21でSourceを0.0.0.0/0でAdd Rule
同様にしてPort rangeを60000-60010と指定してSourceを0.0.0.0/0でAdd Rule
これで設定が追加されたと思ったら追加されてませんでした。
「Your changes have not been applied yet.」で検索したところ、この状態ではまだ設定は確定されていないとのこと。どこに有効化のボタンがあるのかと思ったら、この文字列の下に(スクロールしないと見えなかった)ありました。
有効化されたことを確認して再度FTPで接続してみます。
FTPクライアントで以下の設定をして接続します。
サーバは追加したElastic IPs、ユーザ名は
EC2で使用するユーザ名「ec2-user」です。
パスワード認証はしないので「公開鍵認証を使用する」にチェックを入れてkeypairの場所を指定します。
今度は繋がりました。
公開ディレクトリ
/var/www/html/publicに移動して
ブラウザアクセスを確認するhtmlをアップしようとしたら蹴られます。
そういえばこのディレクトリは別にユーザを作成して
パスワードも設定していたのでした。なのでその設定(ユーザーとパスワード)で再度アクセス。
アクセスは出来ますがファイルの転送が失敗します。
FTPではなくSSH(FTPクライアントでも)がいいと思うので、独自ユーザの設定はやめてpublicディレクトリは ec2-userに変更することにします。
publicディレクトリの所有権を変更します。
sudo su -
で管理者に切り替え。
cdで移動
# cd /var/www/html
publicディレクトリの所有者を変更
chown -R ec2-user:ec2-user public
これで再度SSHで(FTPクライアントはCyberduckを使用)接続します。
アップロード出来るようになりました。
が、ルートドメインでアクセスしてもアップロードしたファイルにアクセスできません。
/var/www/html/publicは
どう指定すればドメインに割り当てられるのだろう?
以下の内容で解決しました。
AmazonCloudテクニカルガイド ―EC2/S3からVPCまで徹底解析―
- 作者: 李昌桓
- 出版社/メーカー: インプレスジャパン
- 発売日: 2010/04/23
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 157回
- この商品を含むブログ (13件) を見る