PHPは再コンパイルせず、モジュール拡張を個別に追加する方法

2002 ワード

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をインストールする準備をしている必要があります.例えば、私の機械にはphp 7とphp 5が同時にあります.3.3.php 7にcurl拡張子をインストールするつもりです.したがってphp 7に対応する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 --with-php-config=/usr/local/php7.0/bin/php-config

説明:マシンにphpバージョンが1つしかない場合は、特に使用する必要はありません–with-php-configは、対応するphp-configの場所を指定します.
5.makeを実行すると、./modules/ディレクトリの下でcurlを生成する.soファイル
6.make installの実行
類似の結果:
Installing shared extensions: /usr/local/php7.0/lib/php/20151012/

実行結果はcurlに伝えます.soはどのディレクトリにインストールされていますか.
一般的に、php-configを正しく指定した場合、またはあなたのマシンにphpバージョンが1つしかない場合、soは対応する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.php.iniで増加
extension=curl.so

phpを知らなかったらiniの具体的な位置は、次のコマンドで表示できます.
php --ini

8.インストールに成功したかどうかを確認するには、次のコマンドを実行します.
php -m | grep curl

curlを見たら、おめでとうございます.インストールに成功しました.
注意:fpm、apacheなどの方法でphpを実行する場合は.対応するphpを変更します.ini後、fpmまたはapacheを再起動する必要があり、新しい拡張が有効になります.原文:https://blog.csdn.net/qmhball/article/details/79015888