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

时间:2013-11-07 01:34:20

标签: php

我在/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个文件烫发)。

为什么,以及如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

你的问题可能就在这里

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

在Linux中,/是服务器的根。所以它在你的日志文件的根目录中查找(你可能没有访问权限)。相反,请尝试使您的路径相对于您的文件,或包含完整正确的路径

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

答案 1 :(得分:0)

尝试更改

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

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

答案 2 :(得分:0)

当您在基于Linux / UNIX的环境中工作时,文件路径开头的/表示计算机从根目录开始。 拿出/出去它应该有效。