将日志写入文本文件不起作用


Writing logs to a text file doesn't work

我在/var/www/index.php 中有这段代码:

<html>
<head>
<title>Chipperyman573</title>
<link rel="shortcut icon" href="/fav.ico" />
</head>
<body>
I honestly don't know what you expected.
</body>
</html>
<?php
//get visitors ip address
$ipaddress = $REMOTE_ADDR;
//get visit date
$vdate = date("m-d-y");
//UserAgent
$agent = getenv("HTTP_USER_AGENT");
//Set whole string
$str = $ipaddress.." visited on "..$vdate.." using user agent "..$agent..".";
//Set log name
$fi = "/logs/mainLog.txt";
file_put_contents($fi, $str);
?>

我在/logs 中制作了一个名为 mainLog.txt 的文本文件,但是在我的浏览器中访问chipperyman573.com后,那里什么都没有出现。所有文件(/index.php、/logs 和/logs/mainLog.txt都有 777 个文件perms)。

为什么,我该如何解决这个问题?

你的问题可能在这里

$fi = "/logs/mainLog.txt";

在 Linux 中,/ 是服务器的根目录。因此,它会在根目录中查找日志文件(您可能无权访问该文件)。相反,请尝试相对于文件创建路径,或包含完整的正确路径

$fi = "./logs/mainLog.txt";

尝试更改

$fi = "/logs/mainLog.txt";

$fi = $_SERVER['DOCUMENT_ROOT']."/logs/mainLog.txt";

当您在基于 linux/UNIX 的环境中工作时,文件路径开头的/会告诉计算机从根目录进入。取出/出来,它应该可以工作。