SVN 및 apache2 구성 경로 오류

SVN 및 apache2 구성 경로 오류

방금 svnhttps를 통해 apache2구성했습니다 ( ). 괜찮을 수 svn checkout있는데 제출이 실패했습니다. 서버가 커밋을 수행할 저장소의 잘못된 위치를 찾고 있다는 apache2것을 로그에서 볼 수 있습니다 . svn이것은 내 apache2443.example.com.conf 파일입니다.

<IfModule mod_ssl.c>
    <virtualhost *:443>
    # requests to https://example.com land here
    ServerName example.com
    DocumentRoot /home/me/svn-repos

    # global properties for all directories in this site
    <Location />
        # do not use .htaccess files
        allowoverride none
        #DirectoryIndex index.html
        #require all granted                                                                                    

        DAV svn
        SVNParentPath /home/me/svn-repos
        AuthType Basic
        AuthName "svn repositories"
        AuthUserFile blah.passwd
        #<LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
        #</LimitExcept>
    </Location>

    SSLEngine On
    SSLCertificateFile blah
    SSLCertificateKeyFile blah

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
    </FilesMatch>

    ErrorDocument 400 /index.html
    ErrorDocument 401 /index.html
    # lots more ErrorDocument entries

    </virtualhost>
</IfModule>

내 모든 저장소는 (예: etc. ) 아래의 디렉토리에 svn있습니다./home/me/svn-repos/home/me/svn-repos/repo1/home/me/svn-repos/repo2

그래서 내 저장소 중 하나의 최신 로컬 복사본을 살펴보았습니다.

$ cd /tmp
$ svn co --username me https://example.com/repo1 repo1
Authentication realm: <https://example.com:443> svn repositories
Password for 'me': ***

A repo1/file1.txt
Checked out revision 1.

여태까지는 그런대로 잘됐다. 하지만 제출하려고 하면:

$ touch file2.txt
$ svn add file2.txt
A     file2.txt
$ svn ci file2.txt -m added
Authentication realm: <https://example.com:443> svn repositories
Password for 'me': ***

Adding         file2.txt
svn: E175009: Commit failed (details follow):
svn: E175009: The XML response contains invalid XML
svn: E130003: Malformed XML: no element found

apache2오류 로그에서 svn서버가 잘못된 위치에서 저장소를 찾고 있음 을 알 수 있습니다 .

$ sudo tail -4 /var/log/apache2/error.log
[Sat Dec 02 20:23:29.626227 2017] [:error] [pid 123] (20014)Internal error (specific information not available): [client x.x.x.x:x] Can't open file '/home/me/svn-repos/index.html/format': Not a directory
[Sat Dec 02 20:23:29.626264 2017] [dav:error] [pid 123] [client x.x.x.x:x] Could not fetch resource information.  [404, #0]
[Sat Dec 02 20:23:29.626272 2017] [dav:error] [pid 123] [client x.x.x.x:x] Could not find the requested SVN filesystem  [404, #20]
[Sat Dec 02 20:23:29.626277 2017] [dav:error] [pid 123] [client x.x.x.x:x] Could not find the requested SVN filesystem  [404, #20]

찾고 있는 파일은 이지만 /home/me/svn-repos/repo1/format파일을 찾기 위한 올바른 경로를 추가하지 않습니다. 나는 이것이 443.example.com.conf 파일에 뭔가를 추가해야 한다는 것을 의미한다고 생각 apache2하지만 무엇인지 알 수 없습니다.

고쳐 쓰다

443.example.com.conf 파일을 다음과 같이 변경했습니다.

# ErrorDocument 404 /index.html
ErrorDocument 404 /indexyz.html

이제 커밋하려고 하면 오류 메시지가 다음과 같이 변경됩니다.

[Sat Dec 02 20:39:00.153942 2017] [:error] [pid 123] (20014)Internal error (specific information not available): [client 192.168.1.177:50228] Can't open file '/home/me/svn-repos/indexyz.html/format': No such file or directory
[Sat Dec 02 20:39:00.153979 2017] [dav:error] [pid 123] [client x.x.x.x:x] Could not fetch resource information.  [404, #0]
[Sat Dec 02 20:39:00.153987 2017] [dav:error] [pid 123] [client x.x.x.x:x] Could not find the requested SVN filesystem  [404, #2]
[Sat Dec 02 20:39:00.153992 2017] [dav:error] [pid 123] [client x.x.x.x:x] Could not find the requested SVN filesystem  [404, #2]

하지만 여전히 별로 도움이 되지 않습니다.

답변1

  1. 당신은 가능한 모든 실수를 저질렀습니다(3/3)
  2. 당신은 SVN 책을 읽지 않았습니다

문제를 해결하세요:

  • 환매 계약기필코 아니다http 트리 내에 위치
  • SVN 위치기필코 아니다http-host의 루트 디렉터리에 위치
  • SVN 위치기필코 아니다http-host 내의 물리적 경로에 위치하며, 논리적 경로에만 위치

답변2

드디어 작동하게 됐어요. 결국 이는 문서 루트와는 아무 관련이 없으며 ErrorDocument 선언이었습니다. 최종 구성은 다음과 같습니다 /index.html.default

<IfModule mod_ssl.c>
    <virtualhost *:443>
        # requests to https://example.com land here
        ServerName example.com
        DocumentRoot /home/me/svn-repos

        # global properties for all directories in this site
        <Location />
            # do not use .htaccess files
            allowoverride none

            DAV svn
            SVNParentPath /home/me/svn-repos
            AuthType Basic
            AuthName "svn repositories"
            AuthUserFile blah.passwd
            Require valid-user
        </Location>

        # http://svnbook.red-bean.com/en/1.7/svn.serverconfig.httpd.html
        CustomLog ${APACHE_LOG_DIR}/svn_logfile "%t %u %{SVN-ACTION}e" env=SVN-ACTION
        ErrorLog ${APACHE_LOG_DIR}/error.log

        SSLEngine On
        SSLCertificateFile fullchain.pem
        SSLCertificateKeyFile privkey.pem

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>

        ErrorDocument 400 default
        ErrorDocument 401 default
        ErrorDocument 402 default
        ErrorDocument 403 default
        ErrorDocument 404 default
        ErrorDocument 405 default
        ErrorDocument 406 default
        ErrorDocument 407 default
        ErrorDocument 408 default
        ErrorDocument 409 default
        ErrorDocument 410 default
        ErrorDocument 411 default
        ErrorDocument 412 default
        ErrorDocument 413 default
        ErrorDocument 414 default
        ErrorDocument 415 default
        ErrorDocument 416 default
        ErrorDocument 417 default
        #ErrorDocument 418 default
        ErrorDocument 421 default
        ErrorDocument 422 default
        ErrorDocument 423 default
        ErrorDocument 424 default
        ErrorDocument 426 default
        ErrorDocument 428 default
        ErrorDocument 429 default
        ErrorDocument 431 default
        ErrorDocument 451 default
        ErrorDocument 500 default
        ErrorDocument 501 default
        ErrorDocument 502 default
        ErrorDocument 503 default
        ErrorDocument 504 default
        ErrorDocument 505 default
        ErrorDocument 506 default
        ErrorDocument 507 default
        ErrorDocument 508 default
        ErrorDocument 510 default
        ErrorDocument 511 default
    </virtualhost>
</IfModule> 

관련 정보