ホームページ >バックエンド開発 >PHPチュートリアル >ソースからPHP拡張機能をインストールする方法

ソースからPHP拡張機能をインストールする方法

Joseph Gordon-Levitt
Joseph Gordon-Levittオリジナル
2025-02-20 09:38:09408ブラウズ

ソースからPHP拡張機能をインストールする方法

PHPをインストールする前に必要なPHP拡張機能を知るのが難しい場合があります。後で拡張機能を追加する必要がある場合は、運が良ければ、拡張機能が使用しているOSのリポジトリにある可能性があります。それは単純なsudo apt-getインストールphp5-intlであるかもしれません。ただし、ソースからインストールする必要がある場合があります。Phalconはそのような場合の1つですが、ベンダーのサポート、ショートカット、事前に書かれた指示を実行するための手順を非常に簡単にします。ただし、他の拡張機能にそのようなことがない場合はどうなりますか? このチュートリアルでは、Linuxシステムにいくつかのカスタム拡張機能をインストールします(およびOS X - プロセスはほぼ同じです)。この手順は、私たちが既にNitrous.ioで行ったことと非常に似ていますが、ローカル環境、より具体的にはLaravel Homesteadに適応しています。このチュートリアルからインストール手順を簡単に導き出し、他のディストリビューションに適用できます。

キーテイクアウト

ソースからのPHP拡張機能のインストールには、PHP開発ツールとマシンにインストールされているコンパイラ、PHPソースコードと拡張機能のソースコードが必要です。

ソースからPHP拡張機能をインストールするプロセスには、いくつかの手順が含まれます。ソースコードのダウンロード、拡張機能のフォルダーのPHPIZEでのコンパイルの準備、コンパイル用の環境の構成、ソースのコンパイルファイル、このファイルの移動現在のPHPインストールの拡張機能フォルダー

インストール後、PHP拡張機能をPHP.iniファイルに追加するか、PHP.iniが読み込まれた後に自動インクルードされるフォルダーの各拡張機能の個別のINIファイルを作成することにより、有効にする必要があります。
  • vmの起動
  • まだ持っていない場合は、上記のリンクされているホームステッドの投稿を読んで、それを起動して実行してください。新しいホームステッドボックスを実行した直後に、これができるはずです:
  • これはまったく問題ありません。これは、デフォルトで取り付けられているフォルダーに実際にはまだファイルが含まれていないために起こります。次に、VAGRANT SSHにVMに入り、次のコマンドを実行します。

    これにより、ホームステッドがデフォルトで設定されるパスに有効なPHP情報ファイルが作成されます。 URLを更新すると、phpinfo画面が作成されるようになりました

    環境の準備ソースからPHP拡張機能をインストールする方法

    ソースから拡張機能を構築するには、マシンにインストールされているPHP開発ツールと、拡張ファイルを生成できるコンパイラが必要です。さまざまなオペレーティングシステムにこれらの前提条件をインストールする方法は次のとおりです。

    ubuntu

    <span>cd Code
    </span><span>git clone https://github.com/Swader/publicinfo</span>

    fedora

    <span>sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev</span>

    rhel

    <span>sudo yum install php-devel php-mysqlnd gcc libtool</span>

    suse

    <span>sudo yum install php-devel php-mysql gcc libtool</span>

    最新のホームステッドを使用している場合、これらのすべてのツールはすでにインストールされています。すべてを準備したら、拡張機能のインストールを開始しましょう。

    拡張機能のインストール

    インストールできる拡張機能には2つのタイプがあります。PHPでバンドルされているが、デフォルトではインストールされていない、サードパーティの拡張機能。 Phalconのようなサードパーティの拡張機能は、通常、ショートカットを提供することでインストールプロセスをはるかに簡単にします。特定の伝統に準拠する必要がないため、PHP拡張機能がバンドルされる必要がありません。

    最初に、VM:Cd〜のホームフォルダーに移動しましょう。そこに、ダウンロードフォルダーを作成し、CDを作成します。バンドルされた拡張機能をインストールするときは、マシンにPHPのソースコードが必要になります。ホームステッドが使用するバージョンは5.5.12なので、それをダウンロードします:

    <span>yast2 -i php5-pear php5-devel php5-mysql gcc</span>
    上記のベルギーの鏡を使用しています。ダウンロードアーカイブからそれを自由に使用してください。

    すべてのバンドルされた拡張機能のソースを表示するには、編成されていないPHPソースコードフォルダー内のEXTフォルダーに移動し、LSでリストを作成します。

    バンドルされた拡張機能のインストールソースからPHP拡張機能をインストールする方法

    最初に、PHP-INTL拡張機能がまだインストールされていない場合は、PHP-INTL拡張機能をインストールします。そうであれば、それは問題ありません。以下に表示されるインストール手順は、バンドルされたPHP拡張機能ごとに同じです。 INTL拡張機能は国際化のためです - 興味のある方はこちらをご覧ください。

    INTL拡張機能がICUライブラリを前提条件として(要件に記載されているように)必要とするのを見ると、最初にインストールしましょう。

    他の分布の下では、インストール手順が異なる場合があります。このステップについては、ICUサイトまたは個々の配布のドキュメントを参照する場合が最適です。

    ICUがインストールされたら、extフォルダーにまだ次のことを行います。

    <span>wget http://be2.php.net/distributions/php-5.5.12.tar.bz2
    </span><span>tar xvjf php-5.5.12.tar.bz2
    </span><span>cd php-5.5.12</span>
    何が起こっているのかを説明しましょう。

    • phpizeは、拡張機能のフォルダーを準備します。 Configureファイルを作成し、基本的に拡張機能のフォルダーをPHP自体を「Think」にすることにより、後続のコマンドを実行できます。実際、PHPIZEの後の手順は、ソースからPHPをインストールするときに行うことと同じです。この場合にのみ、PHPのフラグメントだけが編集され、既にコンパイルおよびインストールされているPHPで使用する準備ができています。
    • ./ Configure- ENABLE-INTLコンパイル用の環境を構成します。コンパイラが使用するintl.soファイルを作成するために必要なすべてを準備します。フォルダーは効果的に
    • と考えているため、INTLフォルダーにいるにもかかわらず、INABLE-INTLフラグが必要です。このコマンドは、「OK、PHPのソースコードです。実際には、このフォルダーからをインストールできる唯一の部分です。 Sudo Makeインストールは、このファイルを現在のPHPインストールの拡張機能フォルダーに移動します。
    • 私たちが今行う必要があるのは、php.iniにそれを消費させることで拡張機能を有効にすることだけです。後でそれを行います。最初にサードパーティの拡張機能をコンパイルしましょう。 サードパーティの拡張機能のインストール
    • サードパーティの拡張機能としてMongoをインストールします。 Mongoが利用できるバイナリ分布があり、インストールをより簡単にしますが、教育のために手動でそれを行いましょう。実際のMongoがすでにインストールされているため、PHP拡張のみに焦点を当てていると仮定します。 Mongoがインストールされていない場合は、インストールドキュメントを参照してください。

    これにより、Mongo.soファイルが構築され、PHPインストールの拡張機能フォルダーに配置されました。次のセクションで有効にします。

    有効化とテスト

    <span>cd Code
    </span><span>git clone https://github.com/Swader/publicinfo</span>
    コンパイルされた.soファイルが実際にPHP拡張機能フォルダーにあるかどうかを確認するには、その内容をリストします。

    ソースからPHP拡張機能をインストールする方法

    あなたが見ることができるように、彼らはそこに、明るい緑で強調されています。

    それらを有効にするには、それらについてphp.iniに伝える必要があります。これを行うには、いくつかの方法があります:

      indext = mongo.soとendix = intl.soを直接php.iniに配置できます。これは機能し、ほとんどの場合、完全に有効なアプローチです。
    1. これらのそれぞれに対して個別のINIファイルを作成し、php.iniがロードされた後に自動インクルードされるフォルダーに入れ、php.iniの分離と分離をそのように維持できます。このアプローチはより健康的ですが、達成するのは困難です
    2. 2)とPHP MODを有効にするためのデフォルトのツールを組み合わせることができます。 Homesteadはこのアプローチを使用します
    3. このフォルダーは、そのようなすべての個別のINIファイルのリポジトリです。ここで2つの新しいファイルを作成します:
    <span>cd Code
    </span><span>git clone https://github.com/Swader/publicinfo</span>
    これらのコマンドは、以前に構築した拡張機能の1つに対して、2つの新しいINIファイルを作成しました。現在、MODS利用可能なフォルダーにあるため、すでに利用可能なPHP5ENMOD(PHP Enable MODの略)コマンドラインツールを使用できます。

    注:PHP5ENMODツールがない場合、INIファイルをさまざまなPHPランタイムのconf.dフォルダーにシンプルすると、トリックが行われます。
    <span>sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev</span>

    4つのエントリがある理由は、PHPのコマンドラインバージョンとPHPのFPMバージョンがあることです。それぞれが独自のphp.iniファイルを使用し、それぞれが拡張機能に独自のconf.dフォルダーをロードします。したがって、拡張機能を全面的に使用できる場合は、両方のPHPバージョンに両方の拡張機能を追加する必要があります。このアプローチを使用して、PHP5ENMODツールがない場合にのみ使用してください。

    最後に、これらの変更をロードするためにnginxとphp-fpmを再起動しましょう。
    <span>sudo yum install php-devel php-mysqlnd gcc libtool</span>

    インストールしているかどうかを確認するには、以前からPHPINFO画面を更新して、それぞれMongoとINTLを検索します。
    <span>sudo yum install php-devel php-mysql gcc libtool</span>

    成功!

    <span>yast2 -i php5-pear php5-devel php5-mysql gcc</span>
    拡張機能の削除

    拡張機能を削除するには、スペースが本当に少ない場合を除き、実際のファイルを削除する必要はありません。

    ソースからPHP拡張機能をインストールする方法

    ツールを使用できる場合はphp5dismodを実行します。上記のPHP5ENMODツールの反対です。 .SOファイルは継続され、INIファイルはMODS利用可能なままになります。SymlinksがFPMおよびCLI conf.dフォルダーから削除されるため、ロードされません。

    シンリンクを手動で削除します。例えば。 sudo rm/etc/php5/cli/conf.d/mongo.ini

    拡張機能をPHP.iniファイルに直接配置して有効にした場合、PHP.iniファイルからそれらの行を削除するか、さらに良いことに、心を変えた場合にさらに使用するためにアクセスできるようにコメントします。

    結論

    ご覧のとおり、正確な命令がなくても、拡張機能がOSの公式リポジトリによってサポートされていなくても、ソースから拡張機能をインストールすることは非常に簡単です。次回、 *nixシステムにPHPインストールに拡張機能を追加する必要がある場合(このチュートリアルはOS Xにも適用されます)、この投稿を参照してください。

    フィードバックを以下に残してください。特定の拡張機能に混乱していて、インストールをお勧めします。 ソースからのPHP拡張機能のインストールに関するよくある質問(FAQ)

    ソースからPHP拡張機能をインストールするための前提条件は何ですか?

    ソースからPHP拡張機能のインストールを開始する前に、いくつかのものを配置する必要があります。まず、システムにPHPをインストールする必要があります。また、コンパイラや作成などのツールを含むPHP開発環境を設定する必要があります。さらに、このコードから直接拡張機能を構築するため、PHPソースコードを利用できるようにする必要があります。最後に、拡張機能のソースコードが必要です。これは通常、拡張機能の公式WebサイトまたはPECLのようなリポジトリからダウンロードできます。 phpinfo()関数を使用して、そのインストール。この関数は、インストールされている拡張機能のリストを含む、PHPのインストールに関する多くの情報を提供します。それを使用するには、Webサーバーのドキュメントルートに新しいPHPファイルを作成し、phpinfo()への呼び出しを追加し、このファイルをWebブラウザーで表示します。インストールされているエクステンションは、「PHPコア」セクションにリストされています。

    WindowsシステムにPHP拡張機能をインストールできますか?ただし、このプロセスは、UNIXのようなシステムと比較してわずかに異なります。ソースから拡張機能をコンパイルする代わりに、通常、事前縮小されたDLLファイルをダウンロードし、PHPインストールに追加します。 PHP.NET Webサイトは、これを行う方法に関する詳細な指示を提供します。

    インストールプロセス中にエラーが発生した場合はどうすればよいですか?

    ​​複数のPHP拡張機能を一度にインストールできますか?これは、Configureコマンドで複数の拡張機能を指定することで実行できます。ただし、各拡張機能には独自の依存関係と構成オプションがある場合があることに留意してください。 PHP拡張子をアンインストールするにはどうすればよいですか?

    PHP拡張機能のアンインストールには、拡張機能の構成をPHP.iniファイルから削除してからWebサーバーを再起動することが含まれます。拡張機能が共有モジュールとしてインストールされた場合、モジュールの.soまたは.dllファイルを削除する必要がある場合があります。ソースコードとして配布されるPHP拡張機能。これらの拡張機能は、拡張機能のダウンロード、コンパイル、インストールのプロセスを自動化するPECLコマンドを使用してインストールできます。ルートアクセスなしのPHP拡張機能。これは、ホームディレクトリにPHPをインストールし、そこに拡張機能をインストールすることで実行できます。ただし、このアプローチにはより多くの技術的知識が必要であり、すべてのユーザーに適していない場合があります。

    一般的なPHP拡張機能は何ですか? PHP言語への追加の機能。いくつかの一般的な拡張機能には、MySQLデータベースと対話するためのMySQLI、画像ファイルを作成および操作するためのGD、およびHTTPリクエストを作成するためのCurlが含まれます。

    以上がソースからPHP拡張機能をインストールする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。