Генерация страниц Perl html
столкнулся с проблемой что perl не генерирует html страницу, mysql(mariadb) правильно настроен все права есть (Linux) он перенаправляет на html и получается так что 404 ведь сам файл не создаётся использую Apache, думаю дело в конфиге который генерирует этот html
нашы пыздры - ты задал первый и единственный вопрос в этой категории за все 25 лет сущ-я сайта!
Перл не должен "создавать" HTML-файл на диске для отображения в браузере.
Он должен генерировать HTML в ответе (через stdout) на лету, а Apache этот вывод отправляет пользователю.
А у тебя судя по описанию:
Скрипт почему-то не отдаёт HTML-код, а происходит попытка редиректа на файл.
И, естественно, файл не существует → 404 ошибка.
Скорее всего, у тебя одна из типичных проблем:
Перл-скрипт не выводит правильный заголовок:
Должно быть что-то вроде:
print "Content-type: text/html\n\n";
print "<html><body>Hello, World!</body></html>";
Без этого заголовка Apache не поймёт, что скрипт хочет отдать страницу, и тупо завалит 404 или ошибку 500.
Неверная настройка Apache для CGI:
Apache должен уметь запускать Perl-скрипты.
В конфиге должно быть что-то вроде:
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI
AddHandler cgi-script .cgi .pl
Require all granted
</Directory>
И скрипт должен лежать в папке типа /var/www/cgi-bin/, иметь права на исполнение (chmod +x твойскрипт.pl).
Скрипт просто не запускается, а Apache перенаправляет на мертвую страницу:
Логично, если:
Ошибка в самом скрипте
Путь неправильный
Нету прав на выполнение
CGI-модуль не активирован в Apache (a2enmod cgi на Debian/Ubuntu)
Итого что проверить по шагам:
✅ Скрипт начинается с правильного шебанга, типа:
#!/usr/bin/perl
✅ Скрипт даёт Content-Type:
print "Content-type: text/html\n\n";
✅ Скрипт имеет права на выполнение:
chmod +x твойскрипт.pl
✅ Apache знает, что это CGI:
Проверь наличие модуля mod_cgi (или mod_cgid)
Проверь ScriptAlias и AddHandler в конфиге
✅ Скрипт реально запускается руками:
./твойскрипт.pl
(Он должен вывести HTML в терминал.)
✅ Смотри логи Apache:
tail -f /var/log/apache2/error.log
(Там будет видно, что он орёт.)
шта?
у тебя вероятно index не настроен.