web-dev-qa-db-ja.com

PHPライブラリ/拡張機能を配置する場所

私は多くのサーバー構成とオプションを初めて使用します。サーバーに追加のphpライブラリ/拡張機能を追加したい。どこに追加しますか? (私はCENTOS 6.5 VPSを使用しています)

たとえば、phpseclib php拡張を追加したい:

彼らのウェブサイトの指示は最小限です:

使用法このライブラリは、PHP Extension>およびApplication Repository(PEAR)のライブラリが記述されていたのと同じ規則を使用して記述されています(現在の要件はPHP4の互換性を損ないます)。特に、このライブラリはinclude_pathにある必要があります。

    <?php
    set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

    include('Net/SSH2.php');
    ?>

それを使用する方法を教えてくれますが、実際の拡張ファイルを追加する場所を教えてくれません。下に追加する必要がありますか?

usr/local/lib ?

usr/local/lib/php ?

usr/local/lib/php/pear ?

または、public_htmlの下に追加できますか?また、私のVPSには/ home /の下に複数のユーザーがいます。ライブラリを1人のユーザーのみが利用できるようにするために、それは離れていますか?

1
gdaniel
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib');

ライブラリ/拡張ファイルを配置したい場所(サーバーのセットアップやWebアプリケーションに適切な場所)に配置します。これが上記の例が示しているものだと思います。 phpseclibphpseclibライブラリファイルを保存する場所の絶対サーバーパスに置き換えます。サーバーごとに異なるため、どこに行くべきかを正確に伝えることはできません。例のみを提供できます。

たとえば、ファイルを/home/user/lib/phpseclib(この場合、/home/user/public_htmlのDOCUMENT_ROOTの上)に保存すると、...

set_include_path(get_include_path().PATH_SEPARATOR.'/home/user/lib/phpseclib');

これらのライブラリファイルを既存のinclude_pathに追加する場合(E Carter Youngが示唆するようにget_include_path()の出力を調べてください)、上記のようにset_include_path()を呼び出してinclude_pathを変更する必要はありません。

ライブラリパスをinclude_path(Webアプリケーションの一部として「構成」スクリプトで設定する)の一部にすることで、コードの後半でファイルシステムパスを考慮する必要がなくなります。これにより、コードの移植性が大幅に向上します。

2
MrWhite