Re: Fwd: php not reading file properly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
--- Begin Message ---
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 <ash@xxxxxxxxxxxxxxxxxxxx> 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 ;)


---------- Forwarded message ----------
From: "sean greenslade" <zootboysean@xxxxxxxxx>
To: php-general@xxxxxxxxxxxxx
Date: Fri, 22 Aug 2008 10:04:07 -0400
Subject: Re: Fwd: 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
<ash@xxxxxxxxxxxxxxxxxxxx>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" <zootboysean@xxxxxxxxx>
> To: php-general@xxxxxxxxxxxxx
> Date: Fri, 22 Aug 2008 02:31:47 -0400
> Subject: Re: Fwd: 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
> <ash@xxxxxxxxxxxxxxxxxxxx>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" <zootboysean@xxxxxxxxx>
> > To: "Micah Gersten" <micah@xxxxxxxxxxx>
> > Date: Wed, 20 Aug 2008 19:41:54 -0400
> > Subject: Re: Fwd: 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 <micah@xxxxxxxxxxx>
> 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 <
> > > swimmer1974@xxxxxxxxx>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 <
> > > zootboysean@xxxxxxxxx>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.

--- End Message ---
-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux