PHP file_exists 문제 잡담

2961 단어 file exists
문제 회사 의 프레임 워 크 는 smarty 를 바탕 으로 쓴 것 입 니 다.저 는 phop 의 업 그 레이 드 를 책임 집 니 다.관리자 가 새로운 환경 을 올 린 후에 테스트 직원 들 이 저 를 찾 아와 자주 오 류 를 제 기 했 습 니 다(오류:알림 에서 파일 을 찾 을 수 없습니다).나 는 코드 를 추적 해 보 았 는데,알 고 보 니 스마트 의 이 곳 에서 보고 한 잘못 이 었 다.
4.567916.오류:여기 서 파일 이 존재 하지 않 습 니 다.사고 과정:1.프로그램 에 이 파일 이 없 는 줄 알 았 는데 파일 이 있 더 라 고요.그게 어떻게 된 거 예요?2.나중에 나 는 phop 커 널 에 문제 가 있 는 지 다시 추측 했다.나 는 phop 과 관련 된 커 널 문 서 를 한 번 보 았 지만 문 제 를 발견 하지 못 했다.결국 나 는 모든 과정 을 프로젝트 매니저 에 게 말 했다.일 도 해결 되 지 않 았 는데,이렇게 먼저 흐지부지 되 었 다.진급 하 는 일이 먼저 지체 되 고 있다.오늘 또 이 문 제 를 발 견 했 습 니 다.제 첫 번 째 반응 은 phop 버 전이 업그레이드 되 었 는 지 아 닌 지 를 발 견 했 습 니 다.나중에 전체 디 렉 터 리 를 777 로 설정 하면 괜찮아 집 니 다.혹시 fileexists()방법 문제.그래서 나 는 관련 디 버 깅 과 실험 을 진행 했다.
디 버 깅 과정
 
디버그 코드:

디 렉 터 리:

 
각 권한 관찰:test 는 ww 에 권한 이 없 으 며,실행 파일 index.php 는 읽 기와 쓰기 실행 권한 이 있 으 며,파일 test.txt 를 포함 하여 읽 기와 쓰기 권한 이 있 습 니 다.


실행 결과:

 

 디 렉 터 리 실행 권한 영향 fileexists()
 
1.test 에 게 가장 큰 권한 을 준다―755

 

성공 한 이상 fileexists()함 수 는 디 렉 터 리 권한 의 제한 을 받는다.어떤 디 렉 터 리 권한 이 file 에 영향 을 줍 니까?exists()는?나 는 몇 가지 실험 을 했다.1.파일 의 모든 상위 디 렉 터 리 는 쓰기 권한 타 임 스 파일 만 존재 하지 않 는 다.2.파일 의 모든 상위 디 렉 터 리 는 읽 기 권한 만 있 을 때 파일 이 존재 하지 않 습 니 다.3.모든 상위 디 렉 터 리 가 실행 권한 이 있 을 때 보고 파일 은 존재 하고 모든 것 이 정상 입 니 다.결과,설명 fileexists()는 파일 이 존재 하 는 지 여 부 를 판단 할 때 모든 디 렉 터 리 에 실행 권한 이 있 는 지 재 귀적 으로 판단 합 니 다.파일 경 로 를 상대 경로 로 수정 하여 같은 결 과 를 얻 을 수 있 습 니 다.

php 매 뉴 얼 에 언급 되 지 않 았 습 니 다.fileexists 는 디 렉 터 리 의 실행 권한 에 영향 을 받 습 니 다.이 글 을 통 해 이 문제 도 있 는 개발 자 들 에 게 알 립 니 다.이것 만 을 경계 로 하 다.추가 정 보 는 여러분 이 남 겨 주신 말씀 에 감 사 드 리 며 매우 유용 합 니 다.여러분 의 의견 을 통 해 저 는 매 뉴 얼 을 다시 찾 아 보 았 습 니 다.확실히 디 렉 터 리 에 실행 권한 이 없 으 면 pp-fpm 응용 프로 세 스 는 이 디 렉 터 리 아래 에서 파일 검색 을 할 수 없습니다.물론 파일 이 존재 하지 않 는 다 고 생각 합 니 다.(실제 실행 가능 한 디 렉 터 리 가 없다 고 생각 합 니 다)매 뉴 얼 내용 은 모두 가 함께 고려 해 볼 수 있 는데,주로 집행 권한 이다.여기 서 읽 기와 쓰기 권한 에 대해 서 는 자세히 이야기 하지 않 겠 습 니 다.
4.567916.뚜렷 한 수첩 에서 디 렉 터 리 의 집행 권한 에 대해 명확 한 지 시 를 한다.디 렉 터 리 에 대한 실행 권한 은 검색 할 권리 가 있 습 니 다.

좋은 웹페이지 즐겨찾기