Я пытаюсь сделать капчу изображение на странице следующим образом:
<img src="part/captcha_image.php?rand=<?php echo rand(); ?>" id='captchaimg' alt="captcha image">
Изображение возвращается в captcha_image.php
с:
header('Content-Type: image/jpeg'); // defining the image type to be shown in browser widow
imagejpeg($image); //showing the image
И на Windows-машине на xampp это показывает без проблем, но на Linux с ручным установочным образом apache2 не рендерится, и в инструментах разработчика браузера я вижу следующие ошибки:
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
(Показано на Chrome и Firefox)
http://localhost/app/part/captcha_image.php?rand=1653484771 Failed to load resource: net::ERR_CACHE_MISS
(отображается только на Chrome)
Что мне не хватает?
Похоже, что этот вопрос был дан ответ в комментариях. Для такой проблемы обязательно включите подробный отчет об ошибках в конфигурации PHP и нажмите URL-адрес изображения прямо в адресной строке браузера.
Если вы делаете это, и на самом деле проблема в том, что вам нужно gd
а также gd
отсутствует, то страница об ошибке скажет вам об этом.
Как подсказал @Cheery в комментариях, мне не хватало GD модуль, который отвечает за создание и управление файлами изображений
. команда sudo apt-get install php5-gd && sudo service apache2 restart
исправил мою проблему.