php 파일명이나, 디렉토리에 한글이 포함된 경우.......php파일에 접근하면 file not found라는 메시지만 나옵…
본문
+서버os : Rocky Linux 9.4 / AlmaLinux 9.4
+Apache 2.4.57
+PHP 7.4.33 / 8.0.x / 8.2.x
아파치의 가상호스트 설정에서 DocumentRoot의 설정값에 한글이 있거나(디렉토리 이름이 한글인 경우), "한글이름.php"와 같이 php의 파일명에 한글이 (포함되어)있으면 웹브라우저로 접속시 file not found 라는 메시지만 한 줄 나옵니다...
html 파일은 디렉토리에 한글이 있거나 파일명이 한글이더라도 아무런 문제없이 잘 작동합니다.
php 파일은 파일명에 한글이 있으면 file not found가 뜨고, 디렉토리 이름에 한글이 포함되어 있어도 여지없이 file not found가 뜹니다.
서버는 vps로 os만 자동설치된 상태였구요...rocky에서는 php 8.0, 8.2로 테스트 해 봤고
alma에서는 yum으로(epel, remi) php 7.4.33을 설치해봤는데 결과는 똑같습니다.
php파일의 이름을 한글로 설정해야 할 이유는 없어서....이건 큰 문제는 아니지만..
가상호스트별 디렉토리는 그 수량이 많고, 직관적이어야 할 필요가 있어서...디렉토리는 한글을 사용해왔는데요...(centos에서..)
디렉토리를 영문으로 설정하면 아무런 이상이 없긴 합니다...
혹시나 해서 언어셋을 ko_KR.UTF-8로 바꿔봤는데...결과는 변함없이 안됩니다.
html은 디렉토리나 파일명에 한글이 들어가도 아무 문제가 없는걸로 봐서는 "mod_url.c"와는 무관한 듯 합니다. (이것의 존재를 오늘 알았습니다)
아파치 로그는 아래와 같습니다.
***apache error log
[Fri Oct 04 23:18:34.688885 2024] [proxy_fcgi:error] [pid 11673:tid 11807] [client 175.xxx.xxx.190:1503] AH01071: Got error 'Primary script unknown'
***apache access log
175.xxx.xxx.190 - - [04/Oct/2024:23:18:34 +0900] "GET /index.php HTTP/1.1" 404 16 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36"
...... apache를 2.4.6 버전으로 설치해서 다시 진행해야 할지.....
그냥................디렉토리 이름을 영문으로 설정하고 쓰면 당장은 괜찮을 것도 같지만.....조금 불안하기도 하고요.....
혹시 동일한 증상 겪으신 분들이 계실까요???
===================================================================================
[2024.10.05 01:02] 한국시간 입니다...
고민고민 하다가....혹시나 하는 마음에...
한글디렉토리를 영문으로 심볼릭링크를 걸어두고 DocumentRoot에 링크된 디렉토리를 설정해봤습니다....
일단..정상작동은 합니다..
당장은...이렇게 써도 될 것 같기는 한데............이게 좀....편법(?)..같기도 하고...근본적인 해결책을...계속...찾아보렵니다...
아파치님의 댓글
아파치 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (76.♡.♡.33) 작성일심볼릭을 사용하셔도 무방 합니다.
한글 디렉토리를 사용하지 않아서 이런 결과값이 있는지 몰랐습니다.
나중에 기회가되면 테스트 해 보겠습니다.