![在 Ubuntu 服务器上全新安装 Apache/PHP 时 PHP 未显示错误](https://linux22.com/image/546889/%E5%9C%A8%20Ubuntu%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E5%85%A8%E6%96%B0%E5%AE%89%E8%A3%85%20Apache%2FPHP%20%E6%97%B6%20PHP%20%E6%9C%AA%E6%98%BE%E7%A4%BA%E9%94%99%E8%AF%AF.png)
我刚刚尝试了一个简单的 hello world,其中缺少一个分号,但得到的是空白页。
知道为什么 PHP 拒绝显示错误吗?
没有错误的脚本可以完美运行。
另外,我记得在某处读到过,Apache 或 PHP 附带一个示例配置文件,需要将其重命名以删除 .sample 或类似的内容。
由于我不太擅长服务器管理,我更愿意使用 Apache/PHP 提供的任何示例。我在哪里可以找到此示例配置?也许它可以解决这个问题(以及尚未出现的其他问题)。
我正在测试的 PHP 脚本(缺少分号)
<?php
echo "Hello"
echo "sup";
?>
答案1
display_errors = On
在 /etc/php5/apache2/php.ini 中设置。
答案2
在 /etc/php5/apache2/php.ini 中,你需要
display_errors = On
error_reporting = E_ALL | E_STRICT
甚至
display_startup_errors = On
E_STRICT 不是严格必要的,但我认为报告这些也是最佳做法。
然而,你应该仅在开发服务器上执行此操作。显示错误可能会导致密码泄露等安全问题。您可能希望在 Web 应用的配置部分中设置这些值 - 根据 Web 服务器是开发服务器还是生产服务器。
if ($_SERVER['SERVER_NAME'] == 'my.production.url') {
ini_set('display_errors', false);
}
else {
ini_set('display_errors', true);
}
请注意,如果虚拟主机配置为您也可以通过 IP 地址加载网站,则 $_SERVER['SERVER_NAME'] 可能不可靠。在这种情况下,请替换适合您环境的替代测试(例如获取服务器的主机名,或测试 REMOTE_ADDR 是否为 localhost)。