2013-06-16 4 views
1

Я недавно боролся с настройкой своего веб-хостинга, который будет использоваться для меркуриальных репозиториев, а также для hgweb. Я использую nearlyfreespeech.net (NFSN) для хостинга.Настройка меркуриального веб-интерфейса на почти freespeech

По умолчанию NFSN имеет область CGI freebsd72 и ограничивает вас только CGI, ни WGSI, ни подобных. Первоначально NFSN установил Mercurial 1.6, но, следуя инструкциям these, я смог получить установку Mercurial 2.6. Python 2.6.6 также установлен по умолчанию на хосте, и я оставил это как есть.

Моя проблема теперь в том, что я не могу загрузить файл hgweb.cgi в своем браузере. Когда я запускаю его через SSH на моем хосте, он работает нормально и выводит HTML, но в моем браузере я получаю 500 внутренних ошибок сервера. Файл является исполняемым, а CGI включен. Я не уверен, что еще нужно проверить ... Есть ли у кого-нибудь совет или опыт использования hg и hgweb в NFSN?

Как было предложено в комментариях, я проверил журналы ошибок созданы и обнаружил, что, когда я захожу на сайт, я получаю ...

[Sun Jun 16 08:22:31 2013] [error] [client 172.17.0.141] CGI ERROR: A system problem prevented your request from being completed. 
[Sun Jun 16 08:22:31 2013] [error] [client 172.17.0.141] Premature end of script headers: hgweb.cgi 

Немного поиска на этой ошибке появляется, что это означает, сценарий не может генерировать правильные заголовки при запуске. Если я сохраняю вывод скрипта в файл я получаю следующее ...

Status: 200 Script output follows 
Content-Type: text/html; charset=US-ASCII 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> 
<head> 
<link rel="icon" href="/static/hgicon.png" type="image/png" /> 
<meta name="robots" content="index, nofollow" /> 
<link rel="stylesheet" href="/static/style-paper.css" type="text/css" /> 

<title>Mercurial repositories index</title> 
</head> 
<body> 

<div class="container"> 
<div class="menu"> 
<a href="http://mercurial.selenic.com/"> 
<img src="/static/hglogo.png" width=75 height=90 border=0 alt="mercurial" /></a> 
</div> 
<div class="main"> 
<h2>Mercurial Repositories</h2> 

<table class="bigtable"> 
    <tr> 
     <th><a href="?sort=name">Name</a></th> 
     <th><a href="?sort=description">Description</a></th> 
     <th><a href="?sort=contact">Contact</a></th> 
     <th><a href="?sort=lastchange">Last modified</a></th> 
     <th>&nbsp;</th> 
    </tr> 

</table> 
</div> 
</div> 

</body> 
</html> 
+0

В журнале веб-сервера должна быть ошибка. Вы используете свой CGI через Apache? Попробуйте просмотреть журналы ошибок для этого. – djc

+0

@djc Я обновил сообщение, чтобы включить вывод журнала. Я не изменил никаких сценариев по умолчанию, кроме изменения пути конфигурации, чтобы быть локальным каталогом моего сайта –

ответ

1

Я был в состоянии найти, что сценарий hgweb.cgi на самом деле требуется, чтобы быть установлен на 755 разрешений, установив его исполняемым было недостаточно.