Httpを介してプロジェクトをSubversionリポジトリにインポートしようとすると、次のエラーが発生します。
ディレクトリを作成できません '/usr/local/svn/myproj/db/transactions/0-1.txn':アクセスが拒否されました
Httpd LogLevelをデバッグするように設定し、出力の最後にこれを取得しました。
[2010年2月17日水曜日23:56:33] [エラー] [クライアント24.205.225.190]アクティビティ/ svn/myproj /!svn/act/9c0a8481-8edd-4be0-be2d-164c700616baを作成できませんでした。 [500、#0] [2010年2月17日水曜日23:56:33] [エラー] [クライアント24.205.225.190]はトランザクションを開始できませんでした[500、#13] [2月水曜日17 23:56:33 2010] [エラー] [クライアント24.205.225.190]ディレクトリを作成できません '/usr/local/svn/myproj/db/transactions/0-1.txn':アクセスが拒否されました[500、#13 ]
これが私のhttpd.confファイルの関連セクションです:
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn
AuthType Basic
AuthName "Subversion Repositories"
AuthUserFile /etc/svn-auth-conf
Require valid-user
</Location>
URL http://myhostname/svn/myproj
を使用してNetBeansからプロジェクトをインポートしようとしています。
CentOSlinuxを使用しています。
私がオンラインで見つけたこの問題の修正は、リポジトリ(およびそれを囲むフォルダー)をApacheユーザーに属するように設定し、そのアクセス許可を変更することです。私は成功せずに以下を試しました:
$ chown -R Apache.apache /usr/local/svn $ chmod -R 755 /usr/local/svn $ service httpd restart
他に何をしようかわからない。助けてください!
SELinuxがオンになっていると思います(CentOSのデフォルトインストールでは通常)。 httpdのセキュリティポリシーでは、デフォルトで/var/www
以外のファイルへのアクセスが禁止されていると思います。確かに/usr/local
へのアクセスは許可されていません。リポジトリの場所として/var/www/svn
を使用すると、SELinuxによるアクセス拒否を防ぐことができます。
SVNはSVNParentPath/usr/local/svnまたは任意のパスでセットアップできますが、何かをする必要があります。
この手順に従ってください。
run command
chcon -t httpd_sys_content_t /usr/local/svn
Ps、chconは、ファイルのラベルを変更するコマンドです。
- The httpd_sys_content_t type allows the httpd process to access that file.
既存のリポジトリディレクトリをすでに作成またはこの場所に移動しましたか?
svnadmin create /usr/local/svn/insert_your_projectname
次に、権限を更新します
chown -R httpd:httpd /usr/local/svn chmod -R 755 /usr/local/svn service httpd restart
どちらが問題だったのかはわかりませんが、次の変更で動作しました。
Svnディレクトリを/ var/wwwに移動し、httpd.confファイルに次の変更を加えました。
<場所/svn> DAVsvn SVNParentPath/var/www/svn <LimitExceptGET PROPFIND OPTIONS REPORT> AuthType Basic AuthName " Subversionリポジトリ " AuthUserFile /etc/svn-auth-conf 有効なユーザーが必要 </ LimitExcept> </ Location>