4

新しいホストに切り替えることを検討しています。これらのホストは、切り替える前にファイルをテストするためのこの素敵な小さな「一時的なURL」を提供します。すべて元気でダンディ。そのため、すべてのファイルをコピーします。すべてのページの上部に、にrequire保存されているサーバーからの別のファイルがありますpublic_html/includes/head.php。なんらかの理由で、$ _ SERVER ['document_root'] varは/public_html/includes/head.php(存在する)ではなく/public_html/htdocs/includes/head.php(サーバー上に存在しない)を返します。 。結果のエラーは次のとおりです。

Warning: require_once(/home/secure31/public_html/htdocs/includes/head.php) 
[function.require-once]: failed to open stream: Permission denied in 
/home/stephe80/public_html/index.php on line 6

有罪コード:

require_once($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');

これは一時的なURL設定に関連するエラーだと思う傾向がありますが、DNSを介して転送したくないので、すべてのファイルが壊れていることがわかります。それらを絶対パスに変更することはできますが、何かが足りないのかどうか知りたいです。任意の洞察をいただければ幸いです。ありがとう!

4

2 に答える 2

4

__FILE__定数を使用して、そこからhtdocsフォルダーを作成することをお勧めします。$ _SERVERスーパーグローバルに依存するよりもはるかに信頼性が高くなります。これは、実際にはサーバーごとに異なるためです。

例(ルートフォルダーのindex.phpで呼び出す):

$htdocs = str_replace(basename(__FILE__), __FILE__, '');
define('ROOT_FOLDER', $htdocs);
require_once(ROOT_FOLDER . '/includes/head.php');
于 2012-10-07T17:02:50.617 に答える
0

将来の参考のために(誰かが同様の問題を抱えている場合)、問題はテストサーバーにあることがわかりました。私は自分のコードをそのまま使用して起動しましたが(危険です、私は知っています)、すべてうまくいきました。

于 2012-10-08T13:07:23.163 に答える