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는 세션에서 사용되는 해시에서 제공하는 가짜 확장이므로 필수입니다.

Fedora PHP 사양 파일에 대한 추가 설명:http://pkgs.fedoraproject.org/cgit/php.git/tree/php.spec?id=98ce5ad0385bfb5679a731a1df48b82b22718bc6#n860

답변3

명령줄 인터페이스에서 -n모든 확장(일부 제외) 로드를 비활성화하도록 지정할 수 있습니다. 예:

php -n -r "phpinfo();"

관련 정보