開発系な話」カテゴリーアーカイブ

ユーザーごとの設定

 すっかり度忘れしてたので書いておく。

 MacOS Xのhttpdの設定ファイルhttpd.confは2つある。一つは/etc/httpd/httpd.conf*1。そしてもう一つは/etc/httpd/users/hoge.conf

 自分トコのMacにtDairyを入れたのだが、どうもユーザー認証無しで誰でも書き込めてしまう状態になってしまっていたのだ*2。で、.htpasswdとか、.htaccessとかを何度も確認し、実験してみたのだが全然ダメ。こりゃ認証自体をしようとしてないなって事でhttpd.confを調べてみたのだがこれもちゃんと設定されてそうな感じ(?_?)

 いつものようにgoogleさんに聞いて思い出したのが、users以下の設定ファイル。こっちの方が優先されるような感じで、しかもユーザー認証しないような設定*3になっていたのだ。そりゃダメだわな(__)

 で、修正したらちゃんと認証されるようになったので、ひとまず解決。

 これでtDiaryのcssチェック環境は完成。

*1:/private/etcね、実際は。

*2:自分でしか使わないから問題無いっちゃ問題ないんだが【笑】

*3:要は.htaccess無視する設定。

rubyはやっぱり

 ダメでした(__)

 root権限が無いのでmakeは使えないとの事。さらにruby対応予定も無しだと(-_-) サーバー変えようかとも思ったのだが、5月に1年契約したばっかりだし・・・ まぁその時は納得して契約したんだから仕方がないんだが、来年はまた別のところだな。

 しゃーないから勉強と練習のつもりで自宅のMacにでも入れるか。寂しいけど・・・(T_T)

rubyが・・・

 カテゴリーに困ったのだが、とりあえずレンタルサーバーはFreeBSDなのでここで(^^;

 いっそ自分トコのサイトもtDiaryベースででっち上げてしまえば、デザイン的にここと揃えられそうでいいなぁと思い、設置を試みる。

 とは言えrubyが使えないという事が既に判明していたりするので*1、386用の*2バイナリが無いかなぁと探してみたのだが、結局見つからず。

 仕方がないのでmakeしたヤツをアップロードしてみるか、とconfigureからmakeを試みるも、これMacだし・・・【爆】*3

 最後の手段としてソースをサーバーにアップしてサーバー上でコンパイルするという、

他の人には迷惑千万【爆】

な手段も試してみたの*4だが、makeのパーミッションが無いという、既に先手を打たれていたようでこれもダメ。

 仕方がないんで問い合わせのメールをホスティング元に出しました(T_T)

 多分「ダメです」の一言なんだろうけど・・・(__)

 そうか、職場のマシンで・・・(。_゜☆\(ーー;)

*1:ダメ元でやってみたが、案の定・・・(__)

*2:さらにはFreeBSD用の。

*3:もしかしたらクロスでいけるかとも思ったのだが、考えてみればクロスの環境が無い訳で・・・【汗】

*4:心の中では何度もごめんなさい、ごめんなさい・・・

sshdを動かしてみる

 実はこれをやろうとしてはまったのだ【爆】

 で、途中になっていたので、やっぱりやってみる事にする。

 参考

  http://osksn2.hep.sci.osaka-u.ac.jp/~naga/miscellaneous/winssha-1.html

  http://sakura.ducub.com/cgi/a-column/data/soft/1014123354.html

 必要項目のインストール

  Cygwinのsetup.exeを起動して、以下の項目をインストールする。

        • cygrunsrv[Admin]
        • openssh[Net]

 環境変数の修正。

  c:?/cygwinにインストールしてるものとして話は続く。あと、Windowsの管理者権限なんかがないとマズイかもしれない。

  マイコンピュータを右クリックしてプロパティを表示。

  詳細タブをクリック。

  環境変数ボタンをクリック。

  システム環境変数のPathを選択し、編集ボタンをクリック。変数値に’c:?cygwin?bin?’を追加。

  システム環境変数の新規ボタンをクリック。変数名に’CYGWIN’、変数値に’binmode ntsec ntea tty’*1を入力。

 sshdの起動準備。

  cygwinを起動して、

$ ssh-host-config -y

  なにやら必要なファイルを自動的に作ったあと、環境変数’CYGWIN’の入力を求めてくるが、デフォルトの’ntsec’のままで良いのでそのままreturn。

  ’Host configuration finished. Have fun!’と表示されたら終了。

 パーミッションの変更。

  /etc以下のsshd関連ファイルのパーミッションを変更。cgywin上で、

$ chown system.system /etc/ssh_host*_key

$ chmod 600 /etc/ssh_host*_key

 Windowsへのサービス登録を行なう。

  マイコンピュータを右クリックして管理ダイアログを表示。

  「サービスとアプリケーション→サービス」を選択。

  右のリストに’CYGWIN sshd’があるはずなので、それを選択してサービスの開始ボタンをクリック。

 この状態でcygwinから、

$ ssh localhost

 でログイン出来ればオッケー・・・ なんだけど、ログインした途端に接続を切られてしまう(?_?)

 いろいろ調べてみたのだが、行き着いたところは、

  http://www.cygwin.com/ml/cygwin-announce/2004-08/msg00031.html

 で、この中に、

Thanks to an early bug report on the cygwin mailing list, I found that

you *must* add the -r option when starting the sshd daemon, if you want

to use privilege separation. Either that, or disable privilege separation

in /etc/sshd_config by setting

UsePrivilegeSeparation no

とあった(-_-;) 要は”バグってるから、privilege separation(特権分離機能)使うなら-rオプションつけてsshdを起動してね。それじゃなかったらこの機能は使わないよーに。“ということ。特に使うつもりもないので【笑】

 /etc/sshd_configのUsePrivilegeSeparationをno

にして*2sshdを再起動。

$ net stop “CYGWIN sshd”

$ net start “CYGWIN sshd”

 再度、

$ ssh localhost

 今度は無事ログインに成功(-o-;)

*1:これでいいのかどうか、ちょっと怪しい【爆】

*2:ssh-host-configの時、'Should privilege separation be used? (yes/no)'で'no'としておけば、この苦労は不要らしい。

Configuration Toolが起動しない

 日本語の情報がなかったので書いておこう・・・

 情報源は、

  http://www.spinics.net/lists/ecos/msg22363.html

  http://bugs.ecos.sourceware.org/show_bug.cgi?id=1000095

 Windowsでの作業環境があまりにも整備されていないので*1、せっかくCygwinが入ってるんだからsshd動かしてMacから作業しようと思ったのが事の始まり。

 googleさんに教えてもらいながらCygwinに追加インストールした後、念のためと思って再起動したらeCosのConfiguration Toolが起動しなくなってしまったのだ(@_@;)

 正確には、Configuration Toolを起動すると、Output Windowに”This package does not have any valid version subdirectories.”というメッセージが大量に*2出力され、そのまま終了してしまう、という現象。Configuration Toolは愚か、Cygwinを再インストールしても回復しないと言う謎な状態(?_?)

 こんな時頼りになるのはやっぱりgoogleさん(^^;

 結論から言うと、/bin/cygwin1.dllの最新版(1.5.10-3)*3ではパスの扱いに不具合があるらしい。先のページの内容を引用すると、

With cygwin 1.5.9-1 under Windows XP SP1:

$ tclsh

% glob C:/tmp/.

C:/tmp/./

%

With cygwin release 1.5.10-3 under Windows XP SP1:

$ tclsh

% glob C:/tmp/.

C:/tmp/ <========= ./ has disappeared !

%

 つまりは、以前のバージョン(ここでは1.5.9-1)では”C:/tmp/./”というパスが返ってくるところが、1.5.10-3では”C:/tmp/”となってしまう、という事。

 そもそもちゃんと使えてたパッケージなんだし、それがいきなり全部おかしくなるとは考えにくい*4。それなのにエラーになる。チェックするにはパスを手繰るはず。

これは怪し~~~【笑】

 で、他の人が使ってるCygwinからこのDLLをもらい*5入れ替えてみると、無事起動(-_-)

 Cygwinはネットワークインストールだったのだが、なんかの拍子にこのDLLも新しいのになってしまった*6のだろう。しかも原因がこれじゃ、何度インストールし直してもダメなわけだわ。

 これで問題は無事解決・・・ ではなくて入れ替えたDLL。これはこれで結構古かったりするので、他との整合がちゃんと取れてるんだろうか? などと思ってたら案の定、build時にいきなりエラーダイアログ【爆】 やっぱりダメだったのね~(T_T) DLLの不具合を解消するpatchも公開されてたのだが、

パッチ当ててコンパイルし直しかぁ。面倒だな~~

 なんて思いながらeCosのメーリングリストを見てみたら、タイムリーな事に今日届いたメールに同じ事で悩んでる人がいたりして(^^;*7 で、その回答も既に届いてて、

You can find an updated version at

http://www.ecoscentric.com/devzone/configtool.shtml

おぉ!これじゃぁ!!

と早速新しいバージョンのConfiguration Toolをダウンロードして入れ替えてみたら、1.5.10-3のDLLでもあっさり動作(^o^) いや、良かった良かった。

*1:だって普段使わないし、使い勝手のいいツール無いし(T_T) VNCでMacから操作してるのだが、キー配列変わったりもしてさらに使い辛い(__)

*2:恐らく個々のパッケージのチェックをしてるのだろうからその分。

*3:プロパティでは1.5.10-cr-0x5e6

*4:可能性が0ではないけど。

*5:自分の環境では既に前のバージョンに戻す手立てが無くなってしまっているので(T_T)

*6:新しくするようにしてセットしてしまったんだろうが・・・(–;)

*7:いやぁ世界って狭いわ。あと3人くらいは同じ事で悩んでいた人がいるはず【笑】

インストール

 もともとMacOSXではPHPがインストールされてはいる*1のだが、やっぱり最新版が使いたいという欲求はあるので(^^;

    • 参考

 http://www.waf.jp/index.html?page=mac

 http://www.entropy.ch/software/macosx/php/

    • バイナリ取得

 http://www.entropy.ch/software/macosx/php/#install

 ここから’PHP 4.3.6 (entropy.ch Release 4)’をダウンロード。ファイル名は’Entropy-PHP-4.3.6-4.dmg’。

    • インストール

 ダウンロードしたdmgファイルをマウントし、パッケージをダブルクリック*2

    • 設定

 php.iniの編集。

  特になし。

 httpd.confの編集。

  # vi /etc/httpd/httpd.conf

<IfDefine HAVE_PHP4>

LoadModule php4_module   modules/libphp4.so

</IfDefine>

<IfDefine HAVE_PHP4>

AddModule mod_php4.c

</IfDefine>

<IfModule mod_php4.c>

AddType application/x-httpd-php .php4 .php3 .phtml .php

AddType application/x-httpd-php-source .phps

</IfModule>

  とかいう設定をやるらしいが、なぜか動いてしまっているのでとりあえずは保留。

  現状は以下のようになっている。

#LoadModule php4_module libexec/httpd/libphp4.so

:

#AddModule mod_php4.c

:

<IfModule mod_php4.c>

# If php is turned on, we repsect .php and .phps files.

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

# Since most users will want index.php to work we

# also automatically enable index.php

<IfModule mod_dir.c>

DirectoryIndex index.html index.php

</IfModule>

</IfModule>

:

# begin entropy.ch PHP module activation

Include /usr/local/php/httpd.conf.php ←これがあるから動くのかも・・・

——–[/usr/local/php/httpd.conf.php]

#

# Additional PHP Apache directives,

# part of the entropy.ch PHP package for Mac OS X

#

# For more information, go to http://www.entropy.ch/software/macosx/php/

#

LoadModule php4_module /usr/local/php/libphp4.so

AddModule mod_php4.c

——–

# end entropy.ch PHP module activation

# begin entropy.ch PHP module activation

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

    • 起動確認

 php_test.tar.gzをダウンロード後解凍し、Sitesフォルダにコピーする。

 パーソナルウェブ共有が開始されている事を確認したら、ブラウザから、

  <http://localhost/~(username)/test.php>

 にアクセスする。

 PHP Bersion 4.3.6のページが表示されればオッケー。

*1:MacOS X 10.3.5でversion 4.3.2

*2:MySQLでもそうだったが、パッケージしてくれた方には心から感謝感謝だわ。

改行コード

 このカテゴリーでいいのかどうか【笑】

 本家サイトのCGIがちゃんと動いていなかった事が判明【爆】*1 ローカルで動かしてhttpdのエラーログ見たら”Premature end of script headers:”云々とか言ってる様子。もともと動いてるスクリプトだし、いきなりなんでかなぁ・・・と悩む事しばし。デバックメッセージ吐かせてみたり、いろいろ修正して動かしてみたりしたものの全部ダメ(X_X)

 これはもうGoogleさんに教えてもらうしかないとエラーメッセージをそのまま入力してポン! そしたら最初に見つかったページに

改行コードが誤認識される

とか。

 普通ならここで気づくはずなのだが、なぜかその時は誤認識って言われてもなぁなどと悩んでしまったのが馬鹿だったのだが、さらに10分悩んで

あ、改行コード・・・

と気が付く始末。チェックしてみたら案の定CR+LFになってるし・・・*2

 これをLFに直したら一発動作*3。とりあえず事無きを得る。

 これで某所のサイトにCGI入れられるかな(^^;*4

*1:自分のサイトなんだから気づけよ←自分つっこみ

*2:なんで変わってしまったのかはいまだに不明なのだが(?_?)

*3:てか動いてたんだってば。

*4:いやいや、余計な事はやめておこう。暇無いし・・・

インストール

 GsBlogをローカルで動かすために、まずはMySQLをインストールする。

    • 参考

 http://homepage1.nifty.com/hongou/ken/JAVAonOS_X/mysql.html

 http://www.entropy.ch/software/macosx/mysql/

 http://mmmysql.sourceforge.net/*1

    • バイナリ取得

 http://dev.mysql.com/downloads/mysql/4.0.html

 ここの”Mac OS X downloads”から”Installer package (Mac OS X v10.3)”の”Standerd”をダウンロード。ファイル名は”mysql-standard-4.0.20-apple-darwin7.3.0-powerpc.dmg”。

 JDBCドライバも合わせて取得しておくと、あとあと嬉しいかも・・・

  http://dev.mysql.com/downloads/connector/j/3.0.html

  ”MySQL Connector/J is the official JDBC driver for MySQL”

  ファイル名は”mysql-connector-java-3.0.14-production.tar.gz”。

    • インストール

 ”mysql-standard-4.0.20-apple-darwin7.3.0-powerpc.pkg”をダブルクリック【笑】

 起動時にMySQLも起動したい場合は、”MySQLStartupItem.pkg”もインストールする。

 →’/Library/StartupItems/MySQL’に’StartupParameters.plist’がインストールされる。

  システム設定ファイル(どのファイルの事?)に’MYSQLCOM=-YES-‘が追加される。

  →MySQLを起動しないようにするには、これを’MYSQLCOM=-NO-‘とする。

  詳細は、付属のReadMe.txtを参照。

    • セットアップ

 /usr/local/mysql/binにパスが通ってるものとして・・・*2

 ターミナルでmysqlのディレクトリへ移動し、dataディレクトリ以下のオーナーを変更。

% cd /usr/local/mysql

% su

Password: ←管理者パスワードを入力

# chown -R mysql data/

 rootアカウントのパスワード設定

# mysqladmin -u root password ‘*****’

 MySQLにログインする。

# mysql -u root -p

Enter password:  ←MySQLのrootパスワード

Welcome to the MySQL monitor. Commands end with ; or ?g.

Your MySQL connection id is 1 to server version: 4.0.20-standard

  

Type ‘help;’ or ‘?h’ for help. Type ‘?c’ to clear the buffer.

  

mysql>

  

 現在登録されているユーザーの確認。

mysql> select host,user,password from mysql.user;

+——————-+——+——————+*3

| host | user | password |

+——————-+——+——————+

| localhost | root | **************** | ←暗号化されてる

| local.domain | root | |

| localhost | | |

| local.domain | | |

+——————-+——+——————+

4 rows in set (0.03 sec)

 安全のため、どこからでも接続出来るユーザー(下2行)を削除。

mysql> delete from mysql.user where user=””;

 どこからでも接続出来るrootユーザーのパスワードを設定。

mysql> set password for root@’local.domain’=password(‘********’);

 現在登録されているユーザーの再確認。

mysql> select host,user,password from mysql.user;

+——————-+——+——————+

| host | user | password |

+——————-+——+——————+

| localhost | root | **************** |

| local.domain | root | **************** |

+——————-+——+——————+

2 rows in set (0.00 sec)

*1:MM.MySQLについての参考

*2:逆に言えば、パスが通ってなくてもフルパスで指定すればオッケー。面倒だけど(__)

*3:あれ?表が等幅にならない・・・(-_-)

ファイルの再帰的削除

 http://www.redout.net/data/command.html などを参考にしつつ・・・

 ディレクトリの中を再帰的に検索し、*.oを削除する*1

find . -name ‘*.o’ -type f -exec rm {} [?];

 同様に*.c、*.h以外をすべて削除する場合は。

find . [?]( ! -name ‘*.c’ -a ! -name ‘*.h’ [?]) -type f -exec rm {} [?];

nameオプションの前に!とか書けるのね。へ~~(^^;

*1:[?]の部分はバックスラッシュ。書き方が解らん(T_T)

lost interrupt

 Linux-2.4.28ベース*1のカーネルでCFカードを使えるようにしていたら、cardmgrを使用したところで、”hda0: lost interrupt”のエラーが表示されるようになった。

 make menuconfigでCardBusをサポートするようにカーネルを設定したら、表示されなくなった。

  General setup —>

   PCMCIA/CardBus support —>

    [*] CardBus support

 原因は不明・・・ いいのか?(^^;

*1:2.4.25のソースをマージしたり。いろいろいじってはある(^^;