【PHP】コンテナの環境変数を参照する

AWS ECSでコンテナアプリケーションを実装する時の、コンテナに設定された環境変数取得方法のまとめです 環境ごとの設定値を設定ファイルに書き出しておくのはよくやる手法ですが、githubを使ってソース管理する場合、思わぬ情報漏洩に繋がるケースがあります。 例えばデータベースのホスト名やパスワードを設定ファイルに書き出して環境ごとにコミットしたとします。FuelPHPの設定ファイルを例にとって見てみます。 config/production/db.php (普通に書く) return array( 'default' => array( 'connection' => array( 'hostname' => '255.255.255.255, 'database' => 'database', 'username' => 'testuser', 'password' => 'password', ), ), ); これをgithubへコミットしてしまうと、何かの拍子でpublicになってしまったとき外部から丸見えになってしまいます。何かの拍子というのは、そのほとんどが人的ミスによるものです。 また、こういった情報を良からぬクローラーがさらっていく情報漏洩が結構発生しているようですので、コンテナの環境変数に設定してアプリケーションか…

続きを読む

【PHP】Amazon SESでEメール送信

aws-sdk-phpを利用してAmazon SESからEメールを送信する方法のまとめです。 ※aws-sdk-phpのセットアップは以下リンク参照 【AWS】S3へファイルアップロード(PHP) 公式の詳細はこちら https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/send-using-sdk-php.html 実装 名前空間の定義 use \Aws\Credentials\CredentialProvider; use \Aws\Ses\SesClient; use \Aws\Exception\AwsException; 処理 /** * Amazon SES Sendmail * @param string $subject * @param string $body * @param string $to * @param string $from_email * @param string $from_name = null * @return bool * @throw Exception */ public static function send( string $subject, string $body, string $to, string $from_email, …

続きを読む

【PHP, JavaScript】POSTデータが多すぎてエラーになったときにとった対応

画面からユーザーの入力値をPOSTするプログラムで500エラーが発生し、エラーログを確認すると以下のメッセージを吐いていました。 *413 FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: Input variables exceeded nnn. このエラーはユーザーの入力値が多すぎて、submitしたときサーバー側で弾かれているエラーで、しきい値は php.ini の以下で設定できます。 php.ini ; How many GET/POST/COOKIE input variables may be accepted max_input_vars = 100 しかし本来セキュリティの観点から、この値は抑えられている(デフォルトは1000)ケースがあります。その場合は、フロント側で吸収する必要があるためその方法をまとめます。※あくまで一つの例なので他に良い方法があるかもしれません。 今回発生したケースでは、ユーザーや店舗などの設定値を縦に並べて一括で更新するという処理で、100は余裕で超えてしまうため対応を行いました。 POSTデータを入力するView(修正前) (※だいぶ簡単にしたもの) <form method="post" action="/users/index"> <input …

続きを読む

AWS-CLI使い方まとめ(S3編)

本番環境へSSH接続できなくて(権限なし)、DBのdumpファイルをどうやってGETしようか試行錯誤した時の方法です。 セッションマネージャーからAWS-CLIでS3バケットにアップロードして、S3経由で取得できました。 これは色々応用できるなと思い、AWS-CLIの使い方をまとめておきます。 ということでまずはS3操作について... 事前準備 AWS-CLIのインストール https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html $ aws --version aws-cli/1.16.170 Python/3.7.4 Darwin/17.5.0 botocore/1.12.160 設定 以下2ファイルを用意 (無ければ作る) $ cat ~/.aws/config [default] region = ap-northeast-1 $ cat ~/.aws/credentials [default] aws_access_key_id = AAAAAAAAAAAAAAAAAAAA aws_secret_access_key = BBBBBBBBBBBBBBB/CCCCCCCCCCCCCCCCCCCCCCCC ※複数環境を使い分ける場合は、credentialsに設定した[キー]を --profile [キー] で指定する …

続きを読む

【PHP】PHPUnitを使う(初期セットアップとかんたんな使い方)

導入から簡単なテストコードの実行までの手順のまとめ 前提条件 composerを使ってインストールするので、composerが必要 セットアップ $ composer global require "phpunit/phpunit:*" $ ~/.composer/vendor/bin/phpunit --version PHPUnit 7.5.17 by Sebastian Bergmann and contributors. インストールされるディレクトリ cd ~/.composer/vendor/phpunit/phpunit テストコードの書き方 ここでは名前を保持するUserクラスのテストコードを書いてみる User.php (テスト対象のモジュール) <?php class User { public $name; public function getName() { return (string)$this->name; } } UserTest.php (テストコード例) TestCaseクラスを継承する(場所は以下) ~/.composer/vendor/phpunit/phpunit/src/Framework/TestCase.php testXXXXというメソッドを用意して、その中…

続きを読む

【PHP】PHP_CodeSnifferを使う(コーディングルールのカスタマイズ)

社内独自のコーディン規約などにあわせてカスタマイズする方法 インストールされるディレクトリ 以下のディレクトリにインストールされている ~/.composer/vendor/squizlabs/php_codesniffer/ -rw-r--r-- 1 638 10 28 13:36 CONTRIBUTING.md -rw-r--r-- 1 187 11 26 12:08 CodeSniffer.conf.dist -rw-r--r-- 1 6399 10 28 13:36 README.md -rw-r--r-- 1 10085 10 28 13:36 autoload.php drwxr-xr-x 6 192 10 28 13:36 bin -rw-r--r-- 1 1083 10 28 13:36 composer.json -rw-r--r-- 1 1533 10 28 13:36 licence.txt -rw-r--r-- 1 6280 10 28 13:36 phpcs.xml.dist -rw-r--r-- 1 7054 10 28 13:36 phpcs.xsd -rw-r--r-- 1 340 10 28 13:36 phpstan.neon drwxr-xr-x 5 160 10 28 13:36 scripts drwxr-xr-x 16 512 10 …

続きを読む

【PHP】PHP_CodeSnifferを使う(初期セットアップとかんたんな使い方)

PHP_CodeSnifferとは決められたルールに沿ってPHPコードが書かれているかチェックしてくれる。また、ルールに沿った形に整形してくれるPHP_CodeFixerもある。 前提条件 composerを使ってインストールするので、composerが必要 セットアップ $ composer global require "squizlabs/php_codesniffer=*" ~/.composer 配下に以下がインストールされる $ ~/.composer/vendor/bin/phpcs --version PHP_CodeSniffer version 3.5.2 (stable) by Squiz (http://www.squiz.net) $ ~/.composer/vendor/bin/phpcbf --version PHP_CodeSniffer version 3.5.2 (stable) by Squiz (http://www.squiz.net) phpcs --- ソースコードがコーディング規約を守っているかを判定する。 phpcbf --- ソースコードをコーディング規約に合わせて整形する。 対象ファイルを直接編集する。 ルールによっては修正できないものもある。 phpcs (PHP_CodeSniffer) ソースコード例 : test.php 以下…

続きを読む

スポンサーリンク