コンピュータ: 2012年5月アーカイブ


BASIC認証がうまくいかない件は、ちょっと原因を間違えていた。

httpd -t でエラーが出なくなっているのに、BASIC 認証しているページにアクセスすると Internal Server Error になるので、Order ディレクティブを直さないといかんのだろうと漠然と思ってたんだが、さっきエラーログを確認すると、Invalid command 'AuthUserFile' のようなエラーが出てた。

結局、httpd -t では .htaccess の記述まではチェックしないんでエラーが出てなかっただけで、根は httpd.conf の修正と一緒。
AuthUserFile ディレクティブを解釈するための authn_file_module モジュールが読み込まれていないというだけの話で、例えば、

LoadModule authn_file_module modules/mod_authn_file.so

を httpd.conf に追加するだけでいい。

そもそも(別のディレクティブのエラーを消そうとして)、access_compat_module を既にロードしているので、Order ディレクティブを Require ディレクティブに修正する必要はなく、アクセスコントロールの記述はそのまま使えるということのようだ。

ということで、例えば

AuthUserFile /usr/local/hogehoge/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

という内容の .htaccess であれば、

LoadModule authn_core_module modules/mod_authn_core.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so

というモジュールのロードを httpd.conf に追加することで、BASIC 認証も問題なく行えるようになった。

でも、まあ、これはうちの環境の話であって、場合によっては authz_host_module もロードしないといけないとかありそうだね。

つーか、今思ったんだけど、最初から外部モジュール全部ロードすりゃ良かったな。
全部ロードしても、そんなに重くなることもないやろ。2.2の時には内蔵してたんだし。

何か、session_cookie_module(mod_session_cookie.so)とか、env_module(mod_env.so)とか、この先必要になってハマったりとかありそうだしなあ。
オープンソースな統合図書館管理システムである「Next-L Enju Leaf」の検証をしたかったので、自宅の FreeBSD 機に入れてみた。

wiki に install マニュアルがあるのだが、Linux と Mac OS X 向けの説明である。
ただ、FreeBSD も Linux と同じ UNIX 系の OS(FreeBSD は本物の UNIX。Linux は UNIX ライクな OS・・・なのだが、まあ、その辺の話は割愛)なので、このマニュアルで十分使える。

以下、非情に個人的なそのインストールメモ。

まず、必要なソフトウェアをインストール。
(もちろん、環境によってはこれ以外にも細々したものが必要になるかもしれない)

・Ruby 1.9.2以上推奨
 Ruby 1.9.3p194 (2012-04-20 revision 35410) をソースからインストール

・Ruby on Rails 3.2
 Rails 3.2.3 を gem install

・Java SE 6
 java version "1.6.0_07"
 Diablo Java SE Runtime Environment (build 1.6.0_07-b02) を ports インストール
 (SUN が、FreeBSD 向けのバイナリを提供してないんでね)

・PostgreSQL 8.4以上推奨
 元々、9.0.1 がインストールされている。
 が、Enju のインストールで古いと言われたので、9.1.3 をソースからインストール
 (本当は gem の問題で、9.0.1のままでも大丈夫だったのが後ほど発覚(^^;)

・memcached
 memcached 1.4.13 を ports インストール

・ImageMagick
 ImageMagick 6.7.5.10 を ports インストール

・node.js
 node v0.6.9 をソースからインストール

・Apache Solr 3.5.0以上
 Solr 3.6.0 を ports インストール

・Git
 「必要なソフトの一覧」に載ってないが、Git(分散型バージョン管理システム)も必要なのでインストールする。
 Git 1.7.10.1 を ports インストール。

この後、Enju Leaf のインストール。

うちの FreeBSD には sudo は入れてないので、root 権限が必要な作業は root になって行なう。(一般ユーザは、一応、enjuuser というのを作っている)

まず enju ファイルの取得と展開。
(ちなみに、以下の作業は、sh または bash 等の B シェル系で行なうこと)

# gem install bundler
# su enjuuser
% cd /vol1/usr/local/enju
% git clone git://github.com/nabeta/enju_leaf.git
% cd enju_leaf
% git checkout 1.0

PostgreSQL の初期データ作成。専用の PostgreSQL ユーザを作ってね。
(DB を新規に作れる権限を与えるのを忘れちゃ駄目だぞ!)

% su - postgres
% createuser enju
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE
% psql
Welcome to psql 8.2.17 (server 9.1.3), the PostgreSQL interactive terminal.

ALTER で enju ユーザのパスワードを設定。

postgres=# ALTER USER enju PASSWORD 'enjupassword';
ALTER ROLE
postgres=# \q
% exit

DB アクセスファイルを新しいユーザ用に編集。

% cp config/database.yml config/database_20120512.yml
% vi config/database.yml
% diff config/database.yml config/database_20120512.yml
17c17
<   password: enjupassword
---
>   password:
43c43
<   password: enjupassword
---
>   password:
51c51
<   password: enjupassword
---
>   password:

Enju Leaf本体のインストールを続ける。ここから root でね。
(別のエントリで詳細は書こうと思うが、俺のサーバの環境では取りあえず pg パッケージの最新バージョンが入らないので、バージョン '0.12.0' を使うよう Gemfile を予め修正しておく)

# cp Gemfile Gemfile_20120515
# vi Gemfile
# diff Gemfile Gemfile_20120515
31c31
<   gem 'pg', '0.12.0'
---
>   gem 'pg'
# bundle

DB の作成を。

# rake db:create:all
# rake db:migrate RAILS_ENV=production

これで、

enju_development
enju_production
enju_test

という3つの DB が作成される。

続けて DB アクセス時の暗号化に使う設定ファイルを作成。
secret_token.rb の EnjuLeaf::Application.config.secret_token を修正するが、セットするトークンは 30文字以上で。

# rake secret
# vi config/initializers/secret_token.rb

諸々のサーバを起動しておく。
(memcached は、/usr/local/etc/rc.d の下に実行ファイルが出来ている。/etc/rc.conf の編集も必要なので注意)

# rake sunspot:solr:start RAILS_ENV=production
# vi /etc/rc.conf

memcached_enable="YES"
を追加。

# /usr/local/etc/rc.d/memcached start

初期データの追加(管理ユーザのアカウント情報とかね)
それと、アセットパイプライン(JavaScript や CSS を結合することで、ブラウザからのリクエスト回数を減らす仕組み)のためのプリコンパイル済みのアセットを作成。

# rake db:seed RAILS_ENV=production
# rake assets:precompile RAILS_ENV=production

バッチ処理を cron に登録。

# vi config/schedule.rb

set :path, '/usr/local/enju/enju_leaf'
に変更

# whenever --update-crontab

そして、やっとこさサーバの起動。
(その前に PID ファイルを作成する tmp ディレクトリを作っておくのを忘れるな!)

# mkdir /usr/local/enju/enju_leaf/tmp
# chmod 777 /usr/local/enju/enju_leaf/tmp
# cd /usr/local/enju/enju_leaf
# RAILS_ENV=production script/delayed_job start
# rails server -e production

ようこそ!Enju Leaf の世界へ。

別のパソコンから http://192.168.XXX.XXX:3000/ にアクセスすれば、Enju Leaf のトップ画面が。

つーか、実際のところはこんなにすんなりとは行きませんでした(^^;
個々の苦労話は別のエントリーにて(^^;

20120517_enju.jpg
20120508_enju1.jpg
もうひとつ Enju ネタ。

Enju のサイトの質問&要望掲示板の書き込みの仕方がわからないので(^^;、取りあえずここにメモ。

どうも、InternetExplorer9 で「所蔵情報の新規作成」がうまくいかない。
うまくいかないのは、図書館名で「日本語」の図書館を指定した時。
(ディフォルトの Your Library を指定すれば正常に登録出来る)

Chrome では問題なく動作するので、InternetExplorer の Form データのエンコードの仕方に問題があるんじゃないか?

InternetExplore9 を互換モードにしても状況変わらず。

一応、動作環境に IE9 も入ってるから、これはバグ?だよな・・・
でも、IE9 で「所蔵情報の新規作成」が出来ないなんて、もっと早く発見され、すでに修正が行われていても良いような・・・

まあ、掲示板に書けるようになったら聞いてみよう。
取りあえずはメモ、メモ。
20120507_vmware4.jpg
ちょっと検証したいことがあって、Next-L Enju Leaf 1.0.2 32bit版の VMWare Player4用仮想マシンイメージを、VMWare Player 4.0.3 build-703057 上で実行させている。
ホスト OS は Winodows 7 Professional SP1 だ。

で、今日、いきなりネットワークデバイスが認識しなくなった。
ifconfig で見ても lo デバイスしか見えない。eth0 が出てこない。
起動時のメッセージを見てみると、Starting configure network device が fail になってる。

/etc/network/interfaces の中を見ると、

auto eth0
iface eth0 inet static
auto eth0
address 192.168.137.128
netmask 255.255.255.0

という具合に、間に余計な auto eth0(boot時に eth0 デバイスを自動起動)というコマンドが挿入されてしまっている。
もちろん、interfaces ファイルを手動で修正はしていない。

interfaces ファイル作成に使ったプログラム ~enju/setip.rb(Enji のインストールツール)を見てみると、やっぱり auto eth0 を二回書いてるような。

auto lo
iface lo inet loopback

auto eth0

を書いたあとに、無条件に、

iface eth0 inet static
auto eth0

って書いてるよね?

でも、昨日まではまともに動いてたんだけどな。

そう言えば昨日までは eth0 と eth1 デバイスが存在してて、eth1 が使われてたんだけど、物理デバイスの無線 LAN アダプタを挿す USB I/F を変えたら eth0 だけになっちゃって、そのあと setip.rb を実行しなおしたせいかね。(昨日の時点での interfaces ファイルがもう存在してないので調べられないのだが・・・)

まあ、とりあえず iface の下の auto eth0 をコメントにしたら問題なく起動しているのでヨシとしよう。
20120501_wpi1.jpg 20120501_wpi2.jpg
ASP.NET の開発環境を作るために、Visual Web Developer 2010 Express をインストールしたかったのだが、そのものずばりのダウンロードサイトというのが無い。(Visual Web Developer 2008 Express までは存在してるんだけど)

どうも、Visual Studio 2010 Express のサイトによると、直接インストールするんじゃなく、Microsoft Web Platform Installer 3.0 経由でインストールせい!・・・ということらしい。

しかし、Web Platform Installer 3.0 をダウンロードして起動してみても、

・Application Request Routing 2.5
・Visual Studio 2010 SP1
・IIS 7 の推奨される構成

の3つしかインストール可能な製品として出て来ない。
試しに Visual Studio 2010 SP1 をインストールしてみたら、「Visual Web Developer がインストールされてなければ駄目!」と怒られて中断されちゃうし。

しばし悩んだのだが、画面上方の検索窓で製品名で検索をすればいいのを発見。

例えば「Web」というキーワードで検索すれば、無事、一覧の中に「Visual Web Developer Expless 2010」が表示される。(上の画像は Web Developer インストール後、もう一度検索してみたもの。今度は SP1 が一覧に現れた)

ググってみたり、書籍を読んでみたりしたのだが、どこの情報でも最初から Visual Web Developer 2010 Express が一覧に出てくる前提で書かれている。

何か俺の設定が悪いのか?と一瞬思ったが、ダウンロードしてきたプログラムをそのまま起動してるだけだからなあ。

ま、インストール出来たからいいけど(^^;

このアーカイブについて

このページには、2012年5月以降に書かれたブログ記事のうちコンピュータカテゴリに属しているものが含まれています。

前のアーカイブはコンピュータ: 2012年3月です。

次のアーカイブはコンピュータ: 2012年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら