1

現在、共有ホスティングアカウントにLaravelプロジェクトをデプロイしています。これはオープンプロジェクトであり、パブリックリポジトリとしてGitHubでホストされています。その結果、実稼働環境.htaccessの構成ファイル内のファイルによって設定された動的変数を使用しています。これにより、ホスト上のコマンドをdatabase.php使用して展開を更新することもでき、作業のスピードアップに役立ちます。git pull

database.phpファイルには次のようなものがあります

$database = $_SERVER['DBNAME'];

$database_user = $_SERVER['DBUSER'];

これは、PagodaBoxにデプロイするときに行われることとよく似ており、すべてがブラウザーで期待どおりに機能し、苦情がなく、アプリケーションに対して完全に正常に機能します。

migrate私が抱えている問題は、職人がこれらの変数を使用できず、代わりに、命令を処理するときに変数を空にすると私が信じているものを使用してデータベースに接続しようとすることです。職人がパスワードなしでデータベースに接続しようとしたというエラーが表示されます。私は職人を使用してこれをテストしましたが、ファイルに環境変数としてではなく明示的に指定された変数がある--env=production場合にのみ機能することがわかりました。database.php

職人にこれらの環境変数を「見る」ようにする方法はありますか?


これまでのところ私にとって有用であることが証明された回答:

http://forums.laravel.io/viewtopic.php?pid=8455

Laravelの環境主導のデータベース設定?

4

2 に答える 2

5

ArtisanはCLIPHPリクエストであるため(リクエストが.htaccessファイルにヒットすることはありません)、したがって変数が設定されることはありません。

回避策として、3行目(の直後<?php)の職人ファイル自体の内部で変数を定義できます。

$_SERVER['DBNAME'] = 'test';
$_SERVER['DBUSER'] = 'something';

編集:これはgithubでパブリックホストされているとおっしゃっていましたが、ファイルにユーザー名/パスワードを含めたくないですか?たぶん職人のファイルを.gitignoreグループの一部として置く-それであなたはその単一のファイルをプッシュ/プルしないのですか?

于 2013-01-19T08:49:42.617 に答える
3

環境変数を設定する機能はLaravelに組み込まれているため、で設定する理由はありません.htaccess。Laravelの組み込みの方法は、職人と問題なく動作します。

保護したい環境変数については、ドキュメントのこの部分を参照してください。

http://laravel.com/docs/configuration#protecting-sensitive-configuration

引用:

...プロジェクトのルート内にファイルを作成し.env.local.phpます[...].env.local.phpは、一般的なLaravel構成ファイルのように、キーと値のペアの配列を返す必要があります。

<?php
return array(
    'TEST_STRIPE_KEY' => 'super-secret-sauce',
);

このファイルによって返されるすべてのキーと値のペアは、$_ENVおよび$_SERVERPHPの「スーパーグローバル」を介して自動的に使用可能になります。これで、構成ファイル内からこれらのグローバルを参照できます。

'key' => $_ENV['TEST_STRIPE_KEY']

必ずファイルをファイルに追加し.env.local.phpてください.gitignore。これにより、チームの他の開発者が独自のローカル環境構成を作成したり、機密性の高い構成アイテムをソース管理から隠したりできるようになります。

プライベート環境変数を追加します

<?php
return array(
    'MY_SECRET_KEY' => 'super-secret-sauce',
);
于 2014-02-07T22:42:19.350 に答える