【AWS】Elastic Beanstalk で AWS SDK for PHP 2 をインストールしてみた

By | 2013/08/30

こんにちは、私用携帯のUSBポートが壊れてあたふたしてる KingOfComedy です。
約2ヶ月ぶりの更新で、3日坊主という言い回しすら生温い KingOfComefy です!

□ これでも仕事しているの

さて、前回の記事(気になるアプリ紹介vol.1)の続きと思いきや、ちょっと真面目なお話です。

先日、業務の関係で DynamoDB を使用することになり、PHP から操作する必要がでてきました。
プロジェクト環境はもちろん Elastic Beanstalk で作っています。

今回の記事では、AWS SDK for PHP 2 のインストール手順と注意点を記載しています。
心を込めて書きますので、一文一文噛み締めて読んでくださいね。

□ どうしたら使えるの?

まずは、タイトルに書かれている、「AWS SDK for PHP 2」をインストールします。
なので、EC2 側で PEAR を使ってインストールしましょう(※後述)

ちなみに、Beanstalk で作られた EC2 は初めから PEAR がインストールされていますので、
何も気にすること無く、PEAR コマンドが使用できます。
なんのこっちゃと思った人は、私と同じ駆け出し技術者ですね。一緒に頑張りましょう。

□ インストール

さて、インストールするためのコマンドです。
ec2-user で以下を打ち込んでみましょう。

[ec2-user@ip-XX-XX-XX-XX ~]$ pear channel-discover pear.amazonwebservices.com
[ec2-user@ip-XX-XX-XX-XX ~]$ pear install aws/sdk

パーミッションがどうの言われて、失敗したと思います。
じゃあ root 権限でインストールすれば良いの?
と思った人は、半分正解です。

なぜ半分なのかというと、インストール先の設定が変わるからです。

□ インストール先を確認しよう

まずは、ec2-user の方から見てみましょう。

[ec2-user@ip-XX-XX-XX-XX ~]$ pear config-show

ズラッと設定内容が表示されたと思います。
ではインストール先である、[PEAR data directory] を見てみましょう。

PEAR data directory  data_dir  /usr/share/pear/data

こんな感じですよね。
では次に root 権限で見てみましょう。

[ec2-user@ip-XX-XX-XX-XX ~]$ sudo su -
[root@ip-XX-XX-XX-XX ~]$ pear config-show

同じく[PEAR data directory] を見てみると、

PEAR data directory  data_dir  /root/pear/data

/root 以下に変わっているのが分かります。

しかし、/root 以下にインストールしてしまうと、
PHP 側からは権限の問題でアクセスできないので使用できず、インストールした意味がありません。
/usr 以下にインストールできれば使えるようになりますが、
ec2-user ではアクセス権限の問題でインストール出来ません。
これは困りましたね。

□ インストール先の変更

というわけで、root 権限でも /usr 以下にインストールするように変更しましょう。
[PEAR data directory] の内容を変更すれば良いのですが、
よくよく見ると、他の項目も /root 以下でいっぱいです。
これでは何かと不安なので、全て変えてしまいます。

[root@ip-XX-XX-XX-XX ~]$ mv /root/.pearrc /root/org.pearrc

これで終わりです。

/root/.pearrc が設定ファイルの本体です。
これをリネームしただけで、デフォルトの設定に戻ります。

□ もう一度インストール

設定したファイルを適用するために、一度 root から抜けましょう。
その後、root 権限を取得して、設定を見なおしてみましょう。

[root@ip-XX-XX-XX-XX ~]$ exit
[ec2-user@ip-XX-XX-XX-XX ~]$ sudo su -
[root@ip-XX-XX-XX-XX ~]$ pear config-show

設定内容が変わったと思います。

では、もう一度インストールしましょう!

[root@ip-XX-XX-XX-XX ~]$ pear channel-discover pear.amazonwebservices.com
[root@ip-XX-XX-XX-XX ~]$ pear install aws/sdk

これで無事に /usr 以下へインストールすることが出来ました!

□ 最後に

root 権限を得るために、

[ec2-user@ip-XX-XX-XX-XX ~]$ sudo su -

と打ち込んでいましたが、
ec2-user のまま、コマンドの先頭に sudo を付けるだけでも大丈夫です。

e.g.
[ec2-user@ip-XX-XX-XX-XX ~]$ sudo pear install aws/sdk

人によっては root ユーザーで操作するのを嫌がる方もいますので、お好みで…

長々とお付き合い頂きありがとうございました。
何かの足しになれば嬉しいです。

それではまたお会いしましょう!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です