Попытка записать pdf в каталог файлов: внутренняя ошибка сервера 500

Я пишу программу, которая заполняет шаблон PDF (используя fpdf), а затем делает снимок экрана для предварительного просмотра пользователю.

Imagemagick, похоже, нуждается в существующем файле в файловой системе для захвата изображения предварительного просмотра, что означает, что мне нужно сохранить pdf в каталоге.

Я следовал инструкциям (здесь: Не удается сохранить файл в каталог с помощью FPDF), чтобы изменить разрешение на папку, чтобы я мог писать в каталог, но всякий раз, когда я запускаю свою php-страницу, теперь я получаю:

У меня есть 755 в качестве разрешения по умолчанию, и, поскольку я просто тестирую, и эта папка не особенно критична, я попытался изменить ее на 777.

500 Server Error
A misconfiguration on the server caused a hiccup. Check the server logs, fix the problem, then try again. 

URL: *Full URL*
Dangerously writable: [*File path on server*]
FIXED

Я проверил папку после этой ошибки, и разрешение возвращается к 755, и нет текстового файла error_log, поэтому я не уверен, как это отладить, поскольку Google показывает, что ошибка сервера 500 является общей.

Услуга хостинга - bluehost.com.

Вот код:

<?php
// Library imports
require_once(dirname(__FILE__)."/lib/fpdf/fpdf.php");
require_once(dirname(__FILE__)."/lib/fpdi/fpdi.php");
// End of imports


//OpenCnxn
mysql_connect(*the approrpiate stuff*) or die(mysql_error());
mysql_select_db(*the appropriate stuff*) or die(mysql_error());

//Query DB and calculate number of rows
$query = "Select ProfilePicture from Users where UserID = 1"; 
$result = mysql_query($query);
$num_results = mysql_num_rows($result);

$filename = "template.pdf";

$pdf = new FPDI();
$pdf->AddPage();

// import the template PFD
$pdf->setSourceFile($filename);

// select the first page
$tplIdx = $pdf->importPage(1);

// use the page we imported
$pdf->useTemplate($tplIdx);

//Image insertion
for($i=0;$i<$num_results;$i++){
   $row = mysql_fetch_array($result);
   $pdf->Image(htmlspecialchars(stripslashes($row['ProfilePicture'])), 13, 13, 35, 25);
}

$pdf->Output('testdocument.pdf', 'F');

Приведенный выше код работает, как и ожидалось, когда разрешение установлено на 755 и когда последняя строка изменена на загрузку вместо сохранения файла, т.е.:

$pdf->Output(); //OR
$pdf->Output('testdocument.pdf', 'D');

person Zigu    schedule 26.07.2011    source источник


Ответы (1)


Дважды проверено с помощью Hosting IT.

Такое сообщение возникает из-за того, что переход на любой уровень разрешений выше 755 был отключен на корневом уровне.

Спасибо за терпеливость.

person Zigu    schedule 30.07.2011