PHP
コンパイルPHP拡張
サーチ…
Linuxでのコンパイル
典型的なLinux環境でPHP拡張モジュールをコンパイルするには、いくつかの前提条件があります。
- 基本的なUnixスキル( "make"とCコンパイラを操作できる)
- ANSI Cコンパイラ
- コンパイルしたいPHP拡張モジュールのソースコード
一般に、PHP拡張モジュールをコンパイルするには2つの方法があります。 PHPバイナリに拡張を静的にコンパイルすることも、起動時にPHPバイナリによってロードされる共有モジュールとしてコンパイルすることもできます。共有モジュールは、PHPバイナリ全体を再構築することなく、拡張機能の追加や削除を可能にする可能性が高いためです。この例では、共有オプションに焦点を当てます。
あなたのパッケージマネージャー( apt-get install
、 yum install
など) -dev
でPHPをインストールした場合は、PHP用の-dev
パッケージをインストールする必要があります。これには、ビルド環境を動作させるために必要なPHPヘッダーファイルとphpizeスクリプト。このパッケージは、 php5-dev
やphp7-dev
ような名前が付けられますが、ディストリビューションのリポジトリを使って適切な名前を検索するには、パッケージマネージャを使用してください。彼らは違うかもしれません。
ソースからPHPをビルドした場合、ヘッダファイルはシステム上に既に存在する可能性があります( 通常は/usr/include
または/usr/local/include
)。
コンパイルの手順
コンパイルするのに必要なすべての前提条件があることを確認した後、 pecl.php.netに行き 、コンパイルする拡張を選択して、タールボールをダウンロードします。
- タールボールを解凍します(例:
tar xfvz yaml-2.0.0RC8.tgz
) - アーカイブが解凍されたディレクトリを入力し、
phpize
を実行しphpize
- すべてがうまくいけば、新しく作成された
.configure
スクリプトが表示されます。それを実行します./configure
- 今度は、
make
を実行make
必要があります。makeは拡張機能をコンパイルします - 最後に、
make install
は、コンパイルされた拡張バイナリを拡張ディレクトリにコピーします
make install
手順は、通常、拡張機能がコピーされた場所のインストールパスを提供します。これは通常 /usr/lib/
にあります。例えば、 /usr/lib/
/usr/lib/php5/20131226/yaml.so
ようなものです。しかし、これはPHPの設定(つまり--with-prefix
)と特定のAPIバージョンに依存します。 API番号は、異なるAPIバージョン用に構築された拡張機能を別々の場所に保存するためのパスに含まれています。
PHPでのエクステンションの読み込み
PHPでextension=yaml.so
を読み込むには、該当するSAPI用の読み込んだphp.iniファイルを探し、 extension=yaml.so
を追加してPHPを再起動します。 yaml.so
を実際にインストールした拡張yaml.so
の名前に変更します。
Zendエクステンションの場合、共有オブジェクトファイルへのフルパスを指定する必要があります。しかし、通常のPHP拡張モジュールの場合、このパスはロードされた構成のextension_dir
ディレクティブか、初期設定時の$PATH
環境から派生しています。