我是PHP新手,刚刚遇到使用fopen()创建和打开文件的问题。下面是我的代码:
<?php
$new_file = fopen('file.txt', 'w') or die("Cannot create a file");
$text = <<<_END
Line 1
Line 2
Line 3
_END;
fwrite($new_file, $text) or die('Cannot write to the file');
fclose($new_file);
当我试图通过在浏览器中打开它来运行文件时,我看到下一条消息:"无法创建文件"。但是当我开始调试会话时,一切都正常工作。我怀疑有一些权限问题和XDebug使用根访问不像通常的解释器?
读写权限
chown -R www-data:www-data /var/www/dicrctoy
chmod -R 775 /var/www/dicrctoy
我已经在我的本地环境中进行了测试,没有发现错误如果你使用MAC,你应该检查文件权限使用chmod修改权限命令
chmod 777是什么意思?可读、可写和可执行为文件或目录设置777权限意味着它将被所有用户可读、可写和可执行
要解决这个问题,首先我需要用下一个命令检查PHP用户:
<?php echo `whoami`; ?>
输出:
www-data
这是默认的PHP用户。接下来,我用下面的命令检查文件夹的所有者:
ls -dl /var/www/html/test
输出:
drwxrwxr-x 2 username username 4096 Jun 26 12:49
下面我给PHP用户设置了权限:
sudo chown -R www-data /var/www/html/test
再次检查所有者是否更改
ls -dl /var/www/html/test
现在输出
drwxrwxr-x 2 www-data username 4096 Jun 26 12:55
。现在我可以创建并写入文件了。