in Config/app.php
in laravel source、url
の実際の使用は?
アプリケーションURLはartisan command line tool
で使用されると書かれていますが、実際にはどうでしょうか?
つまり、http://mydomainname.com
にするか、/var/www/laravel/
または/var/www/laravel/public
にする必要があります
現在の構成
/*
|--------------------------------------------------------------------------
| Application URL
|--------------------------------------------------------------------------
|
| This URL is used by the console to properly generate URLs when using
| the Artisan command line tool. You should set this to the root of
| your application so that it is used when running Artisan tasks.
|
*/
'url' => 'http://localhost/',
アプリケーションソースが/var/www/
ディレクトリにあり、laravelパブリックフォルダが/var/www/laravel/public
であり、http://mydomainname.com
が/var/www/laravel/public
ディレクトリに解決されるように指定されている場合
使用事例:
laravel schedular
から/app/Console/Kernel.php
を使用して、periodic sendMail commands
をディスパッチし、データベースに送信されるメールをキューに入れ、キューを処理するqueue listner
を使用します。普段通り
キューはローカルホスト(私のローカルxampサーバー)で正常に動作していますが、本番環境でurl
値がどうあるべきか心配です
ユーザーがWebサイトにアクセスすると、LaravelはPHPのスーパーグローバル($ _SERVER、$ _ GET、$ _ POSTなど)からのリクエストに関して必要な多くの情報を取得します。この情報の一部はリクエストURL。
たとえば、リクエストメソッドurl()
またはpath()
にアクセスする場合、この情報は$ _SERVERスーパーグローバルを介して取得されます。
_$url = Request::url();
$path = Request::path();
_
ただし、職人、コマンド、ジョブなどには、この情報の利点はありません。これはユーザーからの通常のHTTPリクエストではなく、コマンドラインから実行されるPHPコマンドです。このため、LaravelアプリケーションのURLを決定する方法です。これが設定値の出番です。
この例では、キューからメールを送信することを計画しています。メールの1つにWebサイトのルートへのリンクを含める必要があるとします。そのため、UrlGeneratorを使用してリンクのURL(URL::route('route.name')
)を取得します。このコードはコマンド内で実行されており、どのタイプのHTTPリクエストとも関連していないため、ベースアプリケーションのURLは_config/app.php
_で設定した設定値から取得されます。
願わくばもう少し明確になりますが、url
の値は、どのタイプのディレクトリパスでもなく、アプリケーションのhttp URLに設定する必要があります。あなたの例では、_http://mydomainname.com
_でなければなりません。
本番環境では、次のように設定する必要があります
'url' => 'http://your-live-domain.com',
あなたが述べたように、それは職人のコマンドとキューによって使用される予定です。
.env
は、ライブドメインを保存します。 http://laravel.com/docs/5.1#environment-configuration