Linuxの最近のブログ記事

久しぶりにはまった。

glibcのいつ頃かしらないけど、
新しめのglibcにはiconvの機能も入ってる。

RedHat系のディストリで yum list *iconv* ってやって出てこなければきっとそう。

このバージョンのglibcの場合は、
iconvのパッケージを入れなくてもiconvを必要とするものがビルドできるわけなんだけど、
逆にソースから/usr/local/とかにiconvをインストールしてると、逆に動かなくなったりする。

その場合は/usr/localからiconvの痕跡を消せばおk

/usr/直下に入れた場合はシラネ

「コメント投稿エラー
 コメントを投稿できませんでした。エラー: 不正な要求です。」
ってのが出てコメントできません><

ってのを後輩の竹の人経由で歌丸さんに教えてもらったので調べてた。

ちなみに比較的特殊な環境でしか再現しないのと、
そのあとlighttpdのモジュール紹介になるので
「俺俺、超普通人」とか「lighty?なにそれ?」な人はヤンキーゴーホーム!

さらっと。

Fedora 7を使ってるのだが、kernel 2.6.22.1-27だとVMwarePlayerのvmware-config.plがコケる。
なので
http://www.vmware.com/community/thread.jspa?messageID=645058
のパッチを/usr/lib/vmware/module/source/vmnet.tarを解凍して当ててやれば通るようになる。

今のところ普通に動いてます。

久しぶりの投稿。 Thinkpad X60に乗ってるMIMO対応の ThinkPad 11a/b/g/n Wireless LAN Mini Express Adapter(Atheros AR5BXB72) がFedora Core 6で動くようになったのでメモ。 対応したAPもってないので11nやMIMOが動くかどうかはまだ不明。

家の鯖には今までVineLinuxを使ってきたが、現在CentOSに移行中。
とりあえず4台中2台は移行完了。(1台は設定がまだまだだが)

移行後に困ったのが、FTPの文字コード。
今まではVineLinuxだったのでホストの文字コードをEUC-JPにすればよかったのだが、
UTF-8に対応しているFTPクライアントでいいのが見つからない。

ってことでProFTPD側にパッチ当ててサーバ側でEUC-JP<=>UTF-8の変換をさせることにした。

ProFTPd本家から1.3.0のソースと、↓のページを参考にRPMパッケ作成。
pam認証あたりでてこずったけど、うまくいきました。
(つーか日本語使いたくねぇんだけどな・・・・)

http://www.hakusan.tsg.ne.jp/tjkawa/software/misc/proftpd-iconv/index.jsp

cpan2rpm その後

| コメント(0) | トラックバック(0)

前書いたcpan2rpmでCPANモジュールをゴリゴリrpmにしてたんですが、
詰まりました。

Storable MIME::Base64 Test::Simple Scalar::List::Util ここいらへんのモジュールが
perl本体のrpmに含まれているせいで、rpm作っていれてもぶつかっちゃう。
自作rpmは全部site_perlの方に入れるようにしてみたけど、perl本体の方に含まれる方が優先されて駄目ぽ。

うーん 純粋なperl本体だけのパッケージってどうやって作ればいいんだろ・・・・

Vine Linux 3.2 に cpan2rpmを入れた。
http://perl.arix.com/cpan2rpm/

rpmのバージョンの差か、
そのままのだとrpmのりビルドに失敗するので、cpan2rpmに修正が必要。
972行目の %fileを%%fileに変更すればOK。

cpan2rpm-2.028-1.src.rpm
どうせ作ったので置いておきます。

lighttpdのSSL

| コメント(0) | トラックバック(0)

lighttpdでsslを使おうとしてはまったのでメモメモ。

lighttpdでsslを使うには、
ssl.engine = "enable"
ssl.pemfile = "/path/to/server.pem"
の二つのオプションを指定するのだが
apacheとかだと server.key, server.crtの両方使うので、どっちを指定すればいいんだー!
とはまっていたのだが、
何の事はない server.keyとserver.crt 両方を繋げた物だった。
cat server.key server.crt > server.pem ってやって使いました。

こんどはmod_auth_mysqlを使ってみた。
前回のエントリの、mod_auth_pgsqlのmysql版といった感じだ。
ローカルにあるbugzillaに対して外部からアクセスしたい。
という要望があったからだ。

求められるものは、
http://www.mydomain.com/bugzilla/にアクセスされると、
ローカル内のhttp://www.mylocaldomain.com/bugzilla/にリバースプロクシで飛ばす というもの。

mod_auth_mysqlとmod_rewriteを使った。

mod_auth_mysqlはこちら http://modauthmysql.sourceforge.net/
mod_rewriteはapacheに入ってるはずなので、ドキュメントは適当にググってください。

まずはmod_auth_mysqlのインストール。
apache-develとMySQL-develのrpmパッケージを入れる。

wget http://jaist.dl.sourceforge.net/sourceforge/modauthmysql/mod_auth_mysql-3.0.0.tar.gz
tar -zxpvf mod_auth_mysql-3.0.0.tar.gz
cd mod_auth_mysql-3.0.0
apxs -c -L/usr/lib/mysql -I/usr/include/mysql -lmysqlclient -lm -lz mod_auth_mysql.c
apxs -i mod_auth_mysql.so

これでmod_auth_mysqlのインストールは完了。

次に設定。
ソースに入っていた「CONFIGURE」というファイルを参考にしつつ設定する。

結果的に出来上がったコンフィグファイルは以下のとおり。

# revarse proxy for http://www.mylocaldomain.com/bugzilla/
LoadModule mysql_auth_module modules/mod_auth_mysql.so
AddModule mod_auth_mysql.c


AuthName "bugzilla authentication"
AuthType Basic
AuthMySQLHost mydbserver.mylocaldomain.com
AuthMySQLDB bugs
AuthMySQLUser bugs
AuthMySQLPassword bugs
AuthMySQLUserTable profiles
AuthMySQLNameField login_name
AuthMySQLPasswordField cryptpassword
AuthMySQLPwEncryption crypt
AuthMySQLEnable On
require valid-user


RewriteEngine On
RewriteLogLevel 1
RewriteLog /var/log/httpd/bugzilla-rewrite.log
RewriteCond %{REQUEST_FILENAME} ^/bugzilla
RewriteRule ^/bugzilla/(.*) http://www.mylocaldomain.com/bugzilla/$1 [P]

詳しい設定の内容はドキュメントなりを見てもらいたいが、
結果的にこれで
bugzillaのユーザーIDとパスワードでベーシック認証をかけ、
認証が通ったユーザーのみmod_rewriteで内部のbugzillaに飛ばすことができた。

ヽ(*´∀`)ノ

簡単に言うと、Apacheのベーシック認証をPostgreSQLのデータベースを使ってやるモジュールだ。
for Apache 1.3.XX http://www.giuseppetanzilli.it/mod_auth_pgsql/
for Apache 2.0.XX http://www.giuseppetanzilli.it/mod_auth_pgsql2/

今回はApache 1.3系なので上のを使った。

後編に続くっ!

ざーっとインストールログ

wget http://www.giuseppetanzilli.it/mod_auth_pgsql/dist/mod_auth_pgsql-0.9.12.tar.gz
tar -zxvpf mod_auth_pgsql-0.9.12.tar.gz
cd mod_auth_pgsql-0.9.12
./configure --with-apxs=/usr/sbin/apxs --with-pgsql-include=/usr/include/pgsql/ --with-pgsql-lib=/usr/lib/
/usr/sbin/apxs -I /usr/include/pgsql/ -L /usr/lib -l pq -o mod_auth_pgsql.so -c mod_auth_pgsql.c auth_pgsql_shared_stub.c  ←ここがmake相当
/usr/sbin/apxs -i -a -n auth_pgsql mod_auth_pgsql.so  ←ここがmake install相当

rpmを使ってpostgresをインストールしている場合はディレクトリ構造が違うので、
--with-pgsql-include と --with-pgsql-lib を使ってincludeのディレクトリとlibのディレクトリをそれぞれ指定してやる必要がある。

次はhttp.confの修正。
※http.confがデフォルトのままだだとうまくmod_auth_pgsql用の設定を挟んでくれるが、
 修正してるといけるか不明です。

インストーラが挟んだLoadModuleの部分はパスが間違っているので修正する。
lib/apache/mod_auth_pgsql.so => modules/mod_auth_pgsql.so

とりあえずこれでOK。

今回は.htaccessでやりたいので、.httaccessを作る。
.htaccessじゃない場合でも同じような内容をhttp.confにに挟んで書けばいけるはず。

作った内容は以下のとおり
AuthName "PostgreSQL Authenticator Test" AuthType basic

Auth_PG_host mydbserver
Auth_PG_port 5432
Auth_PG_user myusername
Auth_PG_database valid_user_db
Auth_PG_pwd_table pg_auth_test
Auth_PG_uid_field user_id
Auth_PG_pwd_field password
Auth_PG_encrypted off

<Limit GET POST>
require valid-user

Auth_PG_encryptedは、暗号化するのが面倒だったのでoffにした。

以上で完了だが、
ドキュメントを読んでると
・Auth_PG_hash_type
・Auth_PG_gid_field
・Auth_PG_pwd_whereclause
等々あり、いろいろ応用効きそうだ。

2ヶ月ほどサボってる間に元から拙い文章がさらに酷くなったぜHAHAHA ||Λ

タグクラウド

このアーカイブについて

このページには、過去に書かれたブログ記事のうちLinuxカテゴリに属しているものが含まれています。

次のカテゴリはSolarisです。

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

OpenID対応しています OpenIDについて
Powered by Movable Type 4.261