PHP 5.6 で一部の拡張機能を無効にする方法は?

PHP 5.6 で一部の拡張機能を無効にする方法は?

CentOS 6.7サーバーにPHP 5.6をインストールしました。

yum --enablerepo=remi,remi-php56 install -y php-mysqlnd php-gd php-mbstring php-mcrypt php-xml php-fpm

次の PHP 拡張機能を有効にしています:

<?php
print_r(get_loaded_extensions());
?>

[0] => Core
[1] => date
[2] => ereg
[3] => libxml
[4] => openssl
[5] => pcre
[6] => zlib
[7] => filter
[8] => hash
[9] => Reflection
[10] => SPL
[11] => session
[12] => standard
[13] => cgi-fcgi
[14] => ctype
[15] => curl
[16] => ftp
[17] => gd
[18] => mbstring
[19] => mcrypt
[20] => mysqlnd
[21] => PDO
[22] => SimpleXML
[23] => mysql
[24] => pdo_mysql
[25] => json
[26] => mhash

PHP のメモリ使用量を節約するために、/etc/php.d フォルダー内の多くの PHP 拡張機能を無効にしました。

次のようなものを無効にしたいと思います:

libxml、ereg、mhash、Reflection、SPL など。

ただし、これらの拡張ファイルは /etc/php.d フォルダーにはありません。

そこで、libxml、ereg、mhash、Reflection、SPL などの拡張機能を無効にする方法を教えてください。

また、無効にしても安全かどうかも教えてください。

詳細を知りたい場合は返信してください。

ありがとう。

答え1

これらはすべて PHP でコンパイルされています。そのため、パッケージを再コンパイルせずに無効にすることはできません。

しかし、メモリは非常に重要です。無効にしても、あまり変化はないと思います。パッケージを再コンパイルした場合、メモリの有無によるメモリ使用量の違いを教えていただけますか?

ありがとう!

答え2

ほとんどの拡張機能を共有としてビルドするための重要な作業が (5.3 以降) 完了したため、無効にすることができます。そして、これ以上無効にすることはできないと思います。

元:

  • SPL は無効にできず、常に必要になります (少なくともオートローダーの場合)
  • セッションは明らかに必須である
  • mhashはセッションで使用されるハッシュによって提供される偽のextなので必須です

Fedora PHP 仕様ファイルでの詳細な説明:http://pkgs.fedoraproject.org/cgit/php.git/tree/php.spec?id=98ce5ad0385bfb5679a731a1df48b82b22718bc6#n860

答え3

コマンドラインインターフェースから、-nすべての拡張機能の読み込みを無効にするように指定できます(ただし、一部の拡張機能は無効にできません)。例:

php -n -r "phpinfo();"

関連情報