LoginSignup
11
11

More than 5 years have passed since last update.

【AWS】VPC内にLAMP環境を構築し、phpMyAdminとFTPを使えるようにする

Last updated at Posted at 2015-07-17

AWS初心者が表題の件にチャレンジした際のメモです。

AWSで「LAMP環境を構築する」、「VPCを作成する」、「開発環境を整える」といった単体のチュートリアルは
ネットに多数落ちているのですが、実際はそれら全てを組み合わせて環境構築する必要があります。

それら全てを通しでやった際にハマったところ、よくわからなかった所、未だにわからない所(笑)
をせっかくなので書いておきます。
(初心者ゆえに誤った部分があるかもなので、その場合はご指摘ください。)

目次

  1. VPCを作成する
  2. LAMP環境を構築する
  3. 簡易な開発環境を整える
    • phpMyAdminのインストール
    • FTPのインストール


1.VPCを作成する

以下のような構成でネットワークを作成します
aws-vpc.jpg

参考にさせて頂いたサイト
「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ファイルを書き換えて解決しました。

phpMyAdmin.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を以下のように編集。

phpMyAdmin.conf
$cfg['Servers'][$i]['host'] = 'RDSのエンドポイント';

また、blowfishの文字列も記入するそう。(ただ、私の場合すでに文字列が記入されており、そのままにしました。)

phpMyAdmin.conf
$cfg['blowfish_secret'] = 'ランダムな文字列';

以上でphpMyAdminにログインできました!

FTPのインストール

こちらvsftpdというFTPを使えるようにしてくれるパッケージをインストールします。
以下を参照させて頂きました。
AWSにApache+PHP+MySQLとphpMyAdmin,vsftpdを導入する手順

設定ファイルは以下の場所に無事ありました。
"/etc/vsftpd/vsftpd.conf"

このvsftpd.confを、上記のページを参考に修正すればいけるはず。
ない項目もあるので、ないものは適宜追加してください。

と、だいぶ粗めですがこんなかんじでひとまず、簡易な開発(本番も?)環境ができました。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11