2009-07-29 11 views
0

私はいくつかの仮想ホストを持つdevサーバーを持っています。 それぞれがコマンドを実行できる必要があります:propel-gen ./ creole このスクリプトはデータベースをリバースエンジニアリングするphpをいくつか実行します... しかし、それを実行するにはphpをインクルードする必要があります。include_pathなしで仮想ホストでpropel ORMオブジェクトを生成するにはどうすればよいですか?

php.iniにinclude_pathが設定されていないのは、すべての仮想ホストに対してグローバルになるためです。 include_pathを各仮想ホストごとに一意にする必要があります。

この作業はどのようにコマンドラインで行うことができますか? (注:コマンドラインはApacheを経由しないため、htaccessは機能しません)。

この問題を回避する別の方法はありますか? インクルードパスを設定するためにコマンドラインパラメータを渡すのはおそらくでしょうか? おそらく.bashrcに何かを設定していますか? :(

にPS - スクリプトは私のMac上で正常に動作し、ハードコーディングされていパス

答えて

1

コマンドラインからPHPを実行している場合、あなたはそれがだろう、設定オプションを定義するために-dスイッチを使用することができますが含まれます通常は、現在が表示され、これを実行していると仮定CLIでPHPを実行するとき、あなたはあなたのケースではUsing PHP from the command line

で見てみることができます何ができるかについての詳細情報についてphp.ini

で定義されています:

$ php -r 'var_dump(get_include_path());' 

デフォルトの出力は(ところで、私のマシン上で)このようなものだ:今

string(20) ".:/usr/local/lib/php" 

include_pathを上書きする-dを使用して、この方法:

$ php -dinclude_path='.:/usr/local/lib/php:/var/my/directory/lib' -r 'var_dump(get_include_path());' 

あなたに」再取得:

string(42) ".:/usr/local/lib/php:/var/my/directory/lib" 
だから私は認めざる


、これは入力するロング/かなり退屈だ、とあなたは時々-dblahblahものを忘れてしまう...

、あなたは少しのように、エイリアスを定義することができます。

$ alias myphp='php -dinclude_path=".:/usr/local/lib/php:/var/my/directory/lib"' 

そして、あなたはmyphpコマンドの代わりに、phpを使用している場合は、今、あなたはもうinclude_pathを指定する必要はありません。

$ myphp -r 'var_dump(get_include_path());' 
string(42) ".:/usr/local/lib/php:/var/my/directory/lib" 

これはシェルセッション間では維持されません... aliasコマンドを~/.bashrcの末尾に置くことができるので、ログインするたびに実行されます:-)

関連する問題