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

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

Reply via email to