$_SERVER["DOCUMENT_ROOT"]
変数はPHPを実行しているIIS上に存在しますか?以前はこの変数はApache固有のものだと思っていましたが、IIS上ではSCRIPT_NAME
とSCRIPT_FILENAME
の文字列操作でエミュレートする必要がありましたが、IIS上のPHPインストールでこの変数が表示されます。この変数は常にIISで使用できると想定するのは安全ですか?PHP-IISのドキュメントルート変数
答えて
doc rootは常にIISで使用できると想定するのは安全ですか?いや...
$ _SERVER [「DOCUMENT_ROOT」]はIIS上で常に利用可能ではない..ですそれは設定ファイルで設定する必要があります...
それは、サーバー上に構成されている場合「でした」ちょうどあなたの設定ファイルが変更されないことを確認してください...それを使用する -
IISが常に設定されていません...そう、あなたのスクリプトを中断します$ _SERVER [「DOCUMENT_ROOT」]あなたが設定するにはどうすればよい
それは設定ファイルにあるので、残りのコードはApacheサーバのように動作しますか?
出力の$ _SERVERは、あなたが使用することができるかもしれないことを与えられているかを確認する:
echo "<br>_SERVER:<br><pre>";
print_r($_SERVER);
echo "</pre><br><br>_ENV:<br><pre>";
print_r($_ENV);
echo "</pre><br><br>";
をこの場合、SCRIPT_FILENAMEとSCRIPT_NAMEが設定されています。
DOCUMENT_ROOTを取得するために与えられているものを使用するには、以下のコードを変更します。
if (!isset($_SERVER['DOCUMENT_ROOT']) || $_SERVER['DOCUMENT_ROOT'] === '') {
$_SERVER['DOCUMENT_ROOT'] = substr($_SERVER['SCRIPT_FILENAME'], 0, -strlen($_SERVER['SCRIPT_NAME']));
putenv('DOCUMENT_ROOT='.$_SERVER['DOCUMENT_ROOT']);
}
今、あなたは通常、$ _SERVER [「DOCUMENT_ROOT」]を使用することができます。
$docroot = getenv("DOCUMENT_ROOT");
include_once "$docroot/folder/yourfile.php";
私は単純に参照することによってそれを解決私のWebルート、それを私自身の変数の1つとして設定します。
<?php
echo getcwd();
chdir('/');
echo getcwd();
chdir('/example-web-server');
echo getcwd();
?>
次のコードは、PHPの現在の作業ディレクトリを取得します。このディレクトリは、実行しているファイルを含むディレクトリになります。 chdir('/')
はPHPが動作できるところであればどこでも、私の場合はC:\
のルートに行きます。私のWebサーバーのWebルートの例はC:\example-web-server
ですので、PHPでこれを次のように参照できます: /example-web-server
。
PHPのパスを取得したら、それを変数として設定して呼び出すことができます。私はC:\example-web-server\testing\index.php
のinclude()
の例を使用します:
<?php
$webroot = "/example-web-server";
include("{$webroot}/testing/index.php");
?>
私は、これは古いスレッドですけど、私は、このためのソリューションを必要とするだけにすることはできません。
- 1. XAMPPドキュメントルートのWindowsユーザー変数
- 2. xamppドキュメントルートを変更
- 3. サーバのドキュメントルート変数が空です(Apache MAMP)
- 4. ドキュメントルートPHP
- 5. ホスティング時にドキュメントルートを変更する
- 6. ドキュメントルートをコマンドラインで変更する
- 7. $ _SERVER ["DOCUMENT_ROOT"]の仮想ドキュメントルートの代わりにドキュメントルートを使用
- 8. Zend Frameworkドキュメントルートの設定
- 9. lighttpd:ドキュメントルートとしてのシンボリックリンク
- 10. ドキュメントルートのDeserialise XML配列
- 11. ドキュメントルートをcpanelのサブフォルダに変更してください
- 12. Apacheのドキュメントルートを変更できません。2.4
- 13. MAMP Proのドキュメントルートを変更できません
- 14. 1つのドキュメントルートを持つ複数のWebサイトの.htaccess設定
- 15. PHPは、ここではドキュメントルート
- 16. Jasperレポートエラー:org.xml.sax.SAXParseException:ドキュメントルート要素 "jasperTemplate"
- 17. 複数のドキュメントルートを作成しますか?
- 18. ウェブサイトをlocalhostに移動する:ドキュメントルートを変更しました
- 19. PHPのドキュメントルートからの相対パス
- 20. ドキュメントルート以外のファイルにアクセスする
- 21. symfony on virtual hostドキュメントルートの問題
- 22. Jettyのドキュメントルートを設定するには?
- 23. ドキュメントルート外のファイルを含める(Plesk 10)
- 24. squidドキュメントルートを設定するには?
- 25. htaccessとサブドメインを含む正しいドキュメントルート
- 26. デフォルトのドキュメントルートを変更した後にバックエンドにアクセスできない
- 27. .htaccess mod_rewriteはurlでapache2のドキュメントルートを複数回表示します
- 28. apacheのsuexecの "ドキュメントルート内のコマンドではない"
- 29. Yiiのドキュメントルートの外にあるフォルダにアクセスするには?
- 30. GCSドキュメントルートとしてApache WebサーバーのFuseストレージマウントの問題
設定ファイル= php.iniなど? –
私はphp.iniでdoc_root(その部分のパスの下)を設定することができます...しかし、それはグローバルなdoc_rootを設定します... – CarpeNoctumDC
ちょうどGoogle検索を行いました:http://forums.iis.net/p/1154314 /1932457.aspx doc_rootと複数のサイトのいくつかの問題の概要を紹介しています...下に向かって、いくつかのリンクを参照しています... 1つのサイトだけが問題ではない場合... – CarpeNoctumDC