home photolog(photonic sentence) tips&diary about contact
Photonic Sentence
[ Weblog/Blog ]

Categories
Archives

Recent Entry
03/22
EOS Kiss Digital N


02/22
玄箱(KURO-BOX)で遊ぼう!


01/17
マンデークッキング: カツ丼


11/01
マンデークッキング: ひじきの煮物



Recent Comments
Please comment freely
in English or Japanese.
<<Prev | Main | Next »

玄箱(KURO-BOX)で遊ぼう!

kuro-box.jpg

玄箱をゲットしました。
発売されてからかなり経っており、流行にのってないけど、以前からLinuxの勉強もしたかったこともあり、買ってしまったよん〜。
以下、他サイトと重複するものばかりですが、自分の覚書用にまとめておきます。
(このページは、今後も覚え書き用に追記・編集していきます。)
書き始め:2005/2/7


【玄箱とは?】
他サイトで説明されているので簡単に。
玄人志向で発売されているネットワークドライブ(NAS)です。→製品情報
これの特徴は、BuffaloのHD-LANシリーズと同等の機能が、ハードディスクなしの状態で購入できるため、余っているハードディスクを再利用したNASをつくれることです。
また、人気の秘密は、Linuxが搭載されていてカスタマイズの余地が残されていること。ちょっといじくれば、通常のパソコンと同等のLinux端末として利用できます。

【価格調査】
近所の店エ○○ンでは15400円。
先日の東京で買おうと思って行ったお店は14800円。。。。
結局買わずに帰り、送料無料のPC-SCCESSにて12590円で購入しました。
HG版は19800〜18000円程度で推移しているようです。なかなか値が下がらない。。。

【さっそくカスタマイズ】
通常利用はNASとして利用します。
LAN接続して、WIndows98以降のパソコンから、CDでインストールすれば、利用できます。ブラウザで192.168.11.150にアクセスし、設定可能。
しかし、それではつまらないので早速、Linux(Debian)端末に改造してみます。

手順は以下のサイトを参照してください。
  ・玄人志向の製品情報
  ・BuffaloのHD-LANシリーズ
  ・玄箱うぉううぉう♪  (ファイル入手)
  ・【玄箱】簡単 Debian Box 化の技 (ファイル入手)
  ・玄箱 Debianサーバ構築メモ(手順入手)
  ・【40000ヒット企画】玄箱をいじってみる

なんちゅう手抜きだ(汗。 m(_ _)m
えっと、上記サイトでは入手しづらく、自分が行き詰った箇所を以下にメモ書きしておきます。

 ・ハードディスクのディップスイッチは、マスターに設定しておくこと。
  (さもないと、電源いれてから数秒で切れてしまいます)
 ・dselectの操作は、むやみにキーをたたかない(動きが遅い)。
 ・dselectで必要なファイルを検索したいときは、「 / (検索語句) 」で可能。
 ・dselectは以前選択したファイルも導入候補として残っているので注意。
 ・gccをインストールするときは、apt-get install gccでは関連ファイルが足らないのでdselectでインストールすること。
 ・kurosetup.exeでインストールしない方がよい。kuroupdate.exeでやる。
  (どちらもファームウェアをインストール作業があるみたい。新しい方がよい)
 ・コマンドプロンプトは、画面表示が乱れることがある。Teratermがよい。
 ・消費電力は最大25W (取説にあったけど、買う前にWeb調べても不明だった)
 ・apache2は、現時点でDebian(安定版)パッケージに含まれていなかったので、
  apt-getではインストールできなかったのでソースからコンパイルした。

【遊んでみた】
とりあえずインストールしたソフトを以下。
・apache2
  apache2のWebDAV+SSL通信化にする。
  makeする前の設定は以下のようにした。
  「 ./configure --enable-shared --enable-dav --enable-ssl
   --enable-headers --enable-so --with-mysql
   --enable-mbstring --enable-mbregex 」
  ※「 --enable_modules=all 」は使えないっぽい。
  WinでDAVするためにmod_davとmod_headersを明示指定する必要がある。
  ※ただしなぜかコンパイル後に「mod_headers.soがない」エラーが出て×。
   そのため、わざわざコンパイル(たぶんmake)して、
   「.libs」の中にできた「mod_headers.so」を/modulesに入れたら起動した。
  ※何回もコンパイルしなおすなら、apache2を停止してからmake installする。

  単純に起動・終了は
  /usr/local/apache2/bin/apachectl start で起動。
  /usr/local/apache2/bin/apachectl stop  で停止。
  /usr/local/apache2/bin/apachectl restart で再起動。

  自動起動できるようにするには
   # ln -s /usr/local/apache/bin/apachectl /etc/init.d/apache2
   # update-rc.d apache2 defaults
      Adding system startup for /etc/init.d/apache2 ...
      /etc/rc0.d/K20apache2 -> ../init.d/apache2
      /etc/rc1.d/K20apache2 -> ../init.d/apache2
      /etc/rc6.d/K20apache2 -> ../init.d/apache2
      /etc/rc2.d/S20apache2 -> ../init.d/apache2
      /etc/rc3.d/S20apache2 -> ../init.d/apache2
      /etc/rc4.d/S20apache2 -> ../init.d/apache2
      /etc/rc5.d/S20apache2 -> ../init.d/apache2

  設定について(httpd.confなど)
   ・AddDefaultCharset ISO-8859-1 をコメントアウト?
     探してもhttpd.confの中になかった(2.0.53)
     文字化け対策でよくコメントアウトするのだけど。。。

   ・AddHandler cgi-script .cgiのコメントアウトをはずす
     (CGIがどこででも使えるように)

   ・WebDAV用に以下の設定をする
     一時フォルダとファイルをつくり、apacheが稼動するユーザーに追加
     mkdir /var/httpd
     touch /var/httpd/dav.lock
     chown nobody.nogroup /var/httpd/
     chown nobody.nogroup /var/httpd/dav.lock
     ※各々をchmod 766にした(不要だと思うけど)

    日本語対応フォルダにする
      未定。mod_encoding実装が必要。
      とりあえずなしで設置してみた。
      (UTF-8を使用しmod_encodingとliconv_hookはナシ)
      Apache2のmod_davはコンパイル時に入れている。
      Apache2のWebDAVの場合、文字コードはUTF8となる。
        →参考:玄箱を使い倒す
      Macで使用することもないので、UTF-8で運用することにした。
      UTF-8なら、mod_encodingなしでも問題なく動いているようだ。
      ただし、日本語は文字化けするので、いづれ実装しよう。
      ちなみに、玄箱にデフォルトではliconvは入っていない。

     httpd.conf内のWebDAV設定例
        DavLockDB /var/httpd/dav.lock
        < Directory "/var/www/dav">
         SSLRequireSSL  ←このディレクトリSSL必須とする
         DAV On
         Header add MS-Author-Via "DAV"
        < /Directory>
        ※Directoryで設定すること。その下のディレクトリも有効に。

      WindowsXPでローカルLAN内でWebフォルダを作るとき:
      もしログイン画面がでて拒否られてしまう場合は、
      http://192.168.X.XXX:80/WebDAV_Folder/
      として、ポート指定まですると設定可。
      あるいは未確認だけどWebフォルダを作るときだけ、
      「WebClient」サービスを停止させれば作れるらしい。参考
      追記: WindowsXP SP2対応について
       Webフォルダはダイジェスト認証か、SSLが必須となったもよう。
       困ったことに、ネットワークプレース追加時に、
       対応していないURL(httpsでないURLやベーシック認証の接続先)を
       指定しても、追加できてしまうが、接続できないとのこと。

   ・SSL対応にする
     インストール
       apt-get install openssl
       apt-get install libssl-dev
       apt-get install libmm-*    libmm11-dev が入った。
       ※ここらへんのlib系がいるのか不明。
     サーバ証明書(crtやkey)を発行
       opensslコマンドで作成するが、ここでは割愛。
     ssl.confの設定例 ( /usr/local/apache2/conf/ssl.conf )
       DocumentRoot "/usr/local/apache2/htdocs"
       ServerName shigeyoshi.jp:443
       ServerAdmin ****@shigeyoshi.jp
       SSLCertificateFile /usr/local/apache2/ssl/server.crt
       SSLCertificateKeyFile /usr/local/apache2/ssl/server.pem
     ld.so.confの設定( # vi /etc/ld.so.conf )
       /usr/local/ssl/lib を追記
       ※/etc/ld.so.confを修正後、ldconfigコマンドを実行。

   ・玄箱起動時にapache2をSSLモードで自動起動できるように登録
     通常起動ではSSLがONにならない。明示的に指定する必要がある。
     /etc/init.d/のapache2内、ARGV="$@"をARGV="startssl"に編集する。
       ※ちょっと強引かなぁ(汗。
       (通常、SSL機能付でApache2を起動する場合は、
       # /usr/local/apache2/bin/apachectl startssl )

   ・.htaccessについて
     特定ドメインやIPのみ許可し、基本認証を設定
       < Files ~ "^.(htaccess|htpasswd)$" >
         deny from all
       < /Files >
         Options -Indexes
       < Limit GET POST PUT >
         order deny,allow
         deny from all
         allow from 192.168.xxx.xxx
         allow from ドメイン名
       < /Limit >
         AuthUserFile /var/www/.htpasswd
         AuthGroupFile /dev/null
         AuthName "Login"   ←" "でくくらないとうまくいかない?
         AuthType Basic
         require valid-user   ←制限ゆるいのかな?
   ・別マウントドライブをWebフォルダ・Web公開する場合:
      httpd.confだけでなく、ssl.confにも「DocumentRoot」を書く欄が
      あるので注意すること。error_logみればわかるけど。
   ・アドレスの/(スラッシュ)がないと、中身が表示されない問題の対処
      ここにかいてある。
      原因はIPではなくドメイン名によるリダイレクトを試みるため。
      外部公開用に準備している場合は、DNSの登録を行なうか、
      hostsファイル(system32/drivers/etc)で、名前解決しておくこと。

・PHP4
 apache2での動作保証がないとのページも見つけたので、今後検証していく。 
 ググったら、どうやらソースからコンパイルしにゃいけないみたい。。。Orz 参考

 コンパイルの設定は以下のとおり。
  ./configure --with-apxs2=/usr/local/apache2/bin/apxs
  --enable-roxen-zts --enable-zend-multibyte --with-mysql
  --enable-track-vars --enable-mbstring --enable-mbregex

 4.3.10特有のコンパイルエラーが出るので対処を以下
   エラー: /php-4.3.10/Zend/zend.c:776: incompatible types in assignment
           make: *** [Zend/zend.lo] Error 1
   tarを解凍した中のZendフォルダ内にzend.cがある。その中の776行目を
      memcpy((usr_copy),(args),sizeof(*(args)));  または
      memcpy(usr_copy, args, sizeof(va_list)); と修正。(後者でやった)
   php.iniの設定
      (内部SJIS、出力SJISの例)
      magic_quotes_gpc = Off ←余分なエスケープ文字挿入切
      default_charset = Shift_JIS
      mbstring.language = Japanese
      mbstring.internal_encoding = EUC-JP
      mbstring.http_input = auto
      mbstring.http_output = EUC-JP
      mbstring.encoding_translation = On
      mbstring.detect_order = auto
      mbstring.substitute_character = none
    ※/usr/local/libがphp.iniのデフォルトパスらしい。
     php.iniがなかったので、自前のものをここにコピーし認識させた。
     (あいかわらず強引。。。)
   GDライブラリを追加インストール
      apt-get install php4-gd
        libgd1 php4-gd t1lib1がインストールされた。
        ※でも認識されていないみたい。。。今後検証。

・ファイアウォール
 まだ調査中だけど、iptable / knetfilter などを導入すればいいのかな。

・MySQL
 dselectでインストール。
 /etc/mysql/my.cnfを編集。以下を書かれていないので追記。
  [mysqld]
   default-character-set=ujis
  [mysql]
   default-character-set=ujis

・phpMyAdmin
 ダウンロード先はここ
 Webminよりも高機能だし、使ったことがあるので。
 ※よく間違えられますが、phpMysqlAdminではありません(自戒)。

 解凍して設置後、phpMyAdmin\config.inc.php の以下の箇所を設定する。
 $cfg['PmaAbsoluteUri'] = '設置したサーバIPかドメイン/phpMyAdmin/';
 127.0.0.1とかにすると他のパソコンからアクセスできないので、
 ホスト名が望ましいが、その場合は、DNSやhostsの登録が必要。
 ※メモ: 用心のためSSLのディレクトリに入れて「SSLRequireSSL」に。

・Webmin
 dselectでインストールしたら、いろいろなモジュールも追加してくれた。

・Samba2
 LANファイル共有(Samba)とWebDAVの文字化け対策:
 WebDAVの日本語名のファイルたちはUTF-8で管理するようにしたので、
 Sambaも同じUTF-8で管理するようにした。
 Windows共有フォルダ側からは、いわゆるSjisで表示するように設定。
 apt-getしたsamba2.2.3aの設定は/etc/samba/smb.confにある。
 以下の記述を[global]に追記
   client code page = 932
   coding system = UTF8   ※注意: UTF-8ではなくUTF8。
   dos charset =CP932    ※上記が932だからCP932はバツ?
   unix charset = UTF8
 停止/起動 # /etc/init.d/samba stopまたはstart
 これをやると共有フォルダに保存していたSJISファイルが見えなくなるので、
 ちゃんとフォルダ内を整頓してからやる。
 注意!: SambaとApacheは連携してファイル排他処理をしていない。
       同じファイルを同時に処理するとファイルが壊れる。



CategoriesProducts / Snapped on2005年02月22日 09:05 / CommentsComments(0)
Comments

Infomation
日ごろのできごと。備忘録Tipsのまったりなブログです。 [for Mobile]

Mobile Site
携帯でもDiaryをご覧になれます。[こちら]
Web Link
Search

Powered by
携帯でMovableTypeを おせわになってます

311363 view
RDF[Photolog/Blog]