সাবভারশন "এসভিএনপ্যারেন্টপ্যাথ" এবং প্রতি-সংগ্রহস্থল কনফিগারেশনের মিশ্রণ?


9

এসভিএনপ্যারেন্টপ্যাথ ব্যবহার করে একটি সাধারণ সাবভার্সন / অ্যাপাচি কনফিগারেশন দেওয়া হয়েছে, এর /svn/মধ্যে আয়োজিত সংগ্রহস্থলগুলি সহ :

<Location /svn>
    DAV svn

    SVNParentPath /srv/source/svn/repos
    SVNReposName "Subversion Repository"

    AuthzSVNAccessFile /srv/source/svn/authz
    Satisfy Any

    AuthType                Basic
    AuthBasicProvider       file
    AuthName "Subversion Repository"
    AuthUserFile /srv/source/svn/htpasswd

    Require valid-user
</Location>

সেখানে নির্দিষ্ট ভান্ডার জন্য এই কনফিগারেশন ওভাররাইড করতে একটি উপায় আছে কি ছাড়া একটি ভিন্ন পথ তাদের হোস্টে হচ্ছে? এটি হ'ল কোনও উপায় কি আমি Locationএই জাতীয় ব্লক যুক্ত করতে পারি ...

<Location /svn/my_special_repo>
    SVNPath /srv/source/svn/repos/my_special_repo
    AuthzSVNAccessFile /srv/source/svn/repos/my_special_repo/conf/authz
</Location>

... এবং এটির জন্য ব্লকটিতে প্রদত্ত কনফিগারেশনটি ওভাররাইড করা আছে ? উপরের কনফিগারেশনটি সহ এটি করার আমার প্রচেষ্টাগুলি অ্যাপাচি ত্রুটি লগতে অদ্ভুত এবং অস্বাস্থ্যকর ত্রুটির সাথে পূরণ হয়েছে, যেমন:Location/svn

[Wed Feb 02 11:28:35 2011] [error] [client 10.10.209.120]
(20014)Internal error: Can't open file '/srv/source/svn/repos/svn/format':
No such file or directory

এগুলি আমার কাছে মোড_ড্যাভ_এসভিএন-এর উপায় বলে মনে হচ্ছে যে আমি যা করতে চাইছি তা আমি করতে পারি না। আমি সমাধান বা বিকল্প উন্মুক্ত!

সম্পাদনা : আচ্ছা, আমি দেখতে পাচ্ছি যে এই প্রশ্নটি পাঠকদের মাঝে প্রচুর উত্তেজনা তৈরি করেছে। রেকর্ডের জন্য, আমি যা করতে পারি তা হ'ল আমাদের বিদ্যমান সমস্ত সংগ্রহস্থলের জন্য প্রতি-সংগ্রহের কনফিগারেশন SVNParentPathতৈরি করা এবং তারপরে ভিত্তিক কনফিগারেশনটি ত্যাগ করা। প্রতি-রেপো অ্যাপাচি কনফিগারেশনটি সর্বনিম্ন, বিশেষত মোড_ম্যাক্রোর মতো কিছু ব্যবহার করে ; শক্ত অংশটি বিশ্বব্যাপী লেখক ফাইলটিকে পৃথক করে দিবে। আপনি যদি এটি আগে করেন তবে টিপসগুলি প্রশংসা করা হয়।


আমি একই সমস্যা পেয়েছি এবং Mod_macro ব্যবহার করে এটি সমাধান করেছি। ধন্যবাদ !!! (এটি অ্যাপাচি বা সাবভার্সন উভয় ক্ষেত্রেই পুরানো বাগ বলে মনে হচ্ছে))
আচিমনল

উত্তর:


4

আমার নিজের প্রশ্নটি উত্তরহীন প্রশ্নের তালিকায় সেখানে নিমগ্ন দেখতে আমি ঘৃণা করি, তাই আমরা যা করেছি তা এখানে দেখুন:

  • আমাদের প্রধান সার্ভার কনফিগারেশনে, আমাদের রয়েছে:

      <Location /svn/>
            SVNParentPath /srv/source/svn/repos
      </Location>
    
  • আমরা mod_macroনতুন সংগ্রহস্থলের জন্য এই আচরণটির প্রতিরূপ তৈরি করতে নিম্নলিখিতটি গ্রহণ করেছি :

    <Macro LegacySubversionRepo $name>
        # Override SVNParentPath block in main vhost config.
        RewriteRule ^/svn/$name /repo/$name [PT]
    
        <Location /repo/$name>
                Order                   deny,allow
                Allow                   from all
    
                Use LdapAuth \
                        "$name svn repository" \
                        /srv/source/svn/htpasswd
    
                DAV svn
                SVNPath /srv/source/svn/repos/$name
                AuthzSVNAccessFile /srv/source/svn/authz
                SVNAutoversioning On
                Satisfy Any
        </Location>
    </Macro>
    

    RewriteRuleসংগ্রহস্থল কনফিগারেশনের ওভাররাইড করার অনুমতি দেয় <Location /svn/>প্রধান কনফিগ অন্যথায় অনুরোধ মেলে করবে।

এটি যথাযথভাবে প্রতি-সংগ্রহস্থল প্রমাণীকরণ এবং অনুমোদন কনফিগারেশন ( htpasswdএখানে ব্যবহৃত বিশ্বব্যাপী ফাইলের পরিবর্তে ) গ্রহণ করা তুলনামূলকভাবে সহজ হয়ে যায় ।


মোড_ম্যাক্রো শিলা
ভিনিজেমস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.