The cron job only runs every 5 minutes, so not likely On Fri, Aug 22, 2008 at 10:22 AM, Ashley Sheridan <[EMAIL PROTECTED]>wrote:
> Are you sure they are both not accessed at around about the same time? > Look at the timestamps. The only analysis I've ever done with logs has been > offline, so I've not run into this problem before. > > Ash > www.ashleysheridan.co.uk > > > ---------- Forwarded message ---------- > From: "sean greenslade" <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > Date: Fri, 22 Aug 2008 10:13:37 -0400 > Subject: Re: Fwd: [PHP] php not reading file properly > Yeah, but it wouldn't read access_log.tmp, which wasn't being written to at > the time of loading. I think the whole logs folder is restricted from php > access. > > On Fri, Aug 22, 2008 at 10:13 AM, Ashley Sheridan < > [EMAIL PROTECTED]> wrote: > >> The log file was in the process of being written to as you were trying to >> read it. It's a bit like trying to look at a quark. By doing so, you've >> already affected its position. Although, unlike a quark, you can create a >> copy of the log file ;) >> >> Ash >> www.ashleysheridan.co.uk >> >> >> ---------- Forwarded message ---------- >> From: "sean greenslade" <[EMAIL PROTECTED]> >> To: php-general@lists.php.net >> Date: Fri, 22 Aug 2008 10:04:07 -0400 >> Subject: Re: Fwd: [PHP] php not reading file properly >> Yeah, I tried changing the perms, and that didn't work. I originally made >> the cron job put the temp copy in the same logs folder, but it refused to >> open that. I changed it to put the temp copy in the web folder, and it can >> read that. I think apache and/or php may have certain restrictions that >> keep >> them from accessing important system folders. >> >> On Fri, Aug 22, 2008 at 3:09 AM, Ashley Sheridan >> <[EMAIL PROTECTED]>wrote: >> >> > You can change the permissions on the file, which I believe you said you >> > did. If that didn't work, it must be because you are trying to read from >> > the file at the very same instant that Apache is writing to it logging >> > that you are trying to access it, if that makes sense? >> > >> > Ash >> > www.ashleysheridan.co.uk >> > >> > >> > ---------- Forwarded message ---------- >> > From: "sean greenslade" <[EMAIL PROTECTED]> >> > To: php-general@lists.php.net >> > Date: Fri, 22 Aug 2008 02:31:47 -0400 >> > Subject: Re: Fwd: [PHP] php not reading file properly >> > So I made a cron jop to copy the log to the web folder every 5 minutes. >> > That >> > worked fine. It seems that php can't read the /var/log/httpd folder >> without >> > root perms. >> > >> > On Wed, Aug 20, 2008 at 7:53 PM, Ashley Sheridan >> > <[EMAIL PROTECTED]>wrote: >> > >> > > Yeah, Apache is still running, but it is the access log you are trying >> > > to read, at the same time that you are Apache is being accessed. >> > > Accessing the log from the terminal will be fine while Apache is >> > > running, as it is unlikely it is being accessed at the very same >> > > instant. Are you able to access other files? Also, have you tried >> > > copying the file to another temporary version from within PHP an >> > > accessing that? If that doesn't work, try executing a Bash script that >> > > copies it someplace. Make sure to run the script in the background, >> and >> > > maybe add a sleep period to it so that it doesn't interfere with >> Apache >> > > accessing things. >> > > >> > > Ash >> > > www.ashleysheridan.co.uk >> > > >> > > >> > > ---------- Forwarded message ---------- >> > > From: "sean greenslade" <[EMAIL PROTECTED]> >> > > To: "Micah Gersten" <[EMAIL PROTECTED]> >> > > Date: Wed, 20 Aug 2008 19:41:54 -0400 >> > > Subject: Re: Fwd: [PHP] php not reading file properly >> > > Ashley Sheridan wrote: >> > > >> > > >As it's the Apache access log that you are trying to read in, are you >> > sure >> > > that Apache is >not in the process of writing to it as you are >> > > attempting to read from it? That might explain >why it seems to be >> > empty, >> > > although I would have thought it would just append the data to >the >> end >> > of >> > > the file, rather than rewriting the whole thing. >> > > >> > > I dunno. Like I said, I can read it thru the terminal. Apache is still >> > > running then. >> > > >> > > As for Micah's response, that function won't work either. >> > > >> > > On Wed, Aug 20, 2008 at 7:34 PM, Micah Gersten <[EMAIL PROTECTED]> >> > wrote: >> > > >> > > > If the directory above it doesn't have execute privileges, it won't >> be >> > > > able to read it either. >> > > > Also, why not use the PHP5 function file_get_contents()? >> > > > >> > > > Thank you, >> > > > Micah Gersten >> > > > onShore Networks >> > > > Internal Developer >> > > > http://www.onshore.com >> > > > >> > > > >> > > > >> > > > sean greenslade wrote: >> > > > > Thanks for the advice. I changed the perms to 777 and changed the >> > user >> > > > and >> > > > > group to apache, but it still won't open. >> > > > > >> > > > > >> > > > > On Wed, Aug 20, 2008 at 3:35 PM, Robbert van Andel < >> > > > [EMAIL PROTECTED]>wrote: >> > > > > >> > > > > >> > > > >> Does the user your PHP instance runs as have access to the file? >> > It's >> > > > >> possible that it runs under a different users depending on if >> you're >> > > > running >> > > > >> the script on the terminal or in a web browser. The function >> fopen >> > > will >> > > > >> return false if the file fails to open. Find out if $fh is equal >> to >> > > > false. >> > > > >> While you're debugging, you might consider changing the display >> > errors >> > > > >> setting to see what warning fopen generates if the file fails to >> > open. >> > > > From >> > > > >> http://us.php.net/fopen >> > > > >> Errors/Exceptions >> > > > >> >> > > > >> If the open fails, the function an error of level *E_WARNING* is >> > > > >> generated. You may use @< >> > > > http://us.php.net/manual/en/language.operators.errorcontrol.php>to >> > > > suppress this warning. >> > > > >> >> > > > >> >> > > > >> On Wed, Aug 20, 2008 at 12:15 PM, sean greenslade < >> > > > [EMAIL PROTECTED]>wrote: >> > > > >> >> > > > >> >> > > > >>> I have this snippet of code that is supposed to read the apache >> > > access >> > > > log >> > > > >>> and display it: >> > > > >>> <?php >> > > > >>> $myFile = "/var/log/httpd/access_log"; >> > > > >>> $fh = fopen($myFile, 'r'); >> > > > >>> $theData = fread($fh, filesize($myFile)); >> > > > >>> fclose($fh); >> > > > >>> echo >> > > > >>> "This weeks apache log (clears every sunday morning):". >> > > > >>> substr($theData,0,2000); >> > > > >>> ?> >> > > > >>> For some reason, it displays the logs when I run the php file >> thru >> > > > >>> terminal: >> > > > >>> php -f /web/apache.php >> > > > >>> >> > > > >>> but not when I access it thru the web. when I browse to it, it >> just >> > > > >>> displays >> > > > >>> the static text ("This weeks apache log (clears every sunday >> > > > morning):"), >> > > > >>> not the log text. >> > > > >>> >> > > > >>> Very confused, >> > > > >>> zootboy >> > > > >>> >> > > > >>> >> > > > >> >> > > > > >> > > > > >> > > > > >> > > > >> > > >> > > >> > > >> > > -- >> > > Feh. >> > > >> > > >> > >> > >> > -- >> > Feh. >> > >> > >> >> >> -- >> Feh. >> >> > > > -- > Feh. > > -- Feh.