あまり最近の記事がなくて導入時に詰まってしまったとこがあったので自分用メモ
環境情報
・svnmanager1.10
・Apache/2.4.6
・PHP 5.4.16
・svn バージョン 1.7.14 (r1542130)
基本はここを参照
詰まったとこ1
権限設定画面にてPATHごとに設定できるはずが、「/」しか表示されない。
上記リンクの手順にある
pear install VersionControl_SVN-0.4.0
を
pear install VersionControl_SVN-0.5.2
に変更する。
詰まったとこ2
詰まったとこ1の対応をすると、そもそも画面遷移時にエラーが発生するように。。。
エラー内容
InternalError
VersionControl_SVN_Exception: "svn_path" is not a valid option
#0 /usr/share/pear/VersionControl/SVN.php(267): VersionControl_SVN_Command->setOptions(Array)
#1 /usr/share/pear/VersionControl/SVN.php(226): VersionControl_SVN::init('list', Array)
#2 /usr/local/svnmanager-1.10/svnmanager/RepositoryModule/GroupPrivilegesEditPage.php(214): VersionControl_SVN::factory(Array, Array)
#3 /usr/local/svnmanager-1.10/prado-2.0.3/framework/Web/UI/TControl.php(419): GroupPrivilegesEditPage->onLoad(Object(TEventParameter))
#4 /usr/local/svnmanager-1.10/prado-2.0.3/framework/Web/UI/TPage.php(1079): TControl->onLoadRecursive(Object(TEventParameter))
#5 /usr/local/svnmanager-1.10/prado-2.0.3/framework/Web/UI/TPage.php(947): TPage->onLoadRecursive(Object(TEventParameter))
#6 /usr/local/svnmanager-1.10/prado-2.0.3/framework/TApplication.php(483): TPage->execute()
#7 /usr/local/svnmanager-1.10/index.php(5): TApplication->run()
#8 {main}
ソースをいじって対応。
対象file
- /usr/local/svnmanager/svnmanager/RepositoryModule/UserPrivilegesEditPage.php
- /usr/local/svnmanager/svnmanager/RepositoryModule/GroupPrivilegesEditPage.php
$options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY, 'svn_path' => $svn_cmd);
上記の行を以下のように修正
$options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY);
エラーが解消されPATHごとの権限設定が可能に。
詰まったとこ3
inviteメールが送れない問題が発生。
メールログ
/var/log/maillog
postfix/smtpd[1753]: connect from localhost[127.0.0.1]
postfix/smtpd[1753]: warning: Illegal address syntax from localhost[127.0.0.1] in MAIL command: <svnmanager@172.0.0.1>
postfix/smtpd[1753]: lost connection after RSET from localhost[127.0.0.1]
postfix/smtpd[1753]: disconnect from localhost[127.0.0.1]
UserModule/InviteManagePage.php
UserModule/InvitePage.php
ここら辺でsmtpの設定をlocalhostで決め打ちするとメールは送られた。
ただ、根本解決ではないので他の方法を探すことに。
調べると、原因はapacheのservernameをIPで指定したことにあるみたい。
servernameを実際に使うドメインに変更して、再度挑戦するも同じエラーが。。。
DNSの設定前だったので検証はサーバのip指定でsvnmanagerを利用していたのが原因だった。
-> UseCanonicalName On
これをapacheにて設定していないとclientが指定したホスト名がphp内のservernameに渡される。
設定することでip指定でsvnmanagerの画面にアクセスしても無事メールが送られるようになった。