OS X Apache *.php 在域为 localhost 时执行,但在其他情况下下载文件。
设置:
在 Mac OS X 10.5.8 上,使用原始的 Apache 2.2,唯一的更改是取消
LoadModule php5_module
_DocumentRoot_
目录中的 注释,/Library/Webserver/Documents/
,在名为info.php
的文件中,写入:
<? php phpinfo(); ?>
问题:
请求http://localhost/info.php< /code> 响应是函数的输出(即 PHP 执行了文件)。
但是,来自域 127.0.0.1
或 192.168.1.x
的请求,响应是文件的内容,带有 Content-Type application 的标头/x-httpd-php
。
该文件总是通过请求找到的,因此这不是主机映射问题。但是,仅当请求针对域 localhost 时,它才被视为可执行文件。 apacheconf 中没有设置虚拟主机,因此我认为无论域如何,行为都应该相同。
知道如何解决这个问题,以便我可以在 LAN 上使用该服务器吗?
谢谢。
The setup:
On a Mac OS X 10.5.8, with the original Apache 2.2, where the only change is to uncomment
LoadModule php5_module
In the _DocumentRoot_
dir, /Library/Webserver/Documents/
, in a file named info.php
, write:
<? php phpinfo(); ?>
The problem:
Request http://localhost/info.php
and the response is the output from the function (i.e. PHP executed the file).
However, request from domain 127.0.0.1
or 192.168.1.x
and the response is the content of the file, w/ a header of Content-Type application/x-httpd-php
.
The file is always found via the request, so it's not a hosts mapping problem. However, it's treated as an executable only when the request is for domain localhost. There are no virtual hosts set up in the apache conf, so I figure the behaviour should be the same regardless of the domain.
Any idea how to remedy this so that I could use this server on my LAN?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不确定这是否是问题所在,但是您的 mod_php 模块配置上的所有设置是否有允许/拒绝?我不确定它是否允许这样做。
我问这个问题的原因是因为今天我最终发现了一个预配置的 Apache 实例的问题,其中 mod_proxy 设置为仅允许来自本地主机的请求。将其切换为允许来自 10.* 的请求修复了网络上另一台计算机正确代理的问题。
Not sure if this is the problem, but do you have any allow/deny from all settings on your mod_php module's configuration? I'm not sure if it allows that or not.
The reason I ask is because today I wound up tracking down an issue with a preconfigured Apache instance where mod_proxy was set to only allow on requests from localhost. Switching it to allow requests from 10.* fixed the problem of another machine on the network correctly proxying.
看看httpd.confg 的虚拟主机部分?有没有什么可以设置 PHP 文件类型的?无论哪种情况,
AddHandler php5-script php
都应该位于 .conf 中的某个位置。Look at the virtual hosts section of the httpd.confg? Is there anything there that sets the PHP filetype? In either case
AddHandler php5-script php
should be somewhere in the .conf.