어젯밤 disucz 포럼을 이전한 후, 열린 페이지에서 "PHP에서 스택 오버플로가 발생했습니다"로 번역된 추가 PHP에서 스택 오버플로 오류 메시지가 발생했음을 발견했습니다. 새 사이트에 아무도 찾아오지 않는데 어떻게 넘쳐날 수 있겠는가 하는 느낌이 들었다. 자, discuz 공식 포럼으로 가서 해결책을 찾아보세요.
제가 찾은 첫 번째 해결책은 백그라운드 캐시를 업데이트하는 것이었지만 작동하지 않았습니다. 다음으로 데이터베이스 구성 파일을 확인하면 오류가 없습니다. PHP 권한을 확인하는 데에도 오류가 없습니다.
discus 공식 홈페이지에서 PHP 버전이 너무 낮다는 분들이 있는데, 저는 개인적으로 그런 분들이 정말 말도 안되는 소리라고 하더군요. 확인할 필요가 없습니다.
기존 서버와 신규 서버를 비교해보니 두 서버의 경로가 다르더군요. 바로 상위 디렉터리 폴더의 권한을 확인해 보니 역시 권한에 문제가 있었습니다. 파일 경로는 D:/www/discuz입니다. 이전 서버의 www 및 discuz 폴더 권한에 "익명 게스트 권한"이 있는지 확인하세요. 새 서버에 갔을 때 www 폴더에는 "익명 게스트 권한"이 없지만 discuz 폴더에는 있는 것을 확인했습니다. 상위 디렉터리에 대한 권한이 부족하여 발생하는 것으로 나타납니다. 다시 권한을 부여하세요. ok는 PHP에서 스택 오버플로가 발생한 문제를 완벽하게 해결합니다.
위에서 너무 많이 말했지만 실제로는 한 문장에 불과합니다.
이것은 모두 Windows 서버의 권한 문제, 특히 상위 수준 디렉터리 권한 문제 때문입니다.
예:
원래 웹사이트 디렉토리는 d:wwwjb51
빠르고 안전한 해결책은 jb51 디렉터리 아래에 새 디렉터리 webroot를 만드는 것입니다. 이 디렉터리의 권한은 jb51의 권한과 동일합니다.
현재 웹사이트 디렉토리는 d:wwwjb51webroot입니다.
이제 이 문제로 인해 discuz, phpmyadmin 등 많은 PHP 시스템에 오류가 발생합니다.