按照this helpful guide中的說明,我一直試圖在我的站點上設置Subversion,而不是使用Apache而不是svnserve。一旦設置完成,我將有一個存儲庫,位於/srv/svn/myrepository,可從code.mydomain.com訪問。獲取Subversion + Apache的問題
然而,在上述所有鏈接的指南中的說明,參觀code.mydomain.com顯示默認的Apache網站的內容後,在/ var/WWW(即,「它的工作原理!」) 。這也產生了以下錯誤在我的Apache日誌:
[Sat Nov 06 10:11:33 2010] [notice] caught SIGTERM, shutting down
[Sat Nov 06 10:11:34 2010] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.
[Sat Nov 06 10:11:34 2010] [notice] mod_python: using mutex_directory /tmp
[Sat Nov 06 10:11:34 2010] [notice] Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 mod_jk/1.2.26 PHP/5.2.6-1+lenny9 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 configured -- resuming normal operations
這裏是我的站點配置的編輯版本:
<VirtualHost my.server.ip:80>
ServerAdmin [email protected]
ServerName code.mydomain.com
ErrorLog /srv/www/code.mydomain.com/logs/error.log
CustomLog /srv/www/code.mydomain.com/logs/access.log combined
<Location />
DAV svn
SVNPath /srv/svn/myrepository
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /srv/auth/svn/myrepository.htpasswd
Require valid-user
</Location>
</VirtualHost>
預先感謝您能夠提供的任何援助!
以下是我根據其他用戶的建議完成的某些故障排除的結果(非常感謝)。在每種情況下,我在重新啓動Apache後進行更改,然後檢查該站點以驗證結果:
0)我沒有通過SSL連接。
1)SVNParentPath只有當多個存儲庫正在使用時才需要 - 在這裏,我只使用一個。不過,我使用SVNParentPath作爲測試重新進行了配置,並得到了相同的結果。
2)我試圖把Auth選項放在Limit節中,並得到了相同的結果。然後我刪除了所有的Auth選項,但得到了相同的結果。
3)從配置文件中刪除了所有的Auth選項並收到相同的結果,我不認爲這與授權模塊有關;不過,我可以確認,儘管我已經加載了dav_svn模塊,但我沒有加載authz_svn模塊。
4)我已經在位置/srv/svn/myrepository中創建了存儲庫。我在該位置運行svnadmin驗證,並且該工具報告一切正常。 5)我在Debian 5上,其中Apache運行的是www-data;在此之前,我給了www-data:www-data所有權的/srv/svn以及/srv/svn/myrepository。我在這些目錄上運行stat來驗證這一點。
6)執行ping code.mydomain.com表明,它確實是解決正確的IP
7)我跑a2ensite code.mydomain.com,這顯然沒有這樣做(糟糕) ,並重新啓動Apache。文件夾/srv/www/code.mydomain.com/logs現在包含access.log和error.log,但兩個文件都保持爲空。同時,試圖訪問code.mydomain.com產生與以前相同的結果,並且默認的Apache error.log包含與以前相同的錯誤消息。
8)沒有一個Apache配置文件包含NameVirtualHost *:80行。
你可以發佈默認的apache日誌的內容?你可以讓我們知道,當你訪問「code.mydomain.com」時它會被更新嗎?你也可以告訴我們,如果你有其他虛擬主機在同一個配置?我瘋狂的猜測是你從瀏覽器發出的請求是由默認的domiain或其他虛擬主機回答的(檢查是否爲真) – 2010-11-07 10:11:48
噢,它肯定會被默認的虛擬主機回答 - 我通過禁用來確認這一點「默認」,這導致** code.mydomain.com **顯示一個完全不同的網站,我託管在服務器上的其他地方。重新啓用「默認」會帶回「It works!」。頁。我只是不知道爲什麼它現在被默認回答...... – Michael 2010-11-07 13:14:17
你應該有一行NameVirtualHost *:80在某處,最好在apache.conf/httpd.conf中。做到這一點,並重新啓動Apache。 – 2010-11-07 13:49:55