[웹서버] PHP 파일 업로드 시 발생 문제

PHP 로 만들어진 웹 프로그램에서 파일을 서버로 업로드 시 여러가지 문제

가 발생한다. 이 문제를 해결 할 수 있는 주요 php.ini 옵션들이다.

register_globals = On

-> php 의 global 변수의 사용을 무난히 지원 하기 위해서는 On을 해주는 것이 좋다. 다소 보안에 문제가 있을 수는 있지 만 이부분을 Off 해서 다른 부분에 대한 문제를 해결 할수 있는 능력이 되는 개발자가 아니라면 On 을 해주는 것이 좋을 것이다.

file_uploads = On

upload_max_files = 2M  

-> php 의 upload 함수를 이용해서 파일을 업로드 시킬때 파일 크기 제한설정 부분이다. 만일 업로드 파일의 크기가 클 경우 반드시 여기서 파일 크기를 높여 주어야 한다.

upload_tmp_dir = /tmp

-> 간혹 파일을 업로드시 파일의 임시 저장 공간을 다른 곳으로 정해두는 경우가 있다 파일을 업로드시 임시 저장 디렉토리의 퍼미션등의 문제로 파일이 업로드나 다운로드가 되지 않는 경우가 있다. 정확한 임시 저장 디렉토리 가 설정되었는지와 임시 디렉토리의 퍼미션 확인을 해보아야 한다. 퍼미션은

1777 이면 무난할거 같다.

default_socket_timeout = 60

-> 기본적으로 socket connection 을 맺으면 요청에 따라 1분간 socket 이 열려있다. 만일 파일의 크기가 너무 크고, 네트워크 속도가 느린경우 파일 업로드 시간이 오래 걸릴 경우 이 시간을 늘려주어야 한다.

post_max_size = 8M

-> post 방식으로 데이터를 보낼 경우 데이터 크기가 제한되어져 있다.

PHP 의 파일 업로드의 경우 대부분 많이 사용하는 방식이 post 방식으로

파일을 보낸다. 이때 파일의 크기가 8M가 넘으면 ~ 아마도 “페이지를 찾을수 없다” 는 식의 전송 완료 후 나타나는 페이지를 찾을 수 없다는 메세지가 뜰것이다.  

대충 이정도 살펴 보면 큰 용량의 파일을 올릴 수 있는 웹 프로그램을 지원할수 있을 것이다. 단 너무 큰 용량을 올릴 경우 서버에 무리가 발생할수도 있으니 이점 유의해야 할것이다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.