如何强制PHP读取SERVER_PORT为80,当Apache侦听8080和清漆听80?
如果我的apache虚拟主机设置为8080,SERVER_PORT将始终为8080,这让我感到困扰,因为在应用程序的许多部分,有些链接是通过SERVER_NAME和SERVER_PORT一起计算的,所以我需要的是“相信” SERVER_PORT是80,所以所有的链接都会通过清漆
像这样改变你的设置:
这样,两个守护进程都在端口80上运行。只有当你从不需要从本地机器外部到达Apache时,这种方式才有效。
我不认为有任何干净的方法来做到这一点。 是否有一些文件,包括每个PHP脚本需要这样设置? 如果是这样,你可以做这样的事情:
$_SERVER['SERVER_PORT'] = 80;
那么它不干净…但在一个巨大的代码库,你可能会考虑使用“auto_prepend_file”通过php.ini或.htaccess中,您可以重置$ _SERVERvariables。 (见: http : //php.net/manual/en/ini.core.php )
但是,这不是一个干净的解决scheme;-)
我在更新的mod_rpaf @ https://github.com/gnif/mod_rpaf中添加了对此的支持。