我需要从数据库加载多个文件,我使用php来完成它。
我使用Windows 7 64位和xampp和uniserver作为服务器(xampp 1.8.3-4 VC11和uniserver XI 11.3.1)。当我在两个php文件的同时加载时它们都崩溃了(它们可以是具有不同get变量或不同文件的相同文件)。我尝试使用较旧版本的xampp但遇到同样的问题。
编辑:我注意到它只发生在使用浏览器palemoon(我使用的是版本24.7.1 x64)。 Chrome,Opera和Firefox效果很好。我不明白为什么。
要重现它,我只需要使用以下内容创建一个html文件index.html:
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="a.php"/>
<link rel="stylesheet" href="b.php"/>
</head>
</html>
现在,创建两个空白文件,一个名为a.php,另一个名为b.php(它们写在什么内容并不重要)
最后在浏览器上打开html并执行ctrl-f5直到apache崩溃。
apache唯一记录的是
[Tue Aug 12 04:38:14.576000 2014] [mpm_winnt:notice] [pid 3880:tid 148] AH00428: Parent: child process 3368 exited with status 3221225477 -- Restarting.
[Tue Aug 12 04:38:14.686000 2014] [mpm_winnt:notice] [pid 3880:tid 148] AH00455: Apache/2.4.10 (Win32) PHP/5.4.31 configured -- resuming normal operations
[Tue Aug 12 04:38:14.686000 2014] [mpm_winnt:notice] [pid 3880:tid 148] AH00456: Apache Lounge VC10 Server built: Jul 19 2014 11:02:31
[Tue Aug 12 04:38:14.686000 2014] [core:notice] [pid 3880:tid 148] AH00094: Command line: 'C:\\UniServerZ\\core\\apache2\\bin\\httpd_z.exe -d C:/UniServerZ/core/apache2 -f C:\\UniServerZ\\core\\apache2\\conf\\httpd.conf -d C:\\UniServerZ\\core\\apache2'
[Tue Aug 12 04:38:14.688000 2014] [mpm_winnt:notice] [pid 3880:tid 148] AH00418: Parent: Created child process 5040
[Tue Aug 12 04:38:15.267000 2014] [mpm_winnt:notice] [pid 5040:tid 568] AH00354: Child: Starting 150 worker threads.
我发现了这个错误报告,但是最后一个条目来自2004年,所以我想知道这个问题是否是一个错误,如果是,则是同一个错误:https://bugs.php.net/bug.php?id=25570
编辑:使用此C#有时会导致服务器崩溃
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class MainClass
{
public static void Main (string[] args)
{
IPAddress ipAddress = Array.FindAll(
Dns.GetHostEntry("127.0.0.1").AddressList,
a => a.AddressFamily == AddressFamily.InterNetwork)[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress,80);
Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );
string request = "GET /a.php HTTP/1.1\r\n" +
"Host: 127.0.0.1\r\n" +
"\r\n";
sender.Connect(remoteEP);
sender.Send (Encoding.UTF8.GetBytes (request));
sender.Send (Encoding.UTF8.GetBytes (request));
byte[] buffer = new byte[4096];
int nBytes = 0;
try {
while ((nBytes = sender.Receive(buffer,4096, SocketFlags.None)) > 0)
{
// From byte array to string
string s = Encoding.UTF8.GetString(buffer, 0, nBytes);
Console.WriteLine(s);
}
} catch (SocketException e) {
Console.WriteLine("error {0}", e.ErrorCode);
}
Console.WriteLine("\nPress a key...");
Console.ReadKey();
}
}
编辑:我在Windows xampp服务器上使用Connection: Close
来避免问题。我的linux vps工作得很好,它只发生在Windows服务器上。
答案 0 :(得分:0)
我不完全理解你的问题,但我认为这就是你的意思。
您不能使用<link rel="stylesheet" />
来包含php文件。
为了包含php代码,您必须执行以下操作:
<!doctype html>
<html>
<head>
<!-- <link rel="stylesheet" href="a.php"/>
<link rel="stylesheet" href="b.php"/> -->
</head>
<?php
require "a.php";
require "b.php";
?>
</html>