“如何制作香肠”游览apache / php / mysql互动

时间:2009-06-09 16:55:52

标签: php mysql apache

我无法理解apache / php / mysql堆栈在低级别上的工作原理(包括与浏览器的交互)。是否有一个很好的描述(一本书,一个网站等)将引导我完成整个路径并解释如何从浏览器开始请求URL,http请求被发送,apache如何与php交谈,php如何与mysql(持久和非持久连接)等等。我想了解等待这个链中的什么,处理超时的时间,打开和关闭套接字的时间。一本书,一篇文章可能吗?每个组件都有很多文档,但我找不到“演练”。

到目前为止我的解释是非常高级的:看,这是一头快乐的牛,它去了牛大学,看起来 - 这一切都收缩在超市货架上。我需要的是香肠农场/屠宰场/卡车/工厂之旅,从奶牛不育开始:)

[更新]直到今天,除了阅读消息来源之外,我还没有找到更好的方法来了解这些事情。

5 个答案:

答案 0 :(得分:6)

PHP and MySQL by example有一个非常基本的过程图片,我想你可能已经理解了。

比这张图片更深入,但这是一个相当长的讨论。具有讽刺意味的是,您可以阅读我刚刚链接的书,以获得非常好的描述。如果您有更具体的问题,我建议为他们提出新的问题。享受!

答案 1 :(得分:3)

我找到了一个网站,其中至少部分内容来自George Schlossnagle的 Advanced PHP Programming 一书。

该网站位于:http://php.find-info.ru/php/016/toc.html。具体来说,The PHP Request Life Cycle部分包含了许多细节,包括一些源代码和图表。

免责声明: IANAL,但考虑到该图书仍然是listed on Amazon,上面链接的内容可能会破坏各种代码,规则和/或法律。我不打算扩散或纵容非法或盗版材料,所以如果是这样,请删除所说的链接。

答案 2 :(得分:1)

你是正确的,因为有关于这一切如何适合这里的整本书是一个链接到它接触主要部分的“演练”。

http://computer.howstuffworks.com/web-server.htm

希望有所帮助

答案 3 :(得分:1)

最好的做法是获得一本关于LAMP堆栈的好书。

快速回复(如果您觉得需要,请询问更多) 浏览器通过HTTP协议联系Web服务器 服务器生成(让我们暂时离开)html结果并将其发回。 每个浏览器只能理解http协议(为了这个分析)。

现在只需从apache服务器读取图标,图像,javascript等项目并“复制”到浏览器。在普通的html文件中也是如此。 区别在于php文件(我在这里过于简化)。这些传递给php模块,响应(模块)将被发送回浏览器。

php模块是理解php的东西。 我们在一起吗?如果是的话: PHP脚本可能(或可能不)需要来自MySQL服务器的数据,它必须连接它们或操纵它们等。

总结:这些操作中的每一个都是在不同的流程级别中单独完成的。这就是它“简单”的原因。 如果您想要更具体的内容,请询问更多信息。

答案 4 :(得分:0)

据我所知,apache会收到请求,并根据你的.htaccess或配置选项找出解决方法。然后,如果需要,它会将此请求传递给PHP进行解析。 PHP对代码进行了两次扫描,第一次是预解析,在解析页面之前,它会在顶级(在if语句,循环,包含,evals或基于lamda的函数中忽略任何内容)中捕获明显的缺陷并运行函数真的。我相信,使用echo完成的任何操作都将作为标准输出流返回,并返回到apache。如果apache超过页面,它会将kill信号发送给PHP,它关闭对象,在退出之前打印错误消息(如果需要)。一旦页面退出apache趋向于标题并返回页面。

我希望更多地了解这一点,所以如果有人能够更好地解释它或对我的答案进行纠正/扩展,我很乐意听到。