<?php
echo file_put_contents("/tmp/log.txt", "안녕하세요 여러분.");
코드는 매우 간단하며 21
과 같이 브라우저와 명령줄에서 실행할 때 성공을 표시합니다. 하지만 브라우저를 실행한 후에는 /tmp/log.txt가 존재하지 않습니다. 명령줄에서 /tmp/log.txt가 성공적으로 생성되었습니다(루트 및 Apache 사용자 테스트에는 문제 없음). 매우 혼란스럽습니다. . . . . . .
uname -r
: 3.10.0-514.2.2.el7.x86_64
모두 yum install, yum install httpd php5를 통해 설치됩니다.
巴扎黑2017-05-16 13:05:18
사용자 질문이 있나요? 명령줄에서는 루트 사용자인 것으로 추정되므로 실행이 성공할 수 있습니다. 귀하의 웹 디렉터리가 다른 사용자 그룹에 속해 있는지 확인하세요. 이 사용자 그룹에는 임시 디렉터리에 대한 읽기 및 쓰기 권한이 없습니다.
给我你的怀抱2017-05-16 13:05:18
권한 문제일 것입니다. PHP가 tmp 디렉토리를 작동하는 것도 안전하지 않으므로 기본적으로 허용되지 않습니다.
안전하지 않다고 말하는 이유는 무엇인가요? 쓸 수 있으면 읽을 수 있어야 하기 때문입니다(PHP의 경우 기본적으로 쓰기만 가능하고 권한 설정 없이 읽을 수 없는 상황은 없습니다)... 이 경우 해커가 많은 정보를 읽을 수 있습니다
習慣沉默2017-05-16 13:05:18
실행 중인 브라우저는 웹사이트 루트 디렉터리를 의미합니다. 명령줄/은 서버 루트 디렉터리를 의미합니다. 웹사이트 루트 디렉터리에 /tmp/log.txt 파일이 있는지 확인하세요.