동적 웹 페이지(4)

minah moon·2023년 8월 8일

PHP

목록 보기
17/58
post-thumbnail

PHP 인터프리터와 아파치 웹 서버는 사용되는 디폴트 문자, 인코딩, 문제가 발생했을 때 사용자에게 오류 메시지를 표시할지 여부, 개별 웹 페이지에서 사용할 수 있는 메모리 양과 같은 것들을 제어하는 설정을 가지고 있다.

PHP 인터프리터에 대한 설정 보기

대부분의 소프트웨어와 마찬가지로 PHP 인터프리터는 동작 방식을 제어하는 설정을 가지고 있다. 내장 함수인 phpinfo()는 구성할 수 있는 설정과 현재 값을 보여주는 테이블을 표시한다.

  • default_charset : 디폴트 문자 인코딩. 이것을 UTF-8로 설정되어야 한다.
  • display_errors : HTML 페이지에 오류 표시 여부. 개발 중일 때는 On, 사이트가 활성화되면 Off
  • log_errors : 로그 파일에 오류 저장 여부. 사이트가 활성화되면 On
  • error_log : 사이트가 활성화될 때 오류가 기록될 수 있는 로그 파일의 경로
  • error_reporting : 기록할 오류의 종류. E_ALL은 모든 오류를 표시하라는 설정이다.
  • upload_max_filesize : 브라우저가 서버로 업로드할 수 있는 단일 파일의 최대 크기
  • max_execution_time : PHP 인터프리터가 스크립트를 중지하기 전에 스크립트를 실행할 수 있는 최대 시간(초)
  • date.timezone : 서버에서 사용하는 디폴트 시간대. Date라는 헤더 아래에 표시된다.

인터프리터 설정 변경하기: php.ini

php.ini는 PHP 인터프리터의 설정을 편집할 수 있는 파일이다.

설정은 변수와 같은 지시문을 사용하여 제어된다. 각 지시문은 새로운 줄에서 시작하며 다음으로 구성된다.

  • 변경할 수 있는 옵션
  • 할당 연산자
  • 가져야 할 값

만약에 값이

  • 문자열이라면, 따옴표로 묶는다.
  • 숫자라면, 따옴표를 사용하지 않는다.
  • 불리언이라면, 따옴표를 사용하지 않는다.

ex)

date.timezone = "Europe/Rome"
display_errors = On

서버 설정 변경하기: .htaccess

.htaccess 파일은 아파치 웹 서버의 모든 디렉터리에 추가할 수 있다. 이것은 해당 폴더에 있는 파일에 대한 PHP 인터프리터의 설정을 오버라이드 할 것이며, 하위 폴더와 폴더에 속한 파일에도 영향을 준다.

.htaccess 파일은 php.ini에서 오버라이드하고자 하는 설정만 있으면 된다. 설정은 다음의 것을 제외하고 php.ini의 설정과 동일한 이름과 값을 사용한다.

  • php_flag 지시문의 값이 불리언인 경우(on 또는 off의 값이 될 수 있는 설정을 나타냄)
  • php_value 2개 이상의 옵션이 있는 경우(예 숫자, 위치 또는 인코딩 스킴)

주석은 #기호로 시작하며 지시문과 같은 줄이 아닌 새로운 줄에서 시작해야 한다.

.htaccess 파일은 php.ini 파일이 할 수 없는 아파치 웹 서버의 옵션을 제어할 수 있다.

php_value date.timezone "Europe/London"
php_flag display_errors On

httpd.conf

httpd.conf라는 텍스트 파일은 아파치 웹 서버의 디폴트 설정을 제어한다. 여러 가지 설정이 php.ini의 설정을 덮어쓰고 변경된 사항을 적용하려면 아파치를 다시 시작해야 한다. httpd.conf는 전체 웹 서버에 대한 설정을 제어할 수 있기 때문에, httpd.conf에 대한 접근 권한을 호스팅 업체가 고객에게 항상 주는 것은 아니다.






출처 - 존 두켓, <백엔드 프로그래밍을 위한 PHP & MySQL>, Jpub, 2022

0개의 댓글