AWS初心者が表題の件にチャレンジした際のメモです。
AWSで「LAMP環境を構築する」、「VPCを作成する」、「開発環境を整える」といった単体のチュートリアルは
ネットに多数落ちているのですが、実際はそれら全てを組み合わせて環境構築する必要があります。
それら全てを通しでやった際にハマったところ、よくわからなかった所、未だにわからない所(笑)
をせっかくなので書いておきます。
(初心者ゆえに誤った部分があるかもなので、その場合はご指摘ください。)
目次
- VPCを作成する
- LAMP環境を構築する
- 簡易な開発環境を整える
- phpMyAdminのインストール
- FTPのインストール
1.VPCを作成する
参考にさせて頂いたサイト
「AWS体験ハンズオン ~セキュア&スケーラブルウェブサービス構築~」に参加してきました
非常に丁寧に解説されているので、基本このサイト通りでまず大丈夫かと思います。
私はヘルスチェックの部分でハマったのですが、凡ミスでした。(*以下参照)
【AWS】【ELB】AWS初心者がELBのヘルスチェックではまったら
2.LAMP環境を構築する
上記ですでにAMIからEC2インスタンスを複製してしまっていましたが、まずメイン(?)のEC2インスタンス内で
- LAMP環境
- phpMyAdmin, FTP
を構築、インストールした後で複製しないといけませんでした。
以下、公式サイト通りやれば問題ないかと。
チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール
*Apache、MySQL、PHPのReleaseバージョンは逐次チェック
Apacheバージョン確認
MySqlバージョン確認
PHPバージョン確認
3.簡易な開発環境を整える
phpMyAdminのインストール
まずはこのページを参考にさせて頂いたのですが僕の環境ではうまくいかず、以下のページを参考にさせて頂きました。
AWSでphpmyadminインストールする方法
Amazon EC2 (Amazon Linux) での phpMyAdmin インストールと設定
標準のリポジトリのままではyumを使ってphpMyAdminがインストールできないので、RPMForgeのリポジトリを導入する。
RPMForge(現在はRepoforgeに改名しているようです)は「サードパーティーレポジトリ」と呼ばれているもので、
CentOSが標準で用意している以外のサードパーティが作成したパッケージを「yum」でインストールできるようにする為のもの
最新のバージョンはここで確認
で、以下のコマンドを実行するところでハマりました。
#sudo yum -y --enablerepo=rpmforge install phpMyAdmin
なぜか"phpMyAdmin not found"的なエラーが出てしまう。
コマンドを以下に変更したら出来ました。
#sudo yum -y --enablerepo=epel install phpMyAdmin
rpmforgeをepelに変更したら出来ました。
上記のページを見るとEPELもRepoforgeと同じサードパーティーレポジトリらしいのですが、EPELはインストールしていないので、Amazon LinuxにはデフォルトでEPELが入っているってことなんだろうか、、つまりRepoforgeは結局使えてないってこと?
ここは気持ち悪いまま。
次にphpMyAdmin.confをいじって設定を変更します。
場所は"/etc/httpd/conf.d/phpMyAdmin.conf"にあります。以下のサイトを参考にさせて頂きました。
AWSにApache+PHP+MySQLとphpMyAdmin,vsftpdを導入する手順
ここでまたハマりました。http://{Elastic IP}/phpMyAdmin でアクセスしようとすると403のエラーが返ってくるのです。
結果的には以下のように.confファイルを書き換えて解決しました。
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
# Require ip 127.0.0.1
Require all granted
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
# Order Deny,Allow
# Deny from All
# Allow from 127.0.0.1
Order allow, deny
Allow from 自分のマシンのIP
# Allow from ::1
</IfModule>
{省略}
<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
# Require ip 127.0.0.1
Require all granted
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
# Order Deny,Allow
# Deny from All
#Allow from 127.0.0.1
Order allow, deny
Allow from 自分のマシンのIP
#Allow from ::1
</IfModule>
</Directory>
</Directory>
ただ、ここもセキュリティ上、"Require all granted" しちゃっていいのかどうかわかりません、、
じゃないとアクセスできなかったので、、誰か詳しいかた教えてくださいお願いします。
次にphpMyAdminがRDSインスタンスを参照できるように、config.inc.phpというファイルで設定を変更します。
このファイルがあるディレクトリもチュートリアルによってまちまち?で不安です笑
基本的には "/var/www/html/tools" とか "/usr/share/phpmyadmin" らしいのですが、私の場合は
なぜか2つありました。
"/etc/phpMyAdmin" と "/usr/share/phpMyAdmin/setup/frames" です。
なぜなんだ、、と思いつつ、後者は記述内容があきらかに違ったため前者ディレクトリ内のconfig.inc.phpを以下のように編集。
$cfg['Servers'][$i]['host'] = 'RDSのエンドポイント';
また、blowfishの文字列も記入するそう。(ただ、私の場合すでに文字列が記入されており、そのままにしました。)
$cfg['blowfish_secret'] = 'ランダムな文字列';
以上でphpMyAdminにログインできました!
FTPのインストール
こちらvsftpdというFTPを使えるようにしてくれるパッケージをインストールします。
以下を参照させて頂きました。
AWSにApache+PHP+MySQLとphpMyAdmin,vsftpdを導入する手順
設定ファイルは以下の場所に無事ありました。
"/etc/vsftpd/vsftpd.conf"
このvsftpd.confを、上記のページを参考に修正すればいけるはず。
ない項目もあるので、ないものは適宜追加してください。
と、だいぶ粗めですがこんなかんじでひとまず、簡易な開発(本番も?)環境ができました。