I tried to set CakePHP in localhost. It works great except when the page goes to the one that need to read the database.
It just shows:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster#dummy-host.example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Here's the error log:
[Thu May 09 12:07:44 2013] [notice] Parent: Received shutdown signal -- Shutting down the server.
[Thu May 09 12:07:44 2013] [notice] Child 844: Exit event signaled. Child process is ending.
[Thu May 09 12:07:45 2013] [notice] Child 844: Released the start mutex
[Thu May 09 12:08:00 2013] [notice] Child 844: All worker threads have exited.
[Thu May 09 12:08:00 2013] [notice] Child 844: Child process is exiting
[Thu May 09 12:08:00 2013] [notice] Parent: Child process exited successfully.
Warning: DocumentRoot [C:/apache2/docs/dummy-host.example.com] does not exist
Warning: DocumentRoot [C:/apache2/docs/dummy-host2.example.com] does not exist
[Thu May 09 12:08:01 2013] [notice] Apache/2.2.22 (Win64) PHP/5.3.13 configured -- resuming normal operations
[Thu May 09 12:08:01 2013] [notice] Server built: May 13 2012 19:41:17
[Thu May 09 12:08:01 2013] [notice] Parent: Created child process 2504
Warning: DocumentRoot [C:/apache2/docs/dummy-host.example.com] does not exist
Warning: DocumentRoot [C:/apache2/docs/dummy-host2.example.com] does not exist
Warning: DocumentRoot [C:/apache2/docs/dummy-host.example.com] does not exist
Warning: DocumentRoot [C:/apache2/docs/dummy-host2.example.com] does not exist
[Thu May 09 12:08:01 2013] [notice] Child 2504: Child process is running
[Thu May 09 12:08:01 2013] [notice] Child 2504: Acquired the start mutex.
[Thu May 09 12:08:01 2013] [notice] Child 2504: Starting 64 worker threads.
[Thu May 09 12:08:01 2013] [notice] Child 2504: Starting thread to listen on port 80.
Most answer that I found in Google is asking us to edit C:\WINDOWS\System32\drivers\etc\hosts to only have one 127.0.0.1 localhost. Mine has been like that since the very beginning.
By the way, in the error log, it says C:/apache2/.... But in my C folder, that directory doesn't exist.
I use WAMP Server if that matter.
Any solution?
Thank you
I change my server from WAMP to XAMPP and now it works okay. Not sure what cause it.
Related
Okay, first of all I understand and ... permit ... you all to laugh: I have a local server running php 4,4 / apache / mysql - installed with xampp distribution. Just simply haven't got the time to upgrade all the code that has been serving me for years and is still serving me well :-)
To the issue - I can't make a try/catch ... beeeecause of the old php version. I have a script that parses a dir and to a lot of things to all the files ... and after several 100 thousand files over the years without problems ... I now find that the server shuts down / browser looses connection probably because of a single file ... but for my life I can't figure out which. So thought maybe I could figure it out through the error log. But ... I didn't learn much - and thought I might ask some wise guys here if there is anything I can learn from the following from my error log - regarding maybe what function/file or whatever it is that causes the breaking...:
[Tue Feb 14 20:47:26 2017] [crit] (22)Invalid argument: unable to replace stderr with error_log
[Tue Feb 14 20:47:26 2017] [crit] (2)No such file or directory: unable to replace stderr with /dev/null
[Tue Feb 14 20:47:26 2017] [notice] Apache/2.0.54 (Win32) mod_ssl/2.0.54 OpenSSL/0.9.8 PHP/4.4.0 mod_autoindex_color configured -- resuming normal operations
[Tue Feb 14 20:47:26 2017] [notice] Server built: Jul 28 2005 18:10:37
[Tue Feb 14 20:47:26 2017] [notice] Parent: Created child process 5384
[Tue Feb 14 20:47:27 2017] [notice] Child 5384: Child process is running
[Tue Feb 14 20:47:27 2017] [notice] Child 5384: Acquired the start mutex.
[Tue Feb 14 20:47:27 2017] [notice] Child 5384: Starting 250 worker threads.
[Tue Feb 14 20:47:36 2017] [notice] Parent: child process exited with status 3221225725 -- Restarting.
[Tue Feb 14 20:47:36 2017] [crit] (22)Invalid argument: unable to replace stderr with error_log
[Tue Feb 14 20:47:36 2017] [crit] (2)No such file or directory: unable to replace stderr with /dev/null
[Tue Feb 14 20:47:36 2017] [notice] Apache/2.0.54 (Win32) mod_ssl/2.0.54 OpenSSL/0.9.8 PHP/4.4.0 mod_autoindex_color configured -- resuming normal operations
[Tue Feb 14 20:47:36 2017] [notice] Server built: Jul 28 2005 18:10:37
[Tue Feb 14 20:47:36 2017] [notice] Parent: Created child process 3136
[Tue Feb 14 20:47:36 2017] [notice] Child 3136: Child process is running
[Tue Feb 14 20:47:36 2017] [notice] Child 3136: Acquired the start mutex.
[Tue Feb 14 20:47:36 2017] [notice] Child 3136: Starting 250 worker threads.
Got it ... filesize() was failing (silent aparently) for some file(s). Ran it w/o this function and it worked. Case closed...
Edit: strange though ... filesize() suddenly fails on all files. And they are local. Subdir to the htdocs folder ... and the top level folder to this structure is set to all my users to have full control of this folder and all subfolders... weird...
Editing the whole question as i managed to narrow it down. This is the code
<?php
set_time_limit(0);
$file = file_get_contents("oui.txt");
preg_match_all("/[0-9ABCDEF]{6}(?=(?:.*?\s*)*CHINA)/", $file ,$out, PREG_PATTERN_ORDER);
var_dump($out);
?>
This code make wampserver 2.3 to show This webpage is not available but when i change the regex to any simpler for instance only [0-9ABCDEF]{6} in this very code, it run smoothly.
When this error ocurr the apache_error.log file says this:
[Sun Mar 30 17:36:56 2014] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Sun Mar 30 17:36:56 2014] [notice] Apache/2.2.23 (Win32) PHP/5.4.9 configured -- resuming normal operations
[Sun Mar 30 17:36:56 2014] [notice] Server built: Aug 24 2012 11:30:00
[Sun Mar 30 17:36:56 2014] [notice] Parent: Created child process 2376
[Sun Mar 30 17:36:56 2014] [notice] Child 2376: Child process is running
[Sun Mar 30 17:36:56 2014] [notice] Child 2376: Acquired the start mutex.
[Sun Mar 30 17:36:56 2014] [notice] Child 2376: Starting 64 worker threads.
[Sun Mar 30 17:36:56 2014] [notice] Child 2376: Starting thread to listen on port 80.
Don't know if it have anything to do with the fact that it also shows errors when i try to access any folder;
[Sun Mar 30 17:36:30 2014] [error] [client 127.0.0.1] client denied by server configuration: C:/Apache2, referer: http://localhost/anyfolder/
I have no skype.
Thank you very much
Your regex can be simplified with:
preg_match_all(
"/[0-9ABCDEF]{6}(?=.*CHINA)/",
$file,
$out,
PREG_PATTERN_ORDER|PCRE_DOTALL
);
If preg_match entered some weird loop, this should solve the issue.
The PCRE_DOTALL makes the . aware of linebreaks as well.
Turns out it's a wampserver's bug on Windows XP
I am trying to track down the cause of my Apache PHP crashes. I am hoping there is some kind of setting, tool or something to help track down what code, configuration or what the issue is that is causing these php crashes.
In my Windows event log I have (shows apache crashing, but caused by php):
Faulting application httpd.exe, version 2.2.21.0, time stamp 0x4e6b3136, faulting module php5ts.dll, version 5.3.8.0, time stamp 0x4e537a04, exception code 0xc0000005, fault offset 0x0000c7d7, process id 0xbf4, application start time 0x01cd45afc42f0b7d.
The application utilizes Apache, PHP and MySQL on a Windows Server 2008 machine (xampp).
This is the crash in my Apache log:
[Fri Jun 08 15:56:34 2012] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Fri Jun 08 15:56:35 2012] [notice] Digest: generating secret for digest authentication ...
[Fri Jun 08 15:56:35 2012] [notice] Digest: done
[Fri Jun 08 15:56:35 2012] [notice] Apache/2.2.21 (Win32) PHP/5.3.8 configured -- resuming normal operations
[Fri Jun 08 15:56:35 2012] [notice] Server built: Sep 10 2011 11:34:11
[Fri Jun 08 15:56:35 2012] [notice] Parent: Created child process 1220
[Fri Jun 08 15:56:35 2012] [notice] Digest: generating secret for digest authentication ...
[Fri Jun 08 15:56:35 2012] [notice] Digest: done
[Fri Jun 08 15:56:35 2012] [notice] Child 1220: Child process is running
[Fri Jun 08 15:56:35 2012] [notice] Child 1220: Acquired the start mutex.
[Fri Jun 08 15:56:35 2012] [notice] Child 1220: Starting 150 worker threads.
[Fri Jun 08 15:56:35 2012] [notice] Child 1220: Starting thread to listen on port 80.
[Fri Jun 08 15:56:35 2012] [notice] Child 1220: Starting thread to listen on port 80.
[Fri Jun 08 15:57:37 2012] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Fri Jun 08 15:57:37 2012] [notice] Digest: generating secret for digest authentication ...
[Fri Jun 08 15:57:37 2012] [notice] Digest: done
[Fri Jun 08 15:57:37 2012] [notice] Apache/2.2.21 (Win32) PHP/5.3.8 configured -- resuming normal operations
[Fri Jun 08 15:57:37 2012] [notice] Server built: Sep 10 2011 11:34:11
[Fri Jun 08 15:57:37 2012] [notice] Parent: Created child process 3932
[Fri Jun 08 15:57:38 2012] [notice] Digest: generating secret for digest authentication ...
[Fri Jun 08 15:57:38 2012] [notice] Digest: done
[Fri Jun 08 15:57:38 2012] [notice] Child 3932: Child process is running
[Fri Jun 08 15:57:38 2012] [notice] Child 3932: Acquired the start mutex.
[Fri Jun 08 15:57:38 2012] [notice] Child 3932: Starting 150 worker threads.
[Fri Jun 08 15:57:38 2012] [notice] Child 3932: Starting thread to listen on port 80.
[Fri Jun 08 15:57:38 2012] [notice] Child 3932: Starting thread to listen on port 80.
Any thoughts on what I should try, or tools/techniques to trace back to what code, etc. might be causing this?
Since XAMPP's Apache (for Windows) is built with winn_nt MPM (multi-thread) + Thread-Safe PHP, it may be that you are hitting a problem inherent to the supposedly Thread-Safe versions of PHP (see this very good post for more information). This could explain why you never encounter the error when running in a single-user mode.
Please let us know if Uku Loskit's suggestion did any good. If not, I would recommend switching to a Prefork + Non-Thread-Safe PHP setup in such a multi-user environment.
Because MPM must be chosen at compile-time, you would need to either:
compile Apache yourself (technically feasible, but quite a pain in the neck on Windows, as far as I remember)
find a distribution other than XAMPP, which is built with prefork (I do not know any)
Perhaps you'd better try to run PHP with FastCGI (this extra layer basically isolates server threads by starting a separate PHP process for each thread, and much more). This should allow you to verify easily enough my initial assumption.
Just a side note: I do not see the point in installing Apache on a Windows Server. You may want to consider either using IIS, optionally with FastGCI (see instructions here), or (better) switch to a Linux-based stack.
My following setup is Xampp 1.7.7 and here is the info for everything in that package:
- Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1
I'm running the server on Windows XP SP3 32 bit OS, 4 gigs of ram, Quad Core.
The issue I'm having in my apache error log file is:
[Tue Apr 24 15:55:55 2012] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Tue Apr 24 15:55:57 2012] [notice] Digest: generating secret for digest authentication ...
[Tue Apr 24 15:55:57 2012] [notice] Digest: done
[Tue Apr 24 15:55:59 2012] [notice] Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 configured -- resuming normal operations
[Tue Apr 24 15:55:59 2012] [notice] Server built: Sep 10 2011 11:34:11
[Tue Apr 24 15:55:59 2012] [notice] Parent: Created child process 776
[Tue Apr 24 15:56:00 2012] [notice] Disabled use of AcceptEx() WinSock2 API
[Tue Apr 24 15:56:01 2012] [notice] Digest: generating secret for digest authentication ...
[Tue Apr 24 15:56:01 2012] [notice] Digest: done
[Tue Apr 24 15:56:02 2012] [notice] Child 776: Child process is running
[Tue Apr 24 15:56:02 2012] [notice] Child 776: Acquired the start mutex.
[Tue Apr 24 15:56:02 2012] [notice] Child 776: Starting 350 worker threads.
[Tue Apr 24 15:56:02 2012] [notice] Child 776: Listening on port 443.
[Tue Apr 24 15:56:02 2012] [notice] Child 776: Listening on port 80.
This seems to occur sporadically throughout the day and I even tried using Win32DisableEx, EnableIMAP Off and EnableSendFile Off in the apache conf file. I also tried copying the libmysql.dll file to the system32 and apache/bin folders with no avail.
If anyone knows other reasons this error for the child process exiting and causing apache to crash, info would be greatly appreciated. If any additional log files are needed please let me know.
Tks,
Shane.
The error code 3221225477 is 0xC0000005 in hex, which on Windows is:
#define STATUS_ACCESS_VIOLATION ((NTSTATUS)0xC0000005L)
Access violation is Windows' version of "segmentation fault", which simply said means that the program tried to access a memory which is not allocated. This can happen for a lot of different reasons, but mostly (if not always) is a bug in the program.
Now, my guess for your situation, is that there is either a bug in PHP or in one of PHP's extensions or in Perl or some Perl application. Apache itself is usually very stable, but if you use some unusual extension, it might be the cause, too.
I would suggest updating all your configuration to latest versions. If you want to find the source of the problem for sure, run Apache inside a debugger, like Visual Studio or OllyDbg. When the exception (access violation) happens, it will stop execution (instead of restarting) and you'll see in which module it is.
Also take a look in the access log, if there is a suspicious request with the same timestamp as the error. But it may happen that the crash happens before the request is saved in the logfile.
I've read some questions and responses related to the infamous Apache error
Apache error [notice] Parent: child process exited with status 3221225477 — Restarting
But nothing could help me so far. What I'm asking to you is if I used a Linux version, could the script crash Apache for the same reason?
By the way if anyone has any suggestion for my case here is Apache's error.log
[Mon Aug 08 14:31:44 2011] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Mon Aug 08 14:31:44 2011] [crit] (22)Invalid argument: unable to replace stderr with error_log
[Mon Aug 08 14:31:44 2011] [crit] (2)No such file or directory: unable to replace stderr with /dev/null
[Mon Aug 08 14:31:44 2011] [notice] Apache/2.2.3 (Win32) DAV/2 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_autoindex_color PHP/5.1.6 configured -- resuming normal operations
[Mon Aug 08 14:31:44 2011] [notice] Server built: Aug 13 2006 19:16:43
[Mon Aug 08 14:31:44 2011] [notice] Parent: Created child process 4364
[Mon Aug 08 14:31:45 2011] [notice] Child 4364: Child process is running
[Mon Aug 08 14:31:45 2011] [notice] Child 4364: Acquired the start mutex.
[Mon Aug 08 14:31:45 2011] [notice] Child 4364: Starting 250 worker threads.
[Mon Aug 08 14:31:45 2011] [notice] Child 4364: Starting thread to listen on port 8088.
[Mon Aug 08 14:31:45 2011] [notice] Child 4364: Starting thread to listen on port 8086.
I can't understand why moving dlls around the filesystem solve most problems and all the suggestions in the related questions which were about moving libraries didn't work for me.
I'm running an old XAMPP release with PHP 5.1.6 (XAMPP for Windows 1.5.4) and working with Doctrine ORM (Yes, I'm aware that Doctrine requires PHP 5.2.3+).
I've just had this same problem on a WAMP installation. I tracked it down to a bit of my own rubbish code. I had a method calling itself.
Here's an example:-
<?php
echo "Welcome to stupid class!";
class stupid_class {
public $example_data;
function stupid_function($Data) {
self::stupid_function($Data);
if($Data=="Hello") return true;
else die("Incorrect data passed through.".$Data."<br />");
}
}
$myClass = new stupid_class();
$myvalue = $myClass->stupid_function("Hello");
?>
I know this is hardly an ideal example of great code, (it was actually a typo) but I would have expected there to be some error thrown before getting a 'connection was reset' message.
So I guess an answer would be, check through all your methods to make sure that you're not calling one infinitely.
I hope this helps someone to figure out why this is happening in PHP, Apache.
Cheers
Tee
In my case it was the php extension APC (php_apc.dll, 3.1.10-5.4-vc9-x86, threadsafe), which caused the error.
I used XAMPP 1.8.2 with PHP 5.4.19 and Apache 2.4.4
Since it could be caused by another extension as well, it might be a good starting point to restore the original php.ini from the xampp distribution. If this one works well, try to change it line by line to your desired configuration (starting with the extension list).