web-dev-qa-db-ja.com

laravel 5のアプリケーションURLの意味は何ですか

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値がどうあるべきか心配です

21
echoashu

ユーザーが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_でなければなりません。

36
patricus

本番環境では、次のように設定する必要があります

'url' => 'http://your-live-domain.com',

あなたが述べたように、それは職人のコマンドとキューによって使用される予定です。

.envは、ライブドメインを保存します。 http://laravel.com/docs/5.1#environment-configuration

6
Almazik G