我刚刚在我的网络服务器上重新安装了最新的稳定 PyroCMS 版本。由于与会话数据有关的 PHP 错误,我现在几乎无法使用该站点。“无法修改标题数据。”
为什么 CMS 会在 MAMP 上运行而没有错误,但在实时服务器上却不行?
我有同样的问题。看起来 PyroCMS 在使用 php 5.4 时遇到了问题,这是 MAMP 默认使用的。尝试将您的 php 版本切换到 5.3。
两个服务器在显示错误方面必须具有不同的配置。
要么放在error_report('E_ALL');
初始页面(很可能index.php
),要么找出如何在 CMS 中禁用显示错误(必须有一些配置)。
或尝试将off
指令display_errors
放入您的php.ini
文件中。
您应该设置 PHP,以便您在本地机器上发现错误,然后再将其投入生产。看来您目前的做法是错误的!
要修复它,您的 MAMP 开发安装应该在 php.ini 中将 error_reporting 设置为 E_ALL,并将 display_errors 设置为“on”。您的生产网络服务器至少应将 display_errors 设置为“关闭”(检查它们是否已发送到日志文件 - 您不想丢失它们),并且您可能还希望将 error_reporting 减少为 E_ERROR。
将其设置为 E_ERROR 将保持生产服务器上的日志干净,以便您可以在发生大问题时发现它们。如果您使用的库或 CMS 会生成 PHP 通知或警告,而您对此无能为力,则您可能特别希望这样做。或者,您可能希望使用 E_ALL 将所有内容保存到日志中,并系统地整理所有显示的内容,但是,您需要使用可以修改的代码,而不会使升级变得尴尬。这可能非常有用,因为有时生产服务器上的环境与您的本地环境不同,并且由于您未预料到的原因,事情可能会真正中断。
顺便说一句,“无法修改标头数据”错误表明这不是 PyroCMS 的稳定版本,不管它在锡上说什么!
谢谢你们的帮助。我最终发现了与会话有关的问题。我session.autostart=on
在直播服务器上。关闭此功能可解决问题。