<?php
echo file_put_contents("/tmp/log.txt", "Hello world everyone.");
代码很简单,在浏览器和命令行上运行都显示成功,为:21
。但是在浏览器运行后,/tmp/log.txt并不存在。而在命令行下,/tmp/log.txt创建成功(root和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 파일이 있는지 확인하세요.