PHPのinclude_pathで。:はどういう意味ですか?


10

xamppを実行しているマシンにZendをインストールしようとしています。Zendのヘルプファイルには、コマンドラインツールを設定するために、/ libraryディレクトリの内容がphp include_pathで指定されたディレクトリ内にあることを確認する必要があると記載されています。

php.iniを見ると、include_pathはコメント化されていますが、値は次のようになります。

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"

include_pathはどこを正確に指しているのですか?私はLinuxにかなり慣れていないので、ファイルパスの一部として。:を見たことはありません。


2
「xamppを実行しているマシン」について言及しましたが、それを削除して、代わりにUbuntuのパッケージであるlamp-serverをインストールすることができます
Marco Ceppi

1
どうして?xamppは完璧に動作します。
EmmyS 2010年

2
Ubuntuのlamp-serverメタパッケージ(tasksel→LAMP Server)は、特にubuntuでうまく機能するように調整されたランプスタックのディストリビューションです。もちろん、xamppを使用することもできます。問題なく動作しますが、Ubuntuのディストリビューション(バージョン)をお勧めします(canonicalのエンタープライズサポートを使用する場合は必須です)。
ステファノパラッツォ

回答:


4

:は、ディレクトリのリストの区切り文字です。

。現在のディレクトリを意味します

そのため、phpスクリプトがインクルードファイルを探すとき、phpファイルと同じディレクトリと/ php / includesを探します。


したがって、パスには現在2つのディレクトリが含まれています-現在のディレクトリ(実際にはphp.iniが実際に含まれているディレクトリを意味します)と/ php / includes?/ php / includesはどこにありますか(このパスに関する限り)?現在のディレクトリ内?またはどこかに?
EmmyS 2010年

ほとんど、 。php.iniではなく、特定のphpファイルごとの現在のディレクトリです。/ php / includesは絶対パスであり、ファイルシステムの最上位の「php」フォルダー(/ usr、/ etcと同じレベル)を
想定しています

7

.:実際には.:複数のパスを区切るキーワードなので)、スクリプトが実行されている現在のフォルダーがinclude_pathの一部として含まれています。同じディレクトリに2つのファイルがある場合:

index.php
include-me.php

PHPに2番目を含めることができますinclude('include-me.php');。なければ.、パスにある、あなたはそうすることはできません。

したがって、前述のようにインストールを完了する/libraryには、作業中のスクリプトが置かれているフォルダーと同じフォルダーに内容を配置する必要があります-または/php/includes;iniファイルからを削除することを許可)。別のディレクトリを作成することもできます-のようにインクルードパスステートメントに/opt/Zend/library追加/opt/Zend/libraryします。include_path = ".:/php/includes:/opt/Zend/library"

最後に-Ubuntuを実行しているため、代わりにUbuntuのLAMPセットアップを使用することをお勧めします(ほとんどのドキュメントでは、使用していると想定しています)。これは、XAMPPを削除sudo tasksel install lamp-serverし、システムにApache 2.2、MySQL、PHP 5.3をインストールすることでインストールできます。LAMPスタックをセットアップする最も簡単な方法何ですか?


1
xamppに完全に満足しています。他の情報はありがたいです。
EmmyS 2010年

@EmmySそれは結構です:D-私はあなたのコメント「なぜ」への私の回答を私の回答に含めました。あなたが知らされていることを確認したいだけです。
Marco Ceppi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.