2008/1/31 木曜日

Hyper Estraierを入れてみる

このエントリをはてなブックマークに追加Hyper Estraierャ帥のはてなブックマーク被リンク数
Filed under: linux — akky @ 1:26:42

sambaで提供しているファイルサーバに蓄積している文書を検索するためにHyper Estraierを入れてみました。
環境はCentOS5です。
今回は、お試しとして自分のホームディレクトリへインストールしました。/home/akky/hyperestraier の配下に必要なものを収めます。
インストール手順はイントロダクションに書いてあるとおりです。前提となるライブラリ事情を下に書いておきます。

  • libiconvは入れていない。ldd `which iconv` を実行すると、libiconvを使っていないけど、iconv自体は実現されている。ぐぐってみると、libcにiconvの関数が含まれているみたいだ。結果は後のお楽しみ
  • zlibはzlib-develが入っている。
  • QDBMはこの後入れる

QDBMをインストール

 # ./configure --prefix=/home/akky/hyperestraier --enable-zlib
 # make
 # make check
 # make install

zlibを使うことで、インデックスファイルの大きさ圧縮

Hyper Estraierをインストール

 # LDFLAGS="-L/home/akky/hyperestraier/lib " ./configure --prefix=/home/akky/hyperestraier
 # make
 # make check
 # make intall

configure時にLDFLAGSを指定しているのは、QDBMを /home/akky/hyperestraier へインストールしているのだが、configureではlibqdbm が無いと言われ、configureは通ってしまうのでmakeを実行するとqdbmの関数をリンクできずに失敗した。なので、半ば無理やりの対応

2008/1/29 火曜日

LDAPに登録したユーザを管理するツール LAM

このエントリをはてなブックマークに追加LDAP脂蚊若吟膊∞若 LAMのはてなブックマーク被リンク数
Filed under: windows — akky @ 22:38:16

先日作成した、LDAPサーバに登録してあるユーザを管理する方法を考えてみる。ベーシックにldifファイルで頑張るってもの方法だけど、メンドクサイ。LDAPの中身の直接見せてくれるツールでもいいのだけど、使い勝手が悪い。で、見つけたのが、
LDAP Account Manager (LAM)

ブラウザベースだし、日本語でも表示してくれる。でも・・・
更新するとエラーになっちゃうんだよ〜。プロパティが足りていないとか言われる。

Notice: Undefined index: userPassword in /usr/local/ldap-account-manager-2.2.0/lib/modules/inetOrgPerson.inc on line 614

とか

Notice: Undefined index: delPhoto in /usr/local/ldap-account-manager-2.2.0/lib/modules/inetOrgPerson.inc on line 627

とか。LDAPに入れてある属性が足りていないのかな。でも、ここでエラーと言われるのはキツイな。

2008/1/27 日曜日

CentOS5 に sambaを使ってドメインコントローラー

このエントリをはてなブックマークに追加CentOS5  samba篏帥c<ゃ潟潟潟若爾里呂討淵屮奪マーク被リンク数
Filed under: windows, linux — akky @ 21:44:45

足掛け2週間かけて、CentOSにOpenLDAP+Smbaを使ってドメインコントローラーを構築。なかなか、ドメインコントローラーへログインできずに手間取った。終ってみると、samba.confの記述が適切ではなかったのかな・・・
今後のためにも、手順を記載しておく。

環境はこちら。

OS
CentOS5.1。カーネルのバージョンは2.6.18-53.el5
OpenLDAP
yumでインストールした2.3.27-8
Samba
yumでインストールした3.0.25b-1.el5_1.4

手順はCentOS 5 で Samba を PDC にするを参考に、実践! Samba移行術 第2回:NT4.0→ Samba3.0への移行(1)以降の連載を見ながら。

以降は手順

LDAP インストール

# yum install openldap-servers

ldapのsamba用スキーマをコピー

# cp /usr/share/doc/samba-3.0.25b/LDAP/samba.schema /etc/openldap/schema/

LDAPサーバの設定ファイル /etc/openldap/slapd.conf を編集

# vi /etc/openldap/slapd.conf

追加
 include         /etc/openldap/schema/samba.schema
変更
 suffix          "dc=my-domain,dc=com"
 rootdn          "cn=Manager,dc=my-domain,dc=com"
↓
 suffix          "dc=example,dc=co,dc=jp"
 rootdn          "cn=Manager,dc=example,dc=co,dc=jp"
追加
 rootpw          ramius
追加
 access to * by * read

 access to attrs=userPassword,sambaLMPassword,sambaNTPassword
        by self write
        by users read
        by anonymous auth

LDAPのサービス開始

 # service ldap start
 # cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
 # service ldap restart
 # chkconfig ldap on

認証の変更

# authconfig-tui

authconfig-tui - (c) 1999-2005 Red Hat, Inc.

            ┌───────┤ 認証の設定 ├───────────│
            │  ユーザー情報         認証                          │
            │  [ ] キャッシュ情報   [*] MD5 パスワードを使用      │
            │  [ ] Hesiod を使用    [*] シャドウパスワードを使用  │
            │  [*] LDAP を使用      [*] LDAP 認証を使用           │
            │  [ ] NIS を使用       [ ] Kerberos 5 を使用         │
            │  [ ] Winbind を使用   [ ] SMB 認証を使用            │
            │                       [ ] Winbind 認証を使用        │
            │                       [*] ローカル認証は十分です    │
            │                                                     │
            │         ┌─────┐                ┌──┐      │
            │         │ 取り消し │                │ 次 │      │
            │         └─────┘                └──┘      │
            │                                                     │
            └──────────────────────────┘

次の画面

authconfig-tui - (c) 1999-2005 Red Hat, Inc.

            ┌─────────┤ LDAP 設定 ├───────────│
            │           [ ] TLS を使用                            │
            │  サーバー: ldap://127.0.0.1/_______________________ │
            │ ベース DN: dc=example,dc=co,dc=jp________________ │
            │                                                     │
            │          ┌───┐                  ┌──┐       │
            │          │ 戻る │                  │ OK │       │
            │          └───┘                  └──┘       │
            │                                                     │
            └───────────────────────────┘

/etc/samba/smb.conf を編集

smbldap-xxはこの後インストールします。

[global]
        dos charset = CP932
        display charset = UTF-8
        workgroup = TECHBEAT
        passdb backend = ldapsam
        guest account = Guest
        add user script = /usr/sbin/smbldap-useradd -m '%u'
        delete user script = /usr/sbin/smbldap-userdel -r '%u'
        add group script = /usr/sbin/smbldap-groupadd -p '%g'
        delete group script = /usr/sbin/smbldap-groupdel '%g'
        add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g'
        delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g'
        set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
        add machine script = /usr/sbin/smbldap-useradd -w '%u'
        domain logons = Yes
        os level = 64
        preferred master = Yes
        domain master = Yes
        wins support = Yes
        ldap admin dn = cn=Manager,dc=my-domain,dc=com
        ldap group suffix = ou=Groups
        ldap machine suffix = ou=Computers
        ldap passwd sync = Yes
        ldap suffix = dc=techbeat,dc=co,dc=jp
        ldap user suffix = ou=Users
        add share command = /usr/lib/samba/bin/addshare
        change share command = /usr/lib/samba/bin/chgshare
        delete share command = /usr/lib/samba/bin/delshare
        admin users = Administrator
        force unknown acl user = Yes
        dos filetime resolution = Yes

        load printers = no
        disable spoolss = yes

;       logon home =
;       logon script = %u.bat
;       logon path = \%LProfiles%u
;       logon path =
        logon drive = H:s

[C$]
        path = /
        valid users = administrator
        write list = administrator

[homes]
        comment = Home Directories
        read only = No
        browseable = No

[printers]
        comment = All Printers
        path = /var/spool/samba
        printable = Yes
        browseable = No

[netlogon]
        comment = Network Logon Service
        path = /var/lib/samba/netlogon
        write list = administrator
        guest ok = Yes

[Profiles]
        path = /var/lib/samba/profiles
        create mask = 0600
        directory mask = 0700
        guest ok = Yes
        profile acls = Yes
        browseable = No

netlogonとprofilesのディレクトリ作成

 # mkdir -p /var/lib/samba
 # mkdir -p /var/lib/samba/{netlogon,profiles}
 # chown root:root -R /var/lib/samba/
 # chmod 0755 /var/lib/samba/netlogon
 # chmod 1755 /var/lib/samba/profiles

LDAPの管理者(rootdn)のパスワード登録

# smbpasswd -w パスワード

smbldap-tool を設定

 # cd /usr/share/doc/samba-3.0.25b/LDAP/smbldap-tools-0.9.2
 # vi Makefile
prefix=/usr
sbindir=$(prefix)/sbin
sysconfdir=/etc
 # make install
 # chmod 755 configure.pl
 # ./configure.pl

configure.plを使うと、対話形式で/etc/smbldap-tool のsmbldap.confとsmblda_bind.confを設定できます。
これらのファイルは/usr/sbin/smbldap-xxが参照する設定ファイルです。途中エラーもでますが、無視(^ ^;)して進めちゃいます。

LDAPサーバへの初期データ投入

 # wget http://dag.wieers.com/rpm/packages/perl-Crypt-SmbHash/perl-Crypt-SmbHash-0.12-1.2.el5.rf.noarch.rpm
 # rpm -ivh perl-Crypt-SmbHash-0.12-1.2.el5.rf.noarch.rpm
 # cpan install Unicode::MapUTF8
 # /usr/local/sbin/smbldap-populate -a Administrator -b Guest

sambaへ登録したドメイン管理者のパスワード設定

# smbldap-passwd Administrator

sambaサービスを再起動

# service smb start
/var/log/samba/smbd.log に下のエラーが手続けるのは、 ldapに管理者で接続できていない。のが原因

[2008/01/25 11:45:31, 1] lib/smbldap.c:another_ldap_try(1153)
Connection to LDAP server failed for the x try!

対応は
・「smbpasswd -w パスワード」を再実行
・/etc/samba/smb.conf の 「ldap admin dn」を確認

sambaへグループを登録

# smbldap-groupadd -a regularStaff

sambaへユーザを登録

# smbldap-useradd -a -m -P -g regularStaff ldapuser
Domain Usersにも含めたいときは -G “Domain Users”

samba(といかLDAP)に登録したユーザとシステム認証との関係を確認

authconfig-tuiとldapへの登録が行なえていると、
# getent passwd
でユーザの、
# getent group
でグループの一覧が見れます。/etc/passwd及び、/etc/groupとLDAPへ登録した内容が合わされて表示されます。LDAPに登録した分が表示されないのであれば、authconfig-tuiを見直してください。

2008/1/24 木曜日

eclipseでPHPの開発

このエントリをはてなブックマークに追加eclipsePHP困里呂討淵屮奪マーク被リンク数
Filed under: PHP — akky @ 18:22:43

PHPでの開発をすることとなり、eclipseをIDEに使うこととなった。で、これまで使っているeclipse3.2.1へインストールしようとするとPDTが依存するプラグインを見つけられずに困っている。PDT/Installを見ると、1.0以降はeclipse3.3でないと動かない。
なので、諦めて、eclipse3.3をダウンロードして、日本語化。その後にPDTをインストール。

使ってみた感想は、悪くはないけどJavaでのコーディングのし易さには負けるな。リモートデバッグもやれるけど、実行前にはサーバへソースの一式転送があり起動までにもっさり感がある。Webサーバをローカルに持ち実行前に転送する必要がなければ改善されるのかな。

これまでは、エディタとftpでやって来て、これを覆す程の便利さは感じられなかった。嬉しさをあえて言えば、文法チェックが随時行われているということ。

2008/1/13 日曜日

org.eclipse.core.runtime.CoreException: XML 文書を構文解析できません

このエントリをはてなブックマークに追加org.eclipse.core.runtime.CoreException: XML 吾罕茹fс障のはてなブックマーク被リンク数
Filed under: java — akky @ 12:00:56

タイトルの通りです。Tomcatのプロジェクト名(ディレクトリ名に?)漢字が含まれていると,eclipseプラグインからTomcatを起動できませんでした。エラーのスタックトレースはこちら↓。

eclipse.buildId=M20060629-1905
java.version=1.5.0_09
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=ja_JP
Command-line arguments:  -os win32 -ws win32 -arch x86

エラー
Sun Jan 13 00:31:35 JST 2008
org.eclipse.core.runtime.CoreException: XML 文書を構文解析できません。at org.eclipse.debug.core.DebugPlugin.abort(DebugPlugin.java:1202)
at org.eclipse.debug.core.DebugPlugin.parseDocument(DebugPlugin.java:1178)
at org.eclipse.debug.core.sourcelookup.AbstractSourceLookupDirector.doInitializeFromMemento(AbstractSourceLookupDirector.java:410)
at org.eclipse.debug.core.sourcelookup.AbstractSourceLookupDirector.initializeFromMemento(AbstractSourceLookupDirector.java:546)
at org.eclipse.debug.internal.core.LaunchConfiguration.initializeSourceLocator(LaunchConfiguration.java:523)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:638)
at com.sysdeo.eclipse.tomcat.VMLauncherUtility.runVM(VMLauncherUtility.java:95)
at com.sysdeo.eclipse.tomcat.TomcatBootstrap.runTomcatBootsrap(TomcatBootstrap.java:202)
at com.sysdeo.eclipse.tomcat.TomcatBootstrap.start(TomcatBootstrap.java:95)
at com.sysdeo.eclipse.tomcat.actions.StartActionDelegate.run(StartActionDelegate.java:38)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:254)
at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:539)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:441)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
org.eclipse.core.runtime.CoreException[120]: org.xml.sax.SAXParseException: Invalid byte 1 of 1-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:215)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:386)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1810)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:98)
at org.eclipse.debug.core.DebugPlugin.parseDocument(DebugPlugin.java:1172)
at org.eclipse.debug.core.sourcelookup.AbstractSourceLookupDirector.doInitializeFromMemento(AbstractSourceLookupDirector.java:410)
at org.eclipse.debug.core.sourcelookup.AbstractSourceLookupDirector.initializeFromMemento(AbstractSourceLookupDirector.java:546)
at org.eclipse.debug.internal.core.LaunchConfiguration.initializeSourceLocator(LaunchConfiguration.java:523)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:638)
at com.sysdeo.eclipse.tomcat.VMLauncherUtility.runVM(VMLauncherUtility.java:95)
at com.sysdeo.eclipse.tomcat.TomcatBootstrap.runTomcatBootsrap(TomcatBootstrap.java:202)
at com.sysdeo.eclipse.tomcat.TomcatBootstrap.start(TomcatBootstrap.java:95)
at com.sysdeo.eclipse.tomcat.actions.StartActionDelegate.run(StartActionDelegate.java:38)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:254)
at org.eclipse.ui.internal.WWinPluginAction.runWithEvent(WWinPluginAction.java:229)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:539)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:488)
at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:441)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1914)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1878)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:419)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)

このログ、ワークスペースの下にある.metadata/.log を見ると漢字が文字化けしています。「ウィンドウ」→「ビュー」→「エラー・ログ」から見ると文字化けしてないです。

いきなり、eclipseプラグインからTomcatが立ち上がらなくなったと感じてしまったが、プロジェクト名に漢字を含むものを作り、Tomcatのコンテキストに追加したのが原因でした。

次のページ »