Nuke Olaf - Log Store

PHP - file_put_contents 가 실행되지 않음 본문

Language/[PHP]

PHP - file_put_contents 가 실행되지 않음

NukeOlaf 2020. 2. 3. 16:31

PHP Warning: fopen() Error: failed to open stream: Permission denied

<?php
file_put_contents("data/".$_POST['name'], $_POST['guestbook']);

echo $_POST['name']."<br>";
echo $_POST['guestbook'];

header('Location: /olaf.php#guest');
?>

위의 PHP 코드로 POST 메서드를 통해 받아온 데이터를 이용해 파일을 만들어서 data 라는 디렉토리에 저장하려고 했다. 하지만 어째서인지 파일이 만들어지지 않았다.

 

apache 의 error.log 를 보니까 이렇게 나온다.

PHP Warning: fopen() Error: failed to open stream: Permission denied

권한문제로 인해 파일이 작성되지 않는 듯 했다.

data 디렉토리의 권한을 777 로 바꿔봤다.

이렇게 바꿔주니까 해결이 되었다.

처음에는 sudo su 로 root 계정에서 chmod 를 해주었었는데, 해결이 안되었다.
그런데 olaf 계정에서 chmod 를 해주니까 해결이 되었다.

왜 되는지 모르겠으나 일단 해결되었으니 다행

 

참고한 사이트>>>

https://stackoverflow.com/questions/31685305/php-function-fopen-failed-to-open-stream-permission-denied

https://hnark.tistory.com/91

https://kingle1024.tistory.com/135

Comments