2012-02-25 13 views
1

PHPの組み込み関数get_browser()を使用しようとしています。私はthis useful postの指示に従いましたが、私はまだエラーが発生していますサーバー上でhtaccessを使用してPHP.iniを変更する

browscap ini指示は設定されていません。

私は私へのアクセスを持っていないので、その場所は php_browscap.ini ホーム/ホスト名/サブドメイン/であるように、私は、php_browscap.iniファイルをダウンロードし、私の.htaccessファイルと同じディレクトリに移動php.iniファイル.htaccessを使用してbrowscapプロパティを編集しようとしています。これは私が入力したものである:

php_value browscap home/hostname/subdomain/php_browscap.ini 

それが重要ならば、私は知らないが、以下のいくつかの書き換えエンジンのコードがあること。

前述したように、私はまだ上記のエラーを受けています。私は何を間違えたのですか?

ありがとうございました。

答えて

3

あなたのPHPランタイムの設定を理解するためには、phpinfo()行います。あなたのシステムが "CGI/FastCGI"として設定されているなら、おそらくPHPイニシエータとしてsuPHPを実行しているでしょう。 この場合、独自のphp.iniファイルを指定することができます。デフォルトではsuPHPはscriptディレクトリに見えますが、あなたの.htaccessファイルに次のディレクティブによって、これをオーバーライドすることができます。このオプションは、設定することにより、PHPインタプリタ(に渡すためにどのパスmod_suphpを伝え

suPHP_ConfigPath (expects a path name) 

PHPRC環境変数)。やるは、ファイルを参照していますが、ディレクトリにファイルがでにくい

例:あなたは「/path/to/server/config/php.ini」を使用したい場合は、使用して「suPHP_Config /パス/に/ server/config "と入力します。

このオプションを使用しないと、PHPはコンパイル済みのデフォルトパスを使用します。 また、適切に形成されたパスをブラウザのキャッシュディレクティブに使用する必要があります。

browscap="/home/hostname/subdomain/php_browscap.ini" 

(大手/注)

補遺

私はちょうどチェックしてきたとDreamhostの共有ホスティングプランは、suEXECのを使用しています。 suEXECを使用すると、システムphp.ini(phpinfo())をコピーしてプライベートディレクトリ(通常は_privateとbrowsercap.ini)にコピーして、通常はphp.iniパッチを上書きすることができます。

SetEnv PHPRC /home/hostname/_private 

を.htaccessファイルに追加します。これがうまくいかない場合、問題はDreamhostのsuEXEC設定に固有であり、あなたはこの質問をhttp://discussion.dreamhost.com/に依頼する必要があります。

0

ここには2つの潜在的な問題があります。

  1. おそらく、あなたのホストでは、.htaccessファイルのini設定を上書きすることはできません。
  2. おそらく、browscapはあなたが提供したパスが嫌いです。試してみてください:

    php_value browscap /home/hostname/subdomain/php_browscap.ini 
    

    また、そのファイルのアクセス許可でWebユーザーが読み取れるようにしてください。

browscap
+0

まだ同じエラーです。私のホストはDreamhostです。 – LonelyWebCrawler

+0

ウェブユーザーはそれを読むべきですか?それはどういう意味ですか? – LonelyWebCrawler

+0

DreamHostには、http://wiki.dreamhost.com/PHP.iniのこの問題のドキュメントがあり、Webユーザーは、Webサーバー(Apacheなど)が実行されるシステムの使用です。 Debianでは、この使用は 'www-data'となります。 – Treffynnon

2

PHP値はそれだけで(.htaccessファイルではない)のphp.iniまたはhttpd.confで設定することができることを意味PHP_INI_SYSTEMの変更モードを有します。

0

共有ホスティングにあり、システムphp.iniにアクセスできない場合は、PHPのネイティブな "get_browser()"実装の次のスタンドアロンの置き換えを使用できます。

https://github.com/garetjax/phpbrowscap

関連する問題