"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP 기본 기능을 활성화/비활성화하는 방법 – php.ini Tutorial

PHP 기본 기능을 활성화/비활성화하는 방법 – php.ini Tutorial

2024-11-02에 게시됨
검색:227

이 기사에서는 php.ini 파일의 "disable_functions" 지시문을 편집하여 PHP 기본 기능을 활성화 또는 비활성화하는 단계별 절차를 제공하고 싶습니다.

시스템과 프로덕션 환경의 호환성을 수용하기 위해 서버의 기본 PHP 구성을 사용자 정의해야 하는 경우가 있습니다.

이 튜토리얼이 필요한 이유

저는 Laravel 및 Symfony용 실시간 모니터링 패키지인 Inspector.dev의 작성자입니다. 이 패키지는 pro_open 및 proc_close PHP 기본 함수를 사용하여 서버에서 Inspector API로 비동기적으로 데이터 전송을 수행합니다.

기본적으로 활성화된 PHP의 기본 CURL 기능을 사용하도록 구성할 수도 있지만 이 경우 Sentry, Bugsnag 등과 같은 다른 패키지와 마찬가지로 동기 방식으로 모니터링 데이터를 Inspector에 보냅니다. 이는 PHP 엔진이 클라이언트와의 연결을 종료하기 전에 기다려야 하기 때문에 애플리케이션 속도가 약간 느려질 수 있음을 의미합니다.

최근 일부 개발자들이 PHP 구성에서 proc_open 및 proc_close 기능이 비활성화되어 비동기 데이터 전송을 활용하려면 해당 기능을 잠금 해제해야 하기 때문에 저에게 연락했습니다.

매우 드물지만 이 사용 사례에 대한 지원 리소스로 이 튜토리얼을 작성하기로 결정했습니다.

php.ini 파일은 무엇입니까?

php.ini 파일은 PHP용 구성 파일입니다. 파일에는 "지시문"이라는 키/값 쌍 목록이 포함되어 있습니다. 지시문은 여러 섹션으로 그룹화되어 있지만 주로 조직화 목적으로 사용됩니다.

PHP가 시작되면 이 파일을 읽고 내부 데이터 구조를 설정하여 구성을 저장합니다. 실행 전반에 걸쳐 PHP는 이러한 내부 데이터 구조를 참조하여 오류 처리 및 로깅, 리소스 제한(메모리, 실행 시간), 파일 업로드, 데이터베이스 연결 등과 같은 여러 주요 영역에서 어떻게 작동해야 하는지 결정합니다.

궁금하신 분들을 위해 말씀드리자면: PHP는 php.ini 파일이 없어도 작동할 수 있으며 모든 지시문에 기본값을 적용하기만 하면 됩니다.

익숙하지 않은 분들을 위해 다음은 php.ini 파일의 예입니다:

https://github.com/php/php-src/blob/master/php.ini-production

php.ini의 기능 활성화/비활성화

php.ini 파일을 편집하면 PHP 코드 내에서 호출할 수 없는 기본 PHP 기능을 비활성화할 수 있습니다.

때때로 이 기능은 공유 호스팅 환경에서 일부 기능을 잘못 사용하면 다른 사용자에게 보안 문제를 일으킬 수 있으므로 일부 기능의 사용을 제한하는 데 사용됩니다. exec()와 같은 함수는 일반적으로 비활성화되어 있지만 때로는 서버 공급자가 너무 보수적이어서 일상적인 프로그래밍 작업에 필요한 기능을 비활성화할 수 있습니다.

php.ini 파일을 찾으세요

컴퓨터의 터미널에서 아래 명령을 실행하여 파일의 현재 위치를 가져옵니다(Win과 Unix 모두에서 작동함):

php --ini

공통 위치: /etc/php.ini, /etc/php/8.x/php.ini (x를 설치 버전 번호로 교체)

서버의 파일을 편집하려면 모든 Unix 시스템에서 사용할 수 있는 vim 편집기를 사용하는 것을 선호합니다.

// Use the file path from the command above
sudo vim /etc/php.ini

"disable_functions" 지시문까지 아래로 스크롤합니다. 이는 파일의 전반부에 있어야 하며 쉼표로 구분된 함수 목록을 포함합니다.

disable_functions=exec,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

php.ini 파일 편집

  • vim에서 INSERT 모드로 들어가려면 키보드에서 문자 "i"를 누르세요.
  • 목록에서 proc_open 및 proc_close 함수를 제거합니다.
  • 파일 편집이 끝나면 ESC 키를 누르세요. 그러면 INSERT 모드가 종료되고 터미널 왼쪽 하단에서 “– INSERT –”가 사라집니다.
  • 파일을 저장하려면 쓰기 및 종료 명령인 ":wq"를 입력하세요.

PHP 엔진 다시 시작

새 구성을 로드하려면 PHP를 다시 시작해야 합니다. 아래 지침은 대부분의 서버에서 작동합니다. 결국 Google에서 특정 OS를 검색할 수 있습니다.

// Change the version of the PHP with what is in use in your machine
sudo systemctl restart php8.2-fpm.service

더 많은 기술 관련 기사를 보려면 Linkedin이나 X에서 저를 팔로우하세요.

PHP 애플리케이션을 무료로 모니터링하세요

Inspector는 소프트웨어 개발자를 위해 특별히 설계된 코드 실행 모니터링 도구입니다. 서버 수준에서는 아무것도 설치할 필요가 없습니다. Laravel 또는 Symfony 패키지만 설치하면 바로 사용할 수 있습니다.

HTTP 모니터링, 데이터베이스 쿼리 통찰력, 경고 및 알림을 선호하는 메시징 환경으로 전달하는 기능을 찾고 있다면 Inspector를 무료로 사용해 보세요. 계정을 등록하세요.

또는 웹사이트에서 자세한 내용을 알아보세요: https://inspector.dev

How to enable/disable PHP native functions – php.ini Tutorial

릴리스 선언문 이 기사는 https://dev.to/inspector/how-to-enabledisable-php-native-functions-phpini-tutorial-kpg?1에 재현되어 있습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다. 그것
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3