gpt4 book ai didi

php - fopen() 无法在 Linux 上创建文件

转载 作者:IT王子 更新时间:2023-10-29 00:20:04 33 4
gpt4 key购买 nike

我正在尝试通过 fopen() 创建一个文件,如下所示:

<?php 
$handle = fopen('name.txt', 'w') or die('Can\'t create file');
fwrite($handle, 'Hamed'."\n");
fwrite($handle, 'Kamrava'."\n");
echo 'File was created successfully';
?>

但不会创建该文件并获取我:

无法创建文件

附言:

我在 Linux/Ubuntu 上使用 LAMP 服务器。

我在创建该文件之前尝试了以下命令:

sudo chmod -R 755 ~/public_html/

如有任何想法,我们将不胜感激。

最佳答案

PHP 脚本作为为 Apache Web 服务器配置的用户执行。为了创建文件,此用户必须对要在其中创建文件的目录具有写权限。有两种方法可以做到这一点:

您可以为所有用户授予对该目录的写入权限,这将包括为 Apache 配置的任何内容(对于开发机器来说足够好):

chmod o+w ~/public_html/directory_where_you_want_to_write

或者您可以将目录的所有权传递给 Apache 用户。这意味着 使用您的常规用户帐户将无法在此目录中创建或删除文件,除非您也执行上述操作。假设 Apache 使用 www-data 用户帐户运行,就像它在 Ubuntu 上的默认情况一样,您会这样做:

sudo chown www-data ~/public_html/directory_where_you_want_to_write

(而且该目录不必位于 public_html 下,我只是将其用作示例,因为这似乎是您的文件所在的位置。)

关于php - fopen() 无法在 Linux 上创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17776004/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com