TCPDF 服务器 500 错误 - 需要 PHP 中的详细错误

TCPDF server 500 error - want a detailed error in PHP

我一直在尝试设置此 php pdf 脚本。我从网站上下载了代码,并按原样从此页面上传了 [https://sourceforge.net/projects/tcpdf/files/][1]

它一直工作到 $pdf 开头的行 - 我添加了 echo $filename 行以查看我是否可以看到错误(在这个网站上找到的一个想法 - 页面显示 1hello - 我认为这可能意味着 require_once 工作正常。

    <?
// Include the main TCPDF library (search for installation path).
$filename = require_once('../tcpdf/examples/tcpdf_include.php');

echo $filename.'hello';
exit;
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false, true);

等等等

如果我删除 $filename = 和 echo / exit 行(如下),我会收到一个通用服务器 500 错误 - 关于如何获取我可以实际使用的详细错误的任何想法?我可以在其他页面上看到详细的错误。

    <?
// Include the main TCPDF library (search for installation path).
require_once('../tcpdf/examples/tcpdf_include.php');

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false, true);

等等等

编辑:通过添加 ini_set('display_errors', 1) 发现错误;到页面 - 错误是 致命错误:Class 'TCPDF' 未找到...在第 31 行

第31行指的是:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

如果我查看 tcpdf_include.php 包含文件,它说一些代码引用了一些我认为我的服务器没有的文件:

$tcpdf_include_dirs = array(
realpath('../tcpdf.php'),
'/usr/share/php/tcpdf/tcpdf.php',
'/usr/share/tcpdf/tcpdf.php',
'/usr/share/php-tcpdf/tcpdf.php',
'/var/www/tcpdf/tcpdf.php',
'/var/www/html/tcpdf/tcpdf.php',
'/usr/local/apache2/htdocs/tcpdf/tcpdf.php' );

/usr/share/php/ 为空。我猜我应该将 tcpdf.php 文件放在所有这些位置,或者这无关紧要 & 我错过了重点?

这些TCPDF构造函数不存在。你在末尾添加了一个布尔变量,这是不允许的,哈哈。

以下更好:

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

您可以在您的网络服务器 (Apache?) 日志中找到详细的 500 服务器错误。日志的位置取决于您的 OS/installation.

您收集得很好:1hello 意味着正确加载了所需的文件。你不需要检查它,因为如果 require/require_once 失败,你会得到一个致命错误,然后脚本就死掉了。

如果您可以追踪服务器错误日志,您可能会看到如下内容:

Fatal error: Class 'TCPDF' not found

因为 tcpdf/examples/tcpdf_include.php 旨在与提供的示例一起使用,并且仅当主要 URL (或当前目录,如果您通过命令行执行脚本)在同一目录中。

要加载 TCPDF class,您必须

require_once( '../tcpdf/tcpdf.php' );

但我建议你指明绝对路径。