Wie erteile ich PHP-Schreibberechtigung für ein Verzeichnis?
P粉512363233
2023-08-27 15:25:11
<p>Ich versuche, eine Datei mit PHP zu erstellen, aber es funktioniert nicht. Ich gehe davon aus, dass das daran liegt, dass es keinen Schreibzugriff hat (dieses Problem gab es schon einmal). Ich habe versucht zu testen, ob dies das Problem war, indem ich den Ordner mit chmod 0777 geändert habe, aber das führte letztendlich dazu, dass jedes Skript in diesem Verzeichnis eine 500-Fehlermeldung zurückgab, bis ich es wieder änderte.
Wie gebe ich PHP Schreibzugriff auf mein Dateisystem, damit es Dateien erstellen kann? </p>
<p>BEARBEITEN: Es wird auf Hostgator Shared Hosting mit Apache gehostet. </p>
<p>Edit 2: Jemand hat nach dem Code gefragt:
Der Code ist ein GD-Bildskript. Ich weiß, dass der Rest genauso funktioniert wie zuvor, als ich das Bild jedes Mal erstellt habe, wenn ich es aufgerufen habe. Jetzt versuche ich, sie beim Hinzufügen von neuem Text zu erstellen und in einem Ordner zu speichern. Meine Schreibzeile lautet:
imagejpeg(null,$file,85);</p>
<p>Ich habe auch eine Testdatei erstellt, um zu prüfen, ob es sich nur um ein kaputtes Skript handelt (meistens von tizag kopiert):
http://gearboxshow.info/rkr/lesig.jpg/testfile.txt (Ich weiß nicht, ob/wie ich den Code hier richtig posten soll. Dies ist der Inhalt des PHP-Skripts, abzüglich der PHP-Tags.) < /p>
<p> Es gibt 13,13,1 (separate Zeilen) zurück, es sieht also so aus, als ob es denkt, dass es etwas geschrieben hat, aber die testfile.txt ist leer (ich habe eine leere hochgeladen) oder existiert nicht (wenn ich sie lösche). Es)). </p>
<p>Bearbeiten 3: Auf dem Server wird CentOS ausgeführt. </p>
简单的三步解决方案
第 1 步:确定 PHP 用户
创建一个包含以下内容的 PHP 文件:
将其上传到您的网络服务器。输出应类似于以下内容:
因此,PHP 用户是
www-data
。第 2 步:确定目录所有者
接下来,通过命令行检查Web目录的详细信息:
结果应类似于以下内容:
因此,该目录的所有者是
exampleuser1
。第 3 步:将目录所有者更改为 PHP 用户
然后,将Web目录的所有者更改为PHP用户:
验证 Web 目录的所有者是否已更改:
结果应类似于以下内容:
至此,
example-folder
的所有者已成功更改为 PHP 用户:www-data
。完成! PHP 现在应该能够写入该目录。
一个简单的方法是让 PHP 首先创建目录本身。
这可以为您省去权限方面的麻烦。