我正在尝试通过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';
?>
但是没有创建该文件并让我:
Can't create file
P.S:
我在Linux / Ubuntu上使用LAMP服务器。
我在创建该文件之前尝试过以下命令:
sudo chmod -R 755 ~/public_html/
任何想法都会受到赞赏。
答案 0 :(得分:9)
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
之下,我只是以它为例,因为它似乎是你的文件所在。)
答案 1 :(得分:0)
该文件夹必须由apache用户拥有,所以:
sudo chown -R www-data:www-data ~/public_html/
答案 2 :(得分:0)
将文件夹(您尝试创建的文件)的权限更改为所有权限
sudo chmod 777