Wie erteile ich PHP-Schreibberechtigung für ein Verzeichnis?
P粉512363233
P粉512363233 2023-08-27 15:25:11
0
2
576
<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>
P粉512363233
P粉512363233

Antworte allen(2)
P粉376738875

简单的三步解决方案


第 1 步:确定 PHP 用户

创建一个包含以下内容的 PHP 文件:

<?php echo `whoami`; ?>

将其上传到您的网络服务器。输出应类似于以下内容:

www-data

因此,PHP 用户是 www-data


第 2 步:确定目录所有者

接下来,通过命令行检查Web目录的详细信息:

ls -dl /var/www/example.com/public_html/example-folder

结果应类似于以下内容:

drwxrwxr-x 2 exampleuser1 exampleuser2 4096 Mar 29 16:34 example-folder

因此,该目录的所有者是 exampleuser1


第 3 步:将目录所有者更改为 PHP 用户

然后,将Web目录的所有者更改为PHP用户:

sudo chown -R www-data /var/www/example.com/public_html/example-folder

验证 Web 目录的所有者是否已更改:

ls -dl /var/www/example.com/public_html/example-folder

结果应类似于以下内容:

drwxrwxr-x 2 www-data exampleuser2 4096 Mar 29 16:34 example-folder

至此,example-folder 的所有者已成功更改为 PHP 用户:www-data


完成! PHP 现在应该能够写入该目录。

P粉352408038

一个简单的方法是让 PHP 首先创建目录本身。

<?php
 $dir = 'myDir';

 // create new directory with 744 permissions if it does not exist yet
 // owner will be the user/group the PHP script is run under
 if ( !file_exists($dir) ) {
     mkdir ($dir, 0744);
 }

 file_put_contents ($dir.'/test.txt', 'Hello File');

这可以为您省去权限方面的麻烦。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage