Пару дней борюсь с этой проблемой, но вроде не могу исправить, думаю я почти готов .... но ... не совсем :(
Вот где я нахожусь.
Я нахожусь на безголовом сервере 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, указывающим на каждое репо, которое мне нужно создать.