관리 메뉴

투덜이 개발자

PHP 설치 본문

Program Language/PHP

PHP 설치

엠투 2021. 6. 4. 12:36
반응형

PHP 다운로드

https://windows.php.net/downloads/releases/archives/

 

windows.php.net - /downloads/releases/archives/

 

windows.php.net

https://windows.php.net/download

 

PHP For Windows: Binaries and sources Releases

PHP 8.0 (8.0.28) Download source code [23.47MB] Download tests package (phpt) [13.56MB] VS16 x64 Non Thread Safe (2023-Feb-14 12:39:52) Zip [25.53MB] sha256: 6bcd82934073488cc451f2f1658feedeb43ef5077e9ae7bcf354ae5c8ec69b4a Debug Pack [23.21MB] sha256: a147

windows.php.net

4가지 선택항목 중에 본인 PC에 맞게 선택하여 Zip 파일을 다운로드 하면 된다.
VC15 x64 Non Thread Safe : 64bit IIS 서버
VC15 x64 Thread Safe :  64bit Apache / Nginx 서버
VC15 x86 Non Thread Safe :  32bit IIS 서버
VC15 x86 Thread Safe : 32bit Apache / Nginx 서버

PHP 는 기본적으로 멀티 프로세서 방식으로 처리한다.
TS(Thread Safe) : 멀티 프로세서 방식, NTS(Non Thread Safe) : 싱글 프로세서 방식

Apache 서버를 사용하고 64Bit 이면 VC15 x64 Thread Safe 들 다운로드 하면 된다.

php 설치 디렉토리에 가면 php.ini 파일은 없고 대신 php.ini-development, php.ini-production 두 파일만 있습니다.

php.ini-development : 개발용 버전
php.ini-production    : 실사용( 배포용 ) 버전

설치된 PHP 가 TS , NTS 설치 확인 방법

윈도우

php -i | findstr -i "thread"

 

리눅스(유닉스, 맥) 

php -i | grep -i "Thread"

 

<?
	phpinfo();
?>

에서 확인도 가능합니다.


PHP.INI 설정

보통 개발 단계나 학습 단계에서는 "php.ini-development : 개발용 버전"을 사용하는 것이 좋습니다.

디버그나 로그 등이 추가되어 production 보다 무겁지만, 개발하는 과정 상 필요한 기능을 추가 제공합니다.

php.ini-development 파일을 php.ini 로 변경

(* php.ini 경로 : php –ini | grep php.ini)

 

extension_dir = "C:/PHP7.0.33/ext"

ext 경로를 잡아준다.

short_open_tag = On

“<?php” 와 “<?” 를 사용 할 수 있도록 한다.

display_errors = On

PHP 스크립트 실행시 에러 발생시 해당 메세지를 출력한다.

(off 인 경우에는 HTTP 500 내부 서버 오류 출력)

date.timezone = Asia/Seoul

해당 타임존을 설정한다.

error_reporting=E_ALL & ~E_NOTICE & ~E_DEPRECATED

notice 에러는 무시한다.

 

expose_php = Off

php 버전 숨기기

 

session.gc_probability = 1	; GC 실행 확률 = 1/100 = 1%
session.gc_divisor = 100
session.gc_maxlifetime = 1800	; 세션 유지 30분

세션을 30분 동안 유지하기 

 

session.gc_maxlifetime = 1800 세션 유지 시간을 30분(1800초)으로 설정합니다.

session.gc_probability = 1 가비지 컬렉션(GC) 실행 확률의 분자입니다.

session.gc_divisor = 1 가비지 컬렉션(GC) 실행 확률의 분모입니다.

 

만약  session.gc_probability = 1 , session. gc_divisor  = 1 설정은 확률이 $1/1$, 즉 **100%**입니다.

이는 사용자가 페이지를 클릭할 때마다 서버가 세션 저장 폴더를 뒤져서 만료된 파일을 지우는 작업을 수행하게 만듭니다.

  • 문제점: 접속자가 적을 때는 상관없지만, 방문자가 많아지면 서버의 CPU와 디스크 I/O에 상당한 부담을 줍니다. 웹사이트 속도가 느려지는 원인이 됩니다.
  • 해결책: 보통은 1/100이나 1/1000 정도로 설정하여 100번 혹은 1000번의 요청 중 한 번만 청소를 하도록 관리합니다.

 

memory_limit = 1024M
post_max_size = 1024M
upload_max_filesize = 1024M

업로드 용량 설정

 

extension=curl
extension=fileinfo
extension=gd2
extension=mbstring
extension=exif
extension=mysqli

기본 라이블러리

 

 

 

***   기타 참고

# 서버 아파치 php 적용 리스타트 
#systemctl restart httpd 반영되지 않음
#apachectl restart 반영되지 않음
이유 : Server API => FPM/FastCGI 이기 때문
systemctl restart php-fpm 해야 php.ini 수정된게 반영됨

 

반응형