include_pathについて

このQ&Aのポイント
  • サーバーのinclude_pathについて疑問があります。
  • レンサバ.comでレンタル中のサーバーのinclude_pathには.:と書かれています。
  • 他のサイトではusr/~と書かれていることが多いのですが、どちらが正しいのでしょうか?
回答を見る
  • ベストアンサー

include_pathについて

連続投稿もうしわけございません。 よろしければ質問にお答えお願いします include_pathについてなのですが、現在レンサバ.comにてサーバーを レンタルしているのでが、phpinfo()で調べたら .: と書いてあるだけです。ネットで調べてたら大抵 usr/~って書いてありますよね? どこかのサイトで <?php echo realpath(dirname(__FILE__)); ?> で調べられると聞いたので、試したら /export/saba3/www/jp/r/e/gmoserver/●/●/*****/*****.com と出てきました。これはなんですか? 一応includeしているのですが、このままで大丈夫なのでしょうか? サポートに連絡してもサポート外といわれてしまいました。 自分は今回初めてサーバーをレンタルした者で、一切の知識が無く ネットで調べてたのですが、全然理解できないので投稿させてもらいました。アドバイスよろしくお願い致します。

  • PHP
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • 0x131cc6e
  • ベストアンサー率36% (42/115)
回答No.1

「.:」の意味ですが、これはインクルードするファイルを探しに行く場所は実行するphpファイルが存在するディレクトリだけ、という意味です。 要するに「include "hoge.php";」と書くとカレントディレクトリだけを探しに行きます。 realpath(dirname(__FILE__)); の実行で出力されたパスは、実行したphpを設置しているディレクトリで、フルパスで出力されます。 >一応includeしているのですが の意味がよくわかりません。 仮に、  index.php  hoge.php というファイルがあったとして、indexからhogeをインクルードするのに、 「include "/export/saba3/​www/jp/r/e/gmoserver/​●/●/*****/*****.com/hoge.php";」 みたいにフルパスで記入しているということでしょうか? もしそうなら、そしてhoge.phpがindex.phpと同じディレクトリにあるなら、単に 「include "hoge.php";」 でいいですよ。 これが仮に、以下のようにsubdirというディレクトリにhoge.phpが置かれているなら、  index.php  subdir/hoge.php 「include "subdir/hoge.php";」 とする必要があります。

Vitamin4
質問者

お礼

丁寧な回答ありがとうございます。 すこし疑問におもったのですが、ネットで調べてて.:だけの人がいませんでした。 .:/usr/local/lib/phpとか .:/usr/local/lib/php/pearとか… なぜ皆さん.:だけにしないのですかね?(コレだとどんな不都合がおきるのですか?) そもそもusrとかlocalやlibやbinとかもう分けわかんないです。 サーバーの仕組みというか階層?("/export/saba3/​​www/jp/r/e/gmoserver/​​●/●/*****/*****.com/) が理解できてなくてすいません。

その他の回答 (1)

  • 0x131cc6e
  • ベストアンサー率36% (42/115)
回答No.2

#1です。 >なぜ皆さん.:だけにしないのですかね? 普通、phpをインストールしたディレクトリにpearなどのライブラリもインストールされるので、そこを検索対象にする意味で、 .:/usr/local/lib/php:/usr/local/lib/php/pear などと記述するんです。 >(コレだとどんな不都合がおきるのですか?) #1で書いた通り、検索対象がカレントディレクトリだけになるのでpearなどの便利なライブラリが使えません。 >そもそもusrとかlocalやlibやbinとかもう分けわかんないです。 先にUnixやLinuxについて少し勉強された方がいいですね。 レンタルサーバのOSについて、レンタル元から何らかの情報が提供されていると思います。(例えばOSの種類とか、各種ディレクトリ構成とか) それがよくわからない状態だと、サーバを扱うのはちょっと厳しいですよ。

Vitamin4
質問者

お礼

お答えありがとうございます。 そうですね、もっと勉強が大事ですね。 ありがとうございました。

関連するQ&A

  • include_pathについて。

    PHP 5.2以上のバージョンの話として質問をさせて頂きます。 (ローカルではWindows版XAMPPを使用。リモートはLinuxサーバー。) ----- <ファイルの位置関係> imgディレクトリ --- C.jpg (画像ファイル) mainディレクトリ --- A.php sub ディレクトリ --- funcディレクトリ --- B.php (img、main、subディレクトリは3つとも同階層) //------- (A.phpの記述) require_once '../sub/func/B.php'; //------- (B.phpの記述) echo '<img src="C.jpgのパス">'; // ←■画像Cを表示したい■ //★どう表示されるかテスト★ echo dirname(__FILE__) ;   //----- このような状況で、 A.phpにアクセスすると、★テスト★の所は、 ~/sub/func   //←のように表示される。 // つまりこれは、__FILE__ は、 // A.phpではなく、B.phpを指している。(?) と、このような時、B.phpの中で、 C画像の相対パスは、どう書いたらよろしいのでしょうか? A.phpから見た、C画像の相対パスで書いたらいい? それとも、B.phpから見たソレでしょうか? phpinfo()でinclude_pathの項目を調べると、 .:/usr/local/lib/php/~ のように書かれています。(デフォルトのままです。)

    • ベストアンサー
    • PHP
  • PHPでincludeを使うと?が入る。

    さらくインターネットのレンタルサーバを使用していますが、 index.phpに include('header.php'); を入れてヘッダー部分のHTMLの呼び出しを行なっていますが 表示されるソースを見ていると、includeで呼び出しているヘッダー部分の手前に「?」が 入ってしまいます。 include(dirname(__FILE__).'/header.php'); include($_SERVER['DOCUMENT_ROOT'] . "/header.php"); など使っても同じ現象のため、どうしたら「?」を無くすことができるでしょうか。

    • ベストアンサー
    • PHP
  • phpのincludeについて

    お世話になります。 Apache/2.2.3 PHP5.1.6 のレンタルサーバを利用しています。 httpdocs   |___lib   |  |___test.php   |___index.php という構造にしています。 -----test.php-------- <?php $a = 'sample'; ?> --------------------- -----index.php------- <?php include_once 'lib/test.php'; echo $a; ?> --------------------- 上記の場合、index.phpには 「sample」と表示されます。 -----index.php------- <?php include_once 'http://example.com/lib/test.php'; echo $a; ?> --------------------- 上記の場合、なぜか表示されません。 そこで「http://~~」はincludeできないのかなと思ったのですが -----test.php-------- <?php $a = 'sample'; echo $a; ?> --------------------- -----index.php------- <?php include_once 'http://example.com/lib/test.php'; ?> --------------------- とすると、なぜか「sample」と表示されました。 この結果から、includeはできているみたいです。 なんとか -----test.php-------- <?php $a = 'sample'; ?> --------------------- -----index.php------- <?php include_once 'http://example.com/lib/test.php'; echo $a; ?> --------------------- で「sample」と表示させたくて試行錯誤してみたのですが どうしても解決できません。 お力添えのほどお願いできればと思います。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • さくらインターネットにてsmartyをPHP.iniをインクルードすると別の箇所で不具合が発生しました

    さくらインターネットにてsmartyをPHP.iniをインクルードすると別の箇所で不具合が発生しました さくらインターネットにてsmartyをPHP.iniをインクルードしたら正常動作していたphpファイルがエラーになりました。 タイトル通りなんですが、 さくらインターネットにてsmartyをPHP.iniをインクルードしたら正常動作していたphpファイルがエラーになりました。 php.ini内にて include_path=".:/home/ユーザー名/smarty" と設定し ソース.php内で require_once'DB.php'; を書き込むとエラーになってしまいます。 php.ini内にて include_path=".:/home/ユーザー名/smarty" と設定しなければちゃんと表示されます。 phpinfo()で .:/home/ユーザー名/smarty と .:/usr/local/bin/php が表示されていれば問題無いと思い、色々設定しましたが全てアウトでした。 smartyをphp.ini内にてインクルードしたのが原因だと思われるのですが、元々あったphpのコマンドパス /usr/local/bin/php がインクルードにより反映されなくなったのが原因だと思うのですが、 1ヶ月経っても分からず縋る思いで書き込みました。 何卒宜しく御願いします。 参考 http://support.sakura.ad.jp/support/manual/rs/tech_cgi.shtml

    • ベストアンサー
    • PHP
  • LinuxのPHPのパス

    Linuxのレンタルサーバーで、PHPのパスを調べたのですが、以下のように2つ出てきました。 # whereis php php: /usr/local/bin/php /usr/local/php /usr/local/bin/phpは /usr/local/php5/bin/php-cli-5.2.9につながっていました。 /usr/local/phpの中身はこんなかんじでした。 drwxr-xr-x 2 root root 4096 Jul 2 16:29 bin drwxr-xr-x 2 root root 4096 Jun 25 12:13 etc drwxr-xr-x 3 root root 4096 Mar 17 10:28 include drwxr-xr-x 3 root root 4096 Jul 2 16:34 lib drwxr-xr-x 3 root root 4096 Mar 17 10:29 man drwxr-xr-x 3 root root 4096 Nov 15 2007 php PHPのパスはどちらですか?

    • ベストアンサー
    • PHP
  • モジュールの使えるレンタルサーバ

    ファイル圧縮をするために phpMyAdmin のライブラリ zip.lib.php PEAR の File_Archive  を使えるレンタルサーバを探しています。 現在使っているレンタルサーバはネットグルーヴ http://www.netgroove.ne.jp/ PHP Version 4.3.6 phpinfo.php で確認してみましたが どちらも使えないようなのです。 (実は phpinfo.php 見方がよくわからないのです) モジュールの使えるレンタルサーバを教えていただけないでしょうか? こんな質問はいけないのかもしれませんが よろしくお願いします。

    • 締切済み
    • PHP
  • PHPのライブラリPEARを使わせる場合

    レンタルサーバのユーザにPHPのライブラリPEARを使わせる場合、 サーバ側(サーバ管理者)が全てのPEARを用意して、インクルードしてやっておかないといけませんか? CentOS5.6(私がサーバを提供する側) PHP5.3.3 というのも、 php.iniの include_pathが include_path = .:/usr/share/pear:/usr/share/php  になっておりサーバ管理者である私が/usr/share/pearにはまだPEARパッケージを1つも入れていません。 そこでPEARパッケージを使いたいユーザ自身がFTPでphp等アップロードしたディレクトリに 使いたいPEARパッケージを独自で配置し、ユーザ自身が配置したPEARパッケージを読み込んで使う形でもいいのでしょうか? ユーザがどんなパッケージを必要とするか分からないので、こちらがあらかじめ準備してやるなら、 すべてのパッケージを/usr/share/pearにインストールしておいてやらないといけなくなるのでは? と思います。 レンタルサーバなど通常はどうやっているんでしょうか?ユーザ各々にアップさせるものですか?

    • ベストアンサー
    • PHP
  • Solaris10でNet-SNMPがインストールできない

    Solaris初心者です。よろしくお願いします。 Net-snmpをSolaris10にソースからインストールしようとしたのですが、下記のエラーが出てしまいインストールできません。 ./configure make make test(Summary: 59 / 59 succeeded.) make install creating directory /usr/local/include/net-snmp ./install-sh -c -m 644 ./include/net-snmp/version.h /usr/local/include/net-snmp/version.h cp: cannot create /usr/local/include/net-snmp/#inst.3763#: Permission denied *** Error code 2 The following command caused the error: if test "version.h" != "" ; then \ echo creating directory /usr/local/include/net-snmp ; \ it="version.h" ; \ /bin/sh ./mkinstalldirs /usr/local/include/net-snmp ; \ for i in $it ; do \ /bin/sh ./libtool --mode=install ./install-sh -c -m 644 ./include/net-snmp/$i /usr/local/include/net-snmp ; \ echo "installing $i in /usr/local/include/net-snmp" ; \ done \ fi make: Fatal error: Command failed for target `installlocalheaders' googleで調べては見たのですが(エラー文)同じ問題に対しての返答がなくて困っています。どうしたらよいでしょうか?よろしくお願いします。

  • ドメイン&レンタルサーバーについて

    ドメイン&レンタルサーバーについて ホームページを複数個作成予定です。 今まで、ドメインはムームドメイン レンタルサーバーはロリポップでした。 複数個持つ場合はさくらの方が料金的に安くなるし、サポートもよいのでおすすめといわれました。 実際に電話サポートなどもありさくらにする予定です。 レンタルサーバーは料金もうそうだけど安定性が大切だと聞いたのですが、ドメインは住所にあたる 部分なので安い会社でも問題ないときいたのですが実際はどうなのでしょうか? もし、そうならムームドメインよりやすいところはありますか? たとえば私はhtttp://●●.com は譲れない部分です。あまりにも安いところがあるなら.ne.jp なら我慢します。どんなに安くてもわけのわからない記号は絶対に嫌なのです。格安 ドメインで検索するとロケットネット380円からとなっているのですが、.comにするとやはり980円くらいになります。 同じくらいの料金ならなれたムームドメインの方がいいと思っています。 もし、ムームドメインより安くて.com .ne.jpの会社を知っている方がいたら教えてください。

  • SOAP/Client.phpを認識できない?

    初めて質問します。 よろしくお願いします。 PHPにてSOAPを使用したツールをレンタルサーバーにて作成しようと思い require_once('SOAP/Client.php'); とSOAP/Clientをインクルードして実行してみたところ Fatal error: main(): Failed opening required 'SOAP/Client.php' (include_path='.:/usr/local/lib/php') in /***/***/***/test.php on line 2 と言ったエラーが表示されてしまいます。 SOAPモジュールがインストールされていないのかと思い、phpinfo()にて調べてみたところsoapはenabkeでインストールされているように見受けられます。 何が原因か思い当たる方いらっしゃいませんでしょうか? OS:FreeBSD 4.10-RELEASE-p22 PHP:4.4.2

    • 締切済み
    • PHP

専門家に質問してみよう