動作環境 †
- OS X 10.11 El Capitan
- Vagrant 1.8.1
- VirtualBox 5.0.20
- CentOS 7.2.1511
- Apache 2.4.6
- PHP 5.6.21
事前準備 †
- S3バケット作成済み(Tokyoリージョン)
- IAMユーザー作成&AmazonS3FullAccessポリシーをアタッチ済み
AWS SDK for PHP v3をインストール †
$ curl -sS https://getcomposer.org/installer | php
- Composerコマンドを用いて最新安定版のAWS SDK for PHPをインストール
$ php composer.phar require aws/aws-sdk-php
- SDKモジュールをDocumentRoot配下へ移動
$ sudo chown vagrant /var/www/html
$ mv /home/vagrant/composer.* /var/www/html
$ mv /home/vagrant/vendor /var/www/html/vendor
- S3バケットへファイルをアップロードするサンプル作成
- アップロード用のtext.txt作成&DocumentRoot配下に配置
- hello_aws.php作成
<?php
// Require the Composer autoloader.
require 'vendor/autoload.php';
use Aws\S3\S3Client;
// Instantiate an Amazon S3 client.
$s3 = new S3Client([
'version' => 'latest',
'region' => 'ap-northeast-1',
'credentials' => [
'key' => 'my-access-key-id',
'secret' => 'my-secret-access-key',
],
]);
try {
$s3->putObject([
'Bucket' => 'bucketname',
'Key' => 'test.txt',
'Body' => fopen('./test.txt', 'r'),
'ACL' => 'public-read',
]);
} catch (Aws\Exception\S3Exception $e) {
echo "There was an error uploading the file.\n";
}
?>
- ブラウザ経由で http://192.168.33.10/hello_aws.php へアクセス
- S3バケットにtest.txtがアップロードされていることを確認
PHPエラーログ出力設定 †
$ sudo touch /var/log/php_errors.log
- php.ini内の"error_log"コメントアウト解除&出力先指定
$ sudo vi php.ini
-------------------------
error_log = /var/log/php_errors.log
-------------------------
- apacheユーザーにエラーログファイルの所有権を付与
$ chown apache:apache /var/log/php_errors.log