file_put_contents无法在服务器上运行

时间:2016-07-24 16:43:14

标签: php html linux fedora

这个简单的代码创建一个文件,当页面刷新但它不起作用。

<?php
    $fileName="test1.html";
    $content="<h1>header</h1>";
    file_put_contents($fileName,$content);
?>

从我所看到的,用户拥有创建文件所需的所有权限

lrwxrwxrwx. 1 admin1 root         13 Jul 10 22:35 html -> /var/www/html

可能阻止创建文件的任何想法?

1 个答案:

答案 0 :(得分:0)

您的html/var/www/html的符号链接:

ls -ldZ /var/www/html
drwxr-xr-x. 2 admin1 brahim system_u:object_r:httpd_sys_content_t:s0 274 Jul 24 17:36 /var/www/html

您不需要该符号链接的写入权限,但需要符号链接的目标。

也不是拥有权限,而是运行apache网络服务器的用户(通常是www-dataapache在Fedora上需要这些权限。

同时为所有用户提供写入您的网站目录的权限是一个坏主意,所以让我们尝试一下:

  1. 在名为/var/www/html的{​​{1}}中创建一个子目录:

    data
  2. mkdir /var/www/html/data 用户授予其可写权限:

    apache
  3. 修改脚本以写入此目录:

    chown apache:root /var/www/html/data
    chmod 700 /var/www/html/data