PHP(Apache, Linux Mint)에서 fopen() 함수가 작동하지 않습니다.
P粉722409996
2023-08-13 14:14:43
<p>fopen()이 Linux Mint의 apache2 로컬 서버에서 작동하지 않습니다</p>
<pre class="brush:php;toolbar:false;"><?php
error_reporting(E_ALL);
ini_set('display_errors',1);
include_once "c&f.php";
fopen("test.txt", 'w');</pre>
<p>test.txt</code> 파일이 생성되고 Sublime을 사용하여 파일을 열고 쓸 수 있습니다. 이 특정 프로젝트의 디렉토리는 <code>/var/www/site02</code>입니다. 설치 후 apache2를 구성할 때 파일을 읽고 쓸 수 있도록 이 특정 디렉터리(site02)의 소유권을 구체적으로 변경했습니다(sudo chown $USER:$USER -R... 이해가 되실 겁니다). 실제로 이 디렉터리에서 내 사용자 계정으로 읽고 쓸 수 있습니다(이 디렉터리에서는 "sudo" 없이 cli git 명령을 자유롭게 사용할 수 있습니다). </p>
<p>위에 언급된 코드를 사용하여 <code>index.php</code>에 액세스하면 다음 오류가 발생합니다. </p>
<인용문>
<p>"경고: fopen(test.txt): 스트림을 열 수 없습니다: /var/www/site02/index.php에서 권한이 거부되었습니다. 6행"</p>
</인용문>
<p>무슨 일이 일어났나요? 나는 문제에 대해 인터넷 검색을 시도했지만 수천 가지 다른 이유를 발견하여 더 혼란스러워졌습니다. 문제가 Apache 서버에 문제가 있습니까? 아니면 PHP의 일부 구성을 변경해야 합니까? </p>
그래서 이 질문을 게시한 후 그래픽 인터페이스에서 권한을 확인하기 위해 파일 관리자(Thunar)로 /var/www/site02를 열기로 결정했습니다. 예, 이 디렉토리의 소유자는 저이고 저는 읽고 쓸 수 있습니다. 그룹은 myusername이고 권한은 읽기 및 쓰기입니다. 그러나 "다른 사람"에게는 읽기 권한이 하나만 있습니다. 읽고 쓰기로 바꿨습니다. 그리고 몇 가지 코드로 테스트해보세요:
으아아아그리고 효과가 있었어요!