не может открыть репо по ископаемым через Интернет

Пару дней борюсь с этой проблемой, но вроде не могу исправить, думаю я почти готов .... но ... не совсем :(

Вот где я нахожусь.

Я нахожусь на безголовом сервере debian, запускаю virtualmin / webmin для создания моих доменов / пользователей и т. Д. Я не знаю, испортит ли это что-то, но я рад изменить файлы конфигурации вручную (через webmin или через ssh / vim).

Я пытаюсь запустить fossil как службу cgi через apache.

это внутренний сайт с именем homeserver.net. Я могу легко добраться до страниц по умолчанию, а также добавлять и создавать ссылки и т. д., как я хочу.

Обратите внимание, что решение моей проблемы находится в конце вопроса.

поэтому файлы находятся на диске по адресу, что совпадает с моим корнем документа apache

/home/homeserver/www

Я хотел бы запустить fossil, чтобы иметь как внутренний сайт, так и позже, и работу разработчиков, над которой я практикуюсь, в отдельных файлах. Итак, я создал новый каталог для этих репозиториев.

/home/homeserver/repos/web/site.fossil
/home/homeserver/repos/dev/ [no repository yet!]

прочитав инструкции на странице ископаемых, я вставил короткий файл cgi с именем 'fos_repo.cgi', который читается как.

#!/usr/bin/fossil
directory: /home/homeserver/repos
notfound: http://www.homeserver.net/site404.htm

когда я открываю ссылку на

www.homeserver.net/cgi-bin/fos_repo.cgi 

Меня перенаправляют на страницу 404, которую я написал. Так что сценарий явно читается и работает.

Прочитав страницы с ископаемыми, я понял, что смогу использовать следующую ссылку, чтобы открыть / получить доступ к репо.

www.homeserver.net/cgi-bin/repos/web/site

Я не уверен, почему это не работает ...

пока что пробовал следующее.

Я открыл репозиторий из cli, и сервер работал в фоновом режиме

ископаемый сервер site.fossil &

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

/home/homeserver/repos/site.fossil

Я попытался создать псевдоним для файла в apache

Alias /home/homeserver/repos/web/site.fossil /home/homeserver/www/repos

Когда я просматриваю

 www.homeserver.net/repos/site

Я ничего не получаю, но собираюсь

www.homeserver.net/repos/site.fossil

попытается загрузить файл (который является двоичным)

так что я думаю, что кое-что получаю, но я не уверен, что мне не хватает.

Раньше я использовал fossil, но я запускал его как локальный сервер и запускал по мере необходимости. Я запускаю его так, чтобы в конечном итоге перенести сайт на действующий VPS (возможно, даже закончить размещение ископаемого сайта на VPS).

ps Мне очень понравился fossil, когда я использовал его раньше, и мне понравилась вся интегрированная вики и система отслеживания ошибок, а также тот факт, что я мог просто скопировать файл на свой внешний диск, чтобы сделать резервную копию. Лично я не очень хочу переходить на что-то другое, но если придется ....

заранее спасибо.

Дэйвид

Изменить: пробовать другие варианты.

Поэтому я решил попробовать метод единого репозитория, показанный на странице ископаемых, поэтому соответствующим образом скорректировал свой cgi-скрипт.

Теперь, когда я перехожу на: www.homeserver.net/cgi-bin/fos_repo.cgi, я получаю следующее сообщение:

SQLITE_CANTOPEN: cannot open file at line 30276 of [f5b5a13f73]
SQLITE_CANTOPEN: os_unix.c:30276: (21) open(/home/homeserver/repos)

однако, если я подключу ssh к серверу, запустите его вручную с помощью

fossil server site.fossil

Я могу попасть на сервер с www.homeserver.net:8081

Итак, у меня либо проблема с использованием SQLite в apache, либо что-то еще не так. Пожалуйста, помогите

Решение

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

Моя первоначальная структура каталогов была следующей:

/home/homeserver/www
/home/homeserver/www/repos
/home/homeserver/www/repos/web # for web site development
/home/homeserver/www/repos/dev # for other development

Я думаю, что часть моей проблемы заключалась в том, что я надеялся, что наличие directory: pont в моих репозиториях / location окаменелости найдет site.fossil файл (находится в repos / web) и файл dev.fossil (находится в repos / deb).

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

По какой-то причине я решил, что указание fossil как repos / даст мне красивую первую страницу в стиле fossil и автоматические ссылки на мои репозитории. Однако после использования версии directory: и получения следующего сообщения об ошибке

Unable to find or open the project repository

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

Поэтому я решил работать с одним файлом cgi, указывающим на каждое репо, которое мне нужно создать.


person DaveM    schedule 06.03.2015    source источник


Ответы (1)


Вместо

www.homeserver.net/cgi-bin/repos/web/site

пытаться

www.homeserver.net/cgi-bin/repos.cgi/index

Прочитав ваш (очень длинный) вопрос еще раз, предлагаю попробовать

www.homeserver.net/cgi-bin/fos_repos.cgi/index
person ravenspoint    schedule 06.03.2015
comment
Это казалось действительно логически хорошей идеей ... но не сработало. Я тоже перепробовал все возможные комбинации. Добавлено в примечание к оригиналу, чтобы упомянуть, что я запускаю сервер с Virtualmin / Webmin, если это где-то напортачило? Дэйвид - person DaveM; 06.03.2015
comment
Единственное, что может привести к тому, что Virtualmin будет действовать иначе, это то, что он по умолчанию запускает все веб-приложения как владелец домена с помощью suexec. Таким образом, права доступа к файлам должны быть правильными в системе Virtualmin (наиболее распространенная ошибка, которую делают люди, - это установить их на 777; suexec не будет выполняться, если приложение доступно для записи в мире или группе). Итак, убедитесь, что ваше приложение имеет владельца / группу, установленную на домашний сервер, и что приложение не доступно для записи в мире / группе. - person swelljoe; 10.03.2015
comment
@swelljoe Я могу подтвердить, что пользователь и группа для каталога - это 'homeserver', а разрешения для всех папок / файлов - 755. хотя я столкнулся с этой проблемой и в конце концов обнаружил, что это проблема при поиске через ошибку apache лог для сервера. ravenspoint Я попробовал ваш / index и получил то же сообщение об ошибке sqlite. - person DaveM; 10.03.2015
comment
Я кое-что получаю. Я только что попробовал еще раз, используя chuser homeserver: homeserver -R-v, а затем изменил все файлы, и теперь я могу заставить репозиторий работать как «автономный» репозиторий. Теперь остается только заставить его работать как «каталог». - person DaveM; 10.03.2015
comment
@ravenspoint Я отредактировал ваш комментарий, чтобы изложить свое решение, хотя оно не совсем такое, как я хотел. - person DaveM; 10.03.2015
comment
@ravenspoint Хорошо, я передумал. это было очень долгое редактирование. Мое решение - использовать отдельный файл cgi для каждого репозитория, который я хочу создать. По какой-то причине я подумал, что форма каталога позволила бы мне иметь «ископаемую» страницу, которая связана со всеми найденными репозиториями, и иметь возможность создавать новые и т. Д. И т. Д. Тема маркировки решена. - person DaveM; 10.03.2015