Apache SVNの設定で変数を利用したい

このQ&Aのポイント
  • Apache SVNの設定で変数を利用する方法について教えてください
  • Apache SVNの設定でユーザー名を動的に設定する方法を教えてください
  • http://www.example.comの下に動的なURLを作成するためのApache SVNの設定方法を教えてください
回答を見る
  • ベストアンサー

apache svnの設定で変数を利用したい

$USER_NAMEをユーザー名として、 以下のような設定をするのはどうすればいいですか? <Location $USER_NAME> DAV svn SVN ParentPath /home/$USER_NAME/svn AuthType Basic AuthName "Subversion repository" AuthUserFile /home/$USER_NAME/.htpasswd Require valid-user </Location> (もちろんこれでは動きません) つまり http://www.example.com/user1/repo1 http://www.example.com/user1/repo2 http://www.example.com/user2/repos21 http://www.example.com/user2/repos22 のように動的に設定したいのですが、可能でしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

http://okwave.jp/qa/q6506470.html で試したときには、無理っぽかったですね……。 他に設定方法がある…のかも知れませんが。 # SetEnvIf使っていけますかねぇ… svnプロトコルを使った方が柔軟…かも知れません。 ただし、URLはフルパスで指定することになりますが… svnserveの-rオプションで/homeを指定すれば svn://www.example.com/user1/repo1 とかも可能でしょう。(まぁ、この場合各ユーザーのホームディレクトリ直下にリポジトリ作る必要がありますが)

sendmailmagic
質問者

お礼

ありがとうございます。やっぱり無理のようですね。。

その他の回答 (1)

回答No.1

実際これで動くか試したわけではないけど http://www.example.com/~user1/repo1 のURIになるけど UserDir /home/*/svn <Directory /home/*/svn> ・ ・ ・ </Directory> の部分で設定するのは駄目なのか?

関連するQ&A

  • httpd.confでのsvn設定でAuthzSVNAccessFileが指定できない

    こんにちは。ただいまWindowsXPでsvn(Subversion)サーバの設定を行っている者です。apacheのhttpd.confファイルにsvnの設定として以下のように設定しています。 <Location /svn> DAV svn SVNParentPath "C:\svn_repos" SVNListParentPath on AuthType Digest   AuthDigestProvider file AuthName "SVN Repositry" AuthUserFile "C:\Program Files\Apache Software Foundation\Apache2.2\svn_digest\.htpass_dig" Require valid-user AuthzSVNAccessFile "C:\svn_repos\repos\conf\authz" </Location> この状態でhttp://localhost/svn/とウェブアクセスすると、必ずapacheに問題が発生してアクセスできなくなります。 エラーの内容は以下の通り szAppName : httpd.exe szAppVer : 2.2.11.0 szModName : mod_dav_svn.so szModVer : 1.6.1.37116 offset : 00005e53 ちなみにAuthzSVNAccessFile "C:\svn_repos\repos\conf\authz"の1行を削除すればサーバが落ちることはなくなります。authzファイルの中身は以下の通り [groups] group1 = name1,name2 [/] @group1 = rw [repos:/] @group1 = rw いろんなサイトを検索しても全くこの症状で同様の悩みを訴えている人がいなかったので、わらにもすがる思いでここに質問しました・・・。どなたか、原因と対策を教えていただけないでしょうか。お願いします。 apacheのバージョン2.2.11 svnのバージョン1.6.1 です。

  • SVNコミットエラー

    linux(Ubuntu)でSubVersionサーバを構築したのですが、 初回コミットをしたところエラーが出てしまいました。 エラー-------- svn import /home/svn/snavi/ http://localhost:80/repos/snavi -m "test commit" svn: PROPFIND リクエスト (相手: '/repos/snavi') が失敗しました svn: PROPFIND (URL: '/repos/snavi'): 301 Moved Permanently (http://localhost) -------------- この辺の記事(http://a98.jugem.jp/?eid=222)を参考に 色々試してみたのですが、解決できません。 apacheは起動しており、FireFoxからはテスト用HTML http://localhost/repos/snavi/test.html は参照出来ていますが、 http://localhost/repos/snavi/ へのチェックインが出来ないのです。 SVNのルート設定は以下で、 [svn設定]--- (/etc/apache2/mods-enabled/dav_svn.conf) <Location /svn> DAV svn SVNParentPath /home/svn/ </Location> ------------------------------------------- http://localhost:80/repos はSVNルートへのシンボリックリンクです。 [web(apache)設定]---------------- (ドキュメントルート) http://localhost → /opt/lampp/htdocs (シンボリックリンク) $ls -la /opt/lampp/htdocs lrwxrwxrwx 1 www-data www-data 9 2012-10-04 22:28 repos -> /home/svn ------------------------------------------- SVNルート以下には ------------------------------------------ cd /home/svn/ svnadmin create snavi ------------------------------------------ のようにsnaviブランチを作成したのですが、 やはりhttp://localhost/repos/snavi/ へのチェックインが出来ません。 有識者の方、いらっしゃいましたらどうか ご教授のほど宜しくお願い致します。

  • XAMPP:SVNでロックできない

    SVNサーバ(Apache経由)を従来Linuxで立ててましたが、Windows側に引っ越す事になりました。 OS:WinXP XAMPP1.7.7 を導入し、SVN1.7.2を導入しました。 普通にHTTP越しにSVNを利用する事は可能になったのですが、ロック機能が使えません。 エラー: Lock request failed: 400 Bad Request (http://url) が表示されます。 サーバのWindows上で、リポジトリダイレクトアクセス(file://)ではロックできました。 Apacheのエラーログに [Tue Feb 14 12:16:46 2012] [error] [client IP-addr] Tried to attach multiple locks to a resource. [400, #405] というログが出てました。 ぐぐると、英文文献が出てくるのですが、いまひとつ理解できませんでした。 Apacheのアクセスログを見ると IP-addr - - [14/Feb/2012:12:16:46 +0900] "LOCK /svn/filename HTTP/1.1" 400 1085 "-" "SVN/1.4.5 (r25188) neon/0.26.3" となっていました。 Linuxのアクセスログを見ると、LOCKリクエストの時でも IP-addr - username [17/Aug/2011:20:07:10 +0900] "LOCK 以降省略 みたいに、アカウント情報がのってました。 これが原因かな?と思ったのですが、どうやってユーザ情報をのせればいいのかわからないです。 HTTP.CONF のSVNの設定は、以下のような設定です。 何か忘れ物をしているのかどうか、よくわからないのですが、 ロックができずに困っている文献が少なく?困りました。 とっかかりでもなんでもいいので、ヒントがありましたらよろしくお願いします。 <Location /svn> DAV svn SVNParentPath "D:/home/svn/" AuthType Basic AuthName "Subversion Repository" AuthUserFile "D:/home/svn/dav_svn.passwd" Require valid-user <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>

  • WebDAVの設定について

    お世話になっております。 Windows7+Apache2.2で、 PC内に、dav.example.comというサイトを立ち上げて、 WebDAVの設定を勉強中です。 同じPCのWindowsエクスプローラのネットワーク接続で、 http://dav.example.com/dav だと接続できるのですが、 https://dav.example.com/dav だと接続できません。 Apacheのログからは、以下のとおり401ではじかれています。 192.168.95.131 - - [12/May/2017:21:28:20 +0900] "OPTIONS / HTTP/1.1" 200 - 192.168.95.131 - - [12/May/2017:21:28:20 +0900] "PROPFIND /dav HTTP/1.1" 401 401 以下、httpd.confのVertualHostの部分です。 80のWebDAV設定をそのまま443にコピーしているのですが、うまくいきません。 WebDAVに詳しい方、解決のヒントでもいただければ助かります。 Listen 80 NameVirtualHost *:80 <VirtualHost *:80> ServerName dav.example.com:80 DocumentRoot "C:/Apache2.2/htdocs_example" ErrorLog "C:\Apache2.2\logs\example\error.log" TransferLog "C:\Apache2.2\logs\example\access.log" <IfModule mod_dav_fs.c> DavLockDB logs/DavLock </IfModule> Alias /dav "C:\Apache2.2\htdocs_example\webDAV" <IfModule mod_dav.c> DAVMinTimeout 600 <Location /dav> DAV On AuthType Digest AuthName "DAV" AuthUserFile "C:\Apache2.2\conf\.htdigest" Require valid-user Order deny,allow Allow from all </Location> </IfModule> </VirtualHost> AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl SSLPassPhraseDialog exec:C:\Apache2.2\conf\extra\ssl_pass.bat SSLSessionCache "shmcb:C:/Apache2.2/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 SSLMutex default Listen 443 NameVirtualHost *:443 <VirtualHost *:443> ServerName dav.example.com:80 DocumentRoot "C:/Apache2.2/htdocs_example" ErrorLog "C:\Apache2.2\logs\example\error.log" TransferLog "C:\Apache2.2\logs\example\access.log" <IfModule mod_dav_fs.c> DavLockDB logs/DavLock </IfModule> Alias /dav "C:\Apache2.2\htdocs_example\webDAV" <IfModule mod_dav.c> DAVMinTimeout 600 <Location /dav> DAV On AuthType Digest AuthName "DAV" AuthUserFile "C:\Apache2.2\conf\.htdigest" Require valid-user Order deny,allow Allow from all </Location> </IfModule> Include conf/extra/ssl/ssl-dav.example.conf </VirtualHost> 以上です。 よろしくお願いします。

  • Apache Virtual Hostでの認証

    Apache の Virtual Host で認証をかけることはできますか? 以下のように設定したのですが、Apache起動時に Syntax error on line 1066 of /usr/local/apache2/conf/httpd.conf: AuthType not allowed here といわれます。 .htacessを使えば実現できるようですが、VirtualHostディレクティブ内で設定する方法はないでしょうか? <VirtualHost *:80> ServerAdmin test@example.com DocumentRoot /home/test ServerName test.example.com ErrorLog logs/test-error_log CustomLog logs/test-access_log common AuthType Basic AuthName "Restricted Files" AuthUserFile /home/test/.htpasswd Require user test </VirtualHost> よろしくお願いします。

  • Apache2.2.9でのBasic認証について

    当方Apache2.2.9にてWebサーバーを構築しております。 実験にてBasic認証を試してみたいのですが、どうしても うまくいきません。 /home/server/.htpasswdを作って /var/www/html/に.htaccessを設置しております。 .htaccessの内容は以下の通りです。 AuthType Basic AuthName "AUTHORIZED AREA" AuthUserFile /home/server/.htpasswd Require valid-user /var/www/html/以下のHTMLにブラウザからアクセスすると 認証プロンプトは表示されるのですが、認証されません。 USERとPASSは絶対に間違っておりません。 エラーログを見てみたところ下記のログがありました。 (13)Permission denied: Could not open password しかし、/home/server/.htpasswdのパーミッションは604に 設定してあります。 何かおかしい点はございますでしょうか? どうか教えてください。

  • Apache2.2.6にてBasic認証の設定

    .htaccessファイルに /home/hoge/public_html/admin/.htaccessを作成して AuthType Basic AuthUserFile /home/hoge/public_html/admin/.htpasswd AuthGroupFile /dev/null AuthName "test" <Limit GET POST> require valid-user </Limit> <Files .htaccess> Order deny,allow Deny from all </Files> とするとエラーで動きません。 <Files...をコメントアウトすれば動くようになったのですが、 ファイルのアクセス制限をかけるにはどうしたらいいのでしょうか? httpd -M で確認しても authz_host_module (static) となっていて必要なモジュールは認識してるようですし、 2.2になってだいぶ変更があったみたいで、色々調べて試してみたのですができなくて困っています。 よろしくお願いします。

  • Basic 認証ができない

    Basic認証を行いたいのですが、「ユーザー」と「パスワード」を入れても認証を通過できません。 [.htaccess]ファイルには下記のように記述しました。 AuthUserFile /home/test/.htpasswd AuthGroupFile /dev/null AuthName "Secret Area" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> [.htpasswd]ファイルには下記のように記述しました。 test:KNBKgzgRhzAOk パスワードは下記URLで作成しました。 http://www.futomi.com/lecture/htaccess/htpasswd.html なにが問題なのでしょうか?

  • Apache 認証について

    標記に関し、過去のログなどを参考にしながらトライしていますが、上手く行きません。参考にしたのは http://oshiete1.goo.ne.jp/qa2524824.html http://www.shtml.jp/htaccess/basic.html などです。 仮に下記のURLに認証を求めるのに http://homepage3.nifty.com/xxxyyy/ 「.htaccess」ファイルは下記のようでよいのでしょうか AuthUserFile /homepage3.nifty.com/xxxyyy/.htpasswd AuthGroupFile /dev/null AuthName "test" AuthType Basic require valid-use また「.htpasswd」ふぁいるは「/homepage3.nifty.com/xxxyyy/」に置き、 http://www.shtml.jp/htaccess/make_htpasswd.html を利用して作成した abcd:ab3oahn3wfnh6 を一行だけ貼り付けています。何が間違っているのでしょうか?よろしくお願いします。

  • Subvirsion サーバに接続できません。

    お世話になります。 Subvirsionサーバ(1.7.5)を構築中です。 クライアントとしてTortoiseSVN(1.7)を使っております。 リポジトリブラウザからURLに、 「http://myhost/svn/test/」 を指定し認証ログインを行った後、 「Ridicect cycle detected for URL 'http://myhost/svn/test' 」 というメッセージが出て、リポジトリを表示できません。 リダイレクトが循環している、というような意味のメッセージだと思うのですが、 以下【httpd.cnfの内容】を見ても、 循環が発生しているように見えず、お手上げです。 ブラウザ(IE)から同じURLでアクセスすると、 設定どおりにリダイレクトされ、リポジトリが表示されます。 【httpd.cnfの内容】 Alias /svn "C:\Apache2.2.22/htdocs/Repositories" <Location /svn/> DAV svn SVNListParentPath on SVNPathAuthz off SVNParentPath "C:/Apache2.2.22/htdocs/Repositories/" SVNPathAuthz short_circuit SVNCacheTextDeltas off SVNCacheFullTexts off AuthzSVNAccessFile "C:/Apache2.2.22/htdocs/Repositories/authz" AuthName "Subversion Server " AuthType Basic AuthBasicProvider file AuthUserFile "C:/Apache2.2.22/conf/.htpasswd" Require valid-user ExpiresActive on ExpiresDefault access </Location> Apacheのログには、以下の4つが出ていました。 "OPTIONS / HTTP/1.1" 200 - "OPTIONS /svn HTTP/1.1" 301 233 "PROPFIND /svn HTTP/1.1" 301 233 "OPTIONS /svn HTTP/1.1" 301 233 "PROPFIND /svn HTTP/1.1" 301 233 以上、よろしくお願いします。