Re: Fwd: php not reading file properly

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

 



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
--- Begin Message ---
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.

--- 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