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();"