fopen& fwrite函数无法从浏览器中运行?

时间:2010-06-07 06:24:28

标签: php

fopen函数在php中无效。

我在我的php文件中写了以下代码。

            $fh =  fopen("/home/sugumar/Public_html/sugumar/public_html/123","a+");

            fwrite($fh,"hello");

我从命令行运行此代码:php file_name.php工作正常。 但是,如果我从浏览器运行此代码,则会显示以下错误。

  

警告:fopen(Logs / add_employee.logs)   [function.fopen]:无法打开   stream:权限被拒绝   /home/sugumar/Public_html/sugumar/public_html/HRMS/HRMS_add_emp_DB.php   在第111行

     

警告:fwrite():提供的参数是   不是有效的流资源   /home/sugumar/Public_html/sugumar/public_html/HRMS/HRMS_add_emp_DB.php   在第113行

如何解决这个问题?

提前致谢。

5 个答案:

答案 0 :(得分:5)

我认为将公共HTML文件夹chmod到777根本不是一个好主意。除了错误消息指出它不是具有权限问题的public_html文件夹,而是Logs文件夹...特别是这个特定的Logs文件夹中的文件没有“write”访问权限:add_employee.logs

要更改权限,只需找到Logs文件夹的位置,然后如果您有权访问SSH,请cd到服务器上的Logs文件夹并输入:

chmod 666 add_employee.logs

这会将add_employee.logs的权限更改为read + write,因此您的PHP将能够写入该文件。

如果您没有SSH,请尝试使用FTP客户端连接到服务器。然后导航到服务器上的Logs文件夹(取决于您的托管服务提供商是否允许FTP访问此文件夹)。根据您拥有的FTP客户端,您应该能够右键单击文件/文件夹并更改所选文件/文件夹的权限。

如果您无法使用FTP访问Logs文件夹,您的托管服务提供商应提供一个CPanel网站供您登录。从CPanel,您应该可以访问某种文件管理器,您可以在其中访问Logs文件夹,并可以从那里更改文件的权限。由于我不知道您的托管服务提供商使用哪种CPanel软件,并且它们都非常不同,因此无法在此处提供说明。

答案 1 :(得分:2)

您必须使您正在编写的目录由您的网络服务器写入。

例如:

chown -R www-data:www-data /home/sugumar/Public_html/sugumar/public_html/123
chmod 644 /home/sugumar/Public_html/sugumar/public_html/123

答案 2 :(得分:1)

该文件没有为运行Web服务器的用户设置适当的权限,以便能够对其进行修改。使用chmod等来适当修改权限。

答案 3 :(得分:1)

正如其他用户所指出的那样,当您从Web服务器运行时,您没有该文件的权限。

但是,然后给予该目录的权限,我建议使用不同的文件:

$fh =  fopen("/var/tmp/123","a+");

答案 4 :(得分:0)

错误消息不言自明:权限被拒绝

你必须使用FTP客户端chmod你的/ Public_html /到0777,为这个目录中的文件提供web-server写访问权

虽然大写P似乎非常可疑