我试图通过fopen()
创build一个文件如下:
<?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'; ?>
但不创build该文件,并让我:
Can't create file
PS:
我在Linux / Ubuntu上使用LAMP服务器。
我在创build该文件之前已经尝试了下面的命令:
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
下,我只是用它作为例子,因为这似乎是你的文件的位置。)
该文件夹必须由apache用户拥有,所以:
sudo chown -R www-data:www-data ~/public_html/
将文件夹(您正在尝试创建)的权限更改为所有权限
sudo chmod 777