2012-04-01 12 views
1

私は自分自身でウェブサイトの開発を教えており、自分自身でphpやhtmlを教えています。もともと私がこれを始めたとき、私はWindows XP上で動作しているApache上で自分のWebサイトを設計しました。一度大部分のバグが解消されると、私はそれを無料のサーバーホスティングサイトにロードし、すべてが大変だった。PHPインクルードステートメントは、相対パスを使用しているフォルダ内のファイルを含んでいません

残念ながら、Windowsが枯れた(私のsystem32フォルダのファイルが壊れています)、私は今Linux Mintを実行しています。

時間を節約するために、私はphpに以下のようなinclude文を使って自分のヘッダとフッタのHTMLファイルをインクルードしています:

これはウィンドウとフリーサーバ(私はLinuxのバージョンを実行していると思われますが、それについて私には言わない)の両方で機能しました。しかし、私のマシンではもう動作しません。これは動作します:

<?php include("./file2.html");?> 

しかし、私は本当に私が持っているすべてのWebページをrefracterしたくないです。インクルードステートメントを取得して相対パスのフォルダにファイルを再度含めるにはどうしたらよいですか?

物事私が試してみました:

私は無駄に、ディレクトリを指すようにinclude_pathのを変更しました。

私は絶対パスを試しましたが、それはどちらもうまくいきませんでした。

私はapache.confとphp.iniの両方を読んでいない可能性のあるものを探しました。

フォルダとファイルのアクセス許可をダブルチェックして、そのファイルを確実に読み取ることができることを確認します。

何かすべてのアドバイスは、事前に感謝します。必要に使用して

UPDATE

は私にエラーを与える:http://localhost/を取得中

ウェブサイトでエラーが発生しました。メンテナンスのために停止しているか、または正しく構成されていない

これはあまり役に立ちません。

includeステートメントだけでエラーはありません。

私のinclude_pathには "。:"があります。試行錯誤の多くの後、私は問題は、PHPを伴うか、まったくの文が含まれていないと結論付けました

最終更新

ではなく、Apacheサーバはサブへのアクセスを許可していないと何らかの理由でディレクトリに移動します。この疑問は今や疑問であり、閉じなければならない。

+1

あなたが取得しているエラーは(あなたが1を得ていると仮定?)何が見つかりません、アクセスが拒否されたなどの?インクルードの代わりに – BenOfTheNorth

+2

が必要です。 PHPはそのようなエラーを出力します。 – hjpotter92

+0

include/requireがURLに当たっている場合、インクルードパスに絶対パスの 'http:// ....'タイプのパスコンポーネントが必要です。デフォルトでは、PHPはローカルファイルをインクルードするためだけに完全なHTTPリクエストを開始することはありません。 –

答えて

0

相対パスを使用してファイルをインクルードする場合は、"あなたのinclude_pathにを入れ、PHPで設定します。iniファイルまたはスクリプト内:

set_include_path(".:" . get_include_path()); 
関連する問題