どのPHP拡張機能がインストールされているかを知る方法


13

古いサーバーにインストールされているのとまったく同じPHP拡張機能をランプサーバーにインストールする必要がありますが、新しいサーバーに同じ拡張機能をインストールするためにどの拡張機能がインストールされているかを正確に知るにはどうすればよいですか?

回答:


18

コマンドラインスイッチ-mを使用して、phpインストールされているモジュールを確認できます。

$ php -m | head
[PHP Modules]
bz2
calendar
ctype
curl
date
dbase
dom
exif
fileinfo
...

また、この情報を含むコマンドラインから出力php -iを取得することもできphpinfo();ます。

参照資料


5
これは、Apacheで実行されるPHPに含まれるモジュールのセットとは異なる場合があります。
リッチリマー

2

拡張機能が実際に使用されている場合は、php.iniどこかで参照する必要があります。拡張機能は非常に直感的な方法でロードされます。

extension=msql.so
extension=/path/to/extension/msql.so

などなど

気を付けなければならないことの1つは、追加iniされるファイルによって取り込まれる拡張機能です。Debianについてはわかりませんが、RHELには/etc/php.d/、すべての.iniファイルがメインにあるかのように扱われるディレクトリがあります/etc/php.ini

これらの2つの場所(メインphp.iniまたはインクルードファイルの1つ)のいずれかにない場合、拡張機能は、使用されていないファイルシステム上にあるだけです。

編集:

実際、私は嘘をついたと思います。dl()の呼び出しについては、phpファイル調べる必要がある場合があります。ただし、そのような拡張機能を読み込む人はあまりいません。ユースケースが何であるかさえ定かではありませんが、おそらく確認すべき別の領域です。


PHPを構築してからしばらく経ちましたが、拡張機能を静的にコンパイルすることも選択できると思います。その時点では、これらのオプションはどちらも役に立ちません。
ジュール

2

Debianでは、PHP拡張は/etc/php5/conf.dのファイルを介してロードされます

ここにインストールできるPHP Debianパッケージには2つのタイプがあります。

  • Debian PHPパッケージ(名前はphp5-で始まります)
  • PECL PHPパッケージ(名前はphp-で始まります)

システム上の両方をリストするには、次のコマンドを使用できます 。dpkg -l | grep 'ii php5 \?-' は、php-またはphp5-で始まるインストール済みパッケージをリストします。

また、ソースコードからPECLを使用してビルドされた拡張機能がある場合もあります。それらをリストする: peclリスト

最後に、独自の拡張機能を昔ながらの方法でコンパイルすることが可能です。その場合、/ etc / php5 / conf.dにファイルがなくても、php.ini自体に追加される場合があります。

すべての拡張機能には通常、phpinfo()からの出力セクションがありますphp -mは、PHPがロードした拡張機能のリストを表示します(各拡張機能は、phpinfo出力にスポットを含める必要があります)。php -mの出力には、Debianのアドオンパッケージとしてインストールされるよりも多くの拡張機能がリストされます。これは、PHPに組み込まれているデフォルトの拡張機能と、後でインストールできる拡張機能が多数あるためです。

追加のインストール済みPHP拡張をリストする開発マシンからの出力例を次に示します。

root@zaphod:~# dpkg -l | grep 'ii  php5\?-'
ii  php-auth-sasl                         1.0.4-1                            all          Abstraction of various SASL mechanism responses
ii  php-db                                1.7.14-2                           all          PHP PEAR Database Abstraction Layer
ii  php-mail                              1.2.0-4                            all          PHP PEAR module for sending email
ii  php-mail-mime                         1.8.4-1                            all          PHP PEAR module for creating MIME messages
ii  php-mail-mimedecode                   1.5.5-1                            all          PHP PEAR module to decode MIME messages
ii  php-net-smtp                          1.6.1-1                            all          PHP PEAR module implementing SMTP protocol
ii  php-net-socket                        1.0.9-2                            all          PHP PEAR Network Socket Interface module
ii  php-pear                              5.4.39-0+deb7u2                    all          PEAR - PHP Extension and Application Repository
ii  php-xml-parser                        1.3.4-6                            all          PHP PEAR module for parsing XML
ii  php5-cgi                              5.4.39-0+deb7u2                    amd64        server-side, HTML-embedded scripting language (CGI binary)
ii  php5-cli                              5.4.39-0+deb7u2                    amd64        command-line interpreter for the php5 scripting language
ii  php5-common                           5.4.39-0+deb7u2                    amd64        Common files for packages built from the php5 source
ii  php5-curl                             5.4.39-0+deb7u2                    amd64        CURL module for php5
ii  php5-dev                              5.4.39-0+deb7u2                    amd64        Files for PHP5 module development
ii  php5-gd                               5.4.39-0+deb7u2                    amd64        GD module for php5
ii  php5-imagick                          3.1.0~rc1-1+b2                     amd64        ImageMagick module for php5
ii  php5-imap                             5.4.39-0+deb7u2                    amd64        IMAP module for php5
ii  php5-intl                             5.4.39-0+deb7u2                    amd64        internationalisation module for php5
ii  php5-mcrypt                           5.4.39-0+deb7u2                    amd64        MCrypt module for php5
ii  php5-mysql                            5.4.39-0+deb7u2                    amd64        MySQL module for php5
ii  php5-pgsql                            5.4.39-0+deb7u2                    amd64        PostgreSQL module for php5
ii  php5-sqlite                           5.4.39-0+deb7u2                    amd64        SQLite module for php5
ii  php5-suhosin-extension                0.9.37-2                           amd64        advanced protection system for PHP5
ii  php5-sybase                           5.4.39-0+deb7u2                    amd64        Sybase / MS SQL Server module for php5
ii  php5-xdebug                           2.2.1-2                            amd64        Xdebug Module for PHP 5
root@zaphod:~# pecl list
Installed packages, channel pecl.php.net:
=========================================
Package  Version State
APC      3.1.13  beta
memcache 3.0.8   beta
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.