#php のコンパイル後に拡張機能を追加できますか?
拡張機能を追加できますか?
php 自体は、curl、gmp、mbstring などの多くの拡張機能を提供します。 php をコンパイルしてインストールするときに、すべての拡張機能がインストールされるわけではありません。では、PHP をインストールした後、PHP 拡張機能を個別にインストールしたい場合はどうすればよいでしょうか?拡張機能を個別に追加する方法を説明するために、curl 拡張モジュールのインストールを例に挙げます。
手順: 1. PHP ソース コードの拡張ディレクトリを入力します。この例では、ソース コードの対応するディレクトリは次のとおりです:
/search/src/php-7.0.14/ext
ログイン後にコピー
2. モジュール ディレクトリを入力します。curl 拡張機能をインストールしたので、curl ディレクトリに入ります。この時点のディレクトリは
/search/src/php-7.0.14/ext/curl
ログイン後にコピー
3 ですので、phpize を実行します。マシン上に複数の PHP バージョンがある場合は、拡張機能をインストールする予定の PHP バージョンに対応する phpize を必ず実行してください。たとえば、私のマシンには php7 と php5.3.3 の両方がインストールされています。現在、php7用のcurl拡張機能をインストールする準備をしています。したがって、php7 に対応する phpize
/usr/local/php7.0/bin/phpize
ログイン後にコピー
を実行します。結果は次のようになります:
Configuring for:
PHP Api Version: 20151012
Zend Module Api No: 20151012
Zend Extension Api No: 320151012
ログイン後にコピー
4. ./configure
./configure --with-php-config=/usr/local/php7.0/bin/php-config
ログイン後にコピー
を実行します。 注: php が 1 つしかない場合マシン上のバージョンを指定する場合、ほとんどの場合、対応する php-config の場所を示すために特に –with-php-config を使用する必要はありません。
5. make を実行すると、curl.so ファイルが ./modules/ ディレクトリに生成されます
6. make install を実行します
結果は次のようになります。
Installing shared extensions: /usr/local/php7.0/lib/php/20151012/
ログイン後にコピー
実行結果から、curl.so がどのディレクトリにインストールされているかがわかります。
通常、php-config を正しく指定した場合、またはマシンに php バージョンが 1 つしかない場合、対応する php の extension_dir に正しくインストールされます。 make install を実行した後、extension_dir ディレクトリに対応する so がない場合は、手順 5 で生成された so ファイルを手動で cp できます。
特定の extension_dir を表示するには、次のコマンドを実行します。
php -i| grep extension_dir
ログイン後にコピー
結果は
extension_dir => /usr/local/php7.0/lib/php/20151012/ => /usr/local/php7.0/lib/php/20151012/
ログイン後にコピー
7 と同様です。
extension=curl.so
ログイン後にコピー
を php.ini に追加します。php.ini の具体的な場所がわからない場合は、次のコマンドで確認できます
8. 次のコマンドを実行して、インストールが成功したかどうかを確認します
php -m | grep curl
ログイン後にコピー
curl が表示されたら、おめでとうございます。インストールは成功しました!
注: fpm、Apache などを使用して php を実行している場合。対応する php.ini を変更した後、新しい拡張機能を有効にするには、fpm または Apache を再起動する必要があります。
PHP 関連の詳細については、
PHP 中国語 Web サイトをご覧ください。
以上がPHPをコンパイルした後に拡張機能を追加できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。