脆弱性診断、負荷試験のテストをしたいため、試験用のアプリケーション環境をEC2上で構築する。
EC2上でのミドルウェア環境構築では、AWS Elastic Beanstalkで構築できる部分もあるようだが、最新バージョンで以下のミドルウェア環境を作りたいので、個別に構築する事にする。
- PostgreSQL 9.1.3
- apache 2.4.2
- php 5.4.3
PostgreSQL
PostgreSQLのソースをダウンロードし、MD5チェックを行う。
wget http://ftp.postgresql.org/pub/source/v9.1.3/postgresql-9.1.3.tar.gz wget http://ftp.postgresql.org/pub/source/v9.1.3/postgresql-9.1.3.tar.gz.md5 cat postgresql-9.1.3.tar.gz.md5 md5sum postgresql-9.1.3.tar.gz
PostgreSQLのインストールにおいて、足りないパッケージがいくつかある。configureをかけながら足りないパッケージが判明するので、都度yumでインストールする。
必要なパッケージがそろったら、INSTALLファイルに記載されている通り、インストールを行う。
apache
apacheサイトからaprとapr-utilをダウンロードして、apacheのソースディレクトリ内にあるsrclib内に入れてから、事前にインストールする。利用したバージョンは以下。
- apr-1.4.6
- apr-util-1.4.1
また、apacheにてSSLを有効にしたいので、最新のopensslバージョンもインストールしておく。利用したバージョンは以下。
- openssl-1.0.1c
(apacheのmakeでエラーが出るので、configureオプションで、-fPICを設定。)
その後、apacheのインストールを行う。configureオプションは以下である。
./configure --enable-so --with-included-apr --enable-ssl --with-ssl=/usr/local/ssl
php
configureを走らせている段階で足りないモジュールがいくつか出てくるので、都度yumでインストールする。
configureオプションは以下である。
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-pgsql=/usr/local/pgsql
phpインストール後に、httpd.confに必要な設定を追加する。最低限の設定は以下。
- PHP 共有モジュールをロードさせる設定
- 拡張子phpをapacheが PHP としてパースするよう設定
稼働確認
apacheを起動すれば、設定内容が反映される。
まず、EC2の「Security Groups」でhttpアクセスを有効化する。
その後、php稼働確認用に、phpinfo関数を使った簡易phpファイルをWebサーバに配置して確認する。
備考
無料段階のEC2(マイクロインスタンス)のCPUやメモリのスペックでは、一つ一つの処理進捗が遅い・・・。これは仕方がない・・・。