Hatena::ブログ(Diary)

A Day in Serenity @ kenjis

2012-11-16

PHPFog の FuelPHP アプリを AppFog に移行してみる (2)

PHPFog の FuelPHP アプリを AppFog に移行してみる の続きです。

AppFog ではデフォルトではメール送信ができませんので、その設定などします。

Mailgun のインストール

https://console.appfog.com/ にログインし、「Add-ons」から「Mailgun」を「Install」ボタンをクリックしインストールします。

インストールが完了したら、「Manage」ボタンを押して、Mailgun の管理ページにアクセスします。

「Domain Name」に自分用のドメイン名が表示されますので、クリックします。

「SMTP Authentication:」に SMTP 接続の情報が表示されます。

AppFog での環境変数の設定

設定ファイルに直接 SMTP 接続の情報を記載する場合は必要ありません。

https://console.appfog.com/ の「Env Variables」で環境変数を設定します。

SMTP_HOST      ssl://smtp.mailgun.org
SMTP_USERNAME  Mailgun のユーザ名
SMTP_PASSWORD  Mailgun のパスワード
SMTP_PORT      465

FuelPHP のメール設定

packages/email/config/email.php を app/config/ 以下にコピーします。

以下のように変更します。

--- fuel/packages/email/config/email.php	2012-07-27 10:23:36.512586349 +0900
+++ fuel/app/config/email.php	2012-11-15 11:57:30.048114494 +0900
@@ -14,7 +14,7 @@
 		/**
 		 * Mail driver (mail, smtp, sendmail)
 		 */
-		'driver'		=> 'mail',
+		'driver'		=> 'smtp',
 
 		/**
 		 * Whether to send as html, set to null for autodetection.
@@ -89,10 +89,10 @@
 		 * SMTP settings
 		 */
 		'smtp'	=> array(
-			'host'		=> '',
-			'port'		=> 25,
-			'username'	=> '',
-			'password'	=> '',
+			'host'		=> getenv('SMTP_HOST'),
+			'port'		=> getenv('SMTP_PORT'),
+			'username'	=> getenv('SMTP_USERNAME'),
+			'password'	=> getenv('SMTP_PASSWORD'),
 			'timeout'	=> 5,
 		),

FuelPHP の環境の設定

AppFog の環境変数の設定で以下のように追加しても、AppFog ではどうも $_SERVER から FUEL_ENV がとれないようです。

FUEL_ENV  production

あと、何故か $_ENV でもとれません。getenv() を必ず使う必要があるようです。

ということで、FuelPHP のトップにある .htaccess に以下を追加します。

SetEnv FUEL_ENV production

FuelPHP の設定

config.php の base_url に URL を設定しないと、FuelPHP で生成した URL に /public/ が含まれてしまいます。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証