찾다

 >  Q&A  >  본문

php - file_put_contents가 아파치에서 작동하지 않습니다

코드

<?php

echo file_put_contents("/tmp/log.txt", "안녕하세요 여러분.");

코드는 매우 간단하며 21과 같이 브라우저와 명령줄에서 실행할 때 성공을 표시합니다. 하지만 브라우저를 실행한 후에는 /tmp/log.txt가 존재하지 않습니다. 명령줄에서 /tmp/log.txt가 성공적으로 생성되었습니다(루트 및 Apache 사용자 테스트에는 문제 없음). 매우 혼란스럽습니다. . . . . . .

운영체제: centos7

uname -r: 3.10.0-514.2.2.el7.x86_64

환경

모두 yum install, yum install httpd php5를 통해 설치됩니다.

黄舟黄舟2777일 전741

모든 응답(7)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-05-16 13:05:18

    /tmp 디렉토리에는 최대 권한이 있어야 합니다. 권한 문제가 없나요? 오류 메시지를 열고

    회신하다
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:05:18

    먼저 쓰기 허용 여부를 폴더 권한으로 확인한 후

    으아악

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:05:18

    사용자 질문이 있나요? 명령줄에서는 루트 사용자인 것으로 추정되므로 실행이 성공할 수 있습니다. 귀하의 웹 디렉터리가 다른 사용자 그룹에 속해 있는지 확인하세요. 이 사용자 그룹에는 임시 디렉터리에 대한 읽기 및 쓰기 권한이 없습니다.

    회신하다
    0
  • 怪我咯

    怪我咯2017-05-16 13:05:18

    권한이 있나요? ! !

    회신하다
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:05:18

    권한 문제일 것입니다. PHP가 tmp 디렉토리를 작동하는 것도 안전하지 않으므로 기본적으로 허용되지 않습니다.
    안전하지 않다고 말하는 이유는 무엇인가요? 쓸 수 있으면 읽을 수 있어야 하기 때문입니다(PHP의 경우 기본적으로 쓰기만 가능하고 권한 설정 없이 읽을 수 없는 상황은 없습니다)... 이 경우 해커가 많은 정보를 읽을 수 있습니다

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:05:18

    간단하고 조악한 테스트: chmod -R 777 /tmp

    그럼 쓸 수 있는지 확인해 보세요.

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-05-16 13:05:18

    실행 중인 브라우저는 웹사이트 루트 디렉터리를 의미합니다. 명령줄/은 서버 루트 디렉터리를 의미합니다. 웹사이트 루트 디렉터리에 /tmp/log.txt 파일이 있는지 확인하세요.

    회신하다
    0
  • 취소회신하다