FC2ブログ
「PC・DB・ゲームなどの覚え書き」のはずがただの雑記帳
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/--(--) --:--:--| スポンサー広告| トラックバック(-) コメント(-)
FTPサーバpam認証でこける(VSFTPD)
VSFTPDインストールでつまらないミス。
VSFTPDをインストールし、ユーザのみがアクセスできるFTPサーバを構築したところ、
認証エラーでログインできない!
------------------
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): root
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.

---------------------------
はじめはpam周りの設定を疑い、vsftpd.confを確認
rpmでインストールした場合、デフォルト設定は
pam_service_name=vsftpd

/etc/pam.d/の中にしっかり”vsftpd”ファイルが出来ており問題は無い。
ftpという名前で以下のようなファイルを作って、pam_service_name=ftpなどに変更して
も状況は変わらない
-------------------
#%PAM-1.0
auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required /lib/security/pam_pwdb.so shadow nullok
auth required /lib/security/pam_shells.so
account required /lib/security/pam_pwdb.so
session required /lib/security/pam_pwdb.so
--------------------------

で、答えとしては、”root”でログインを試していたのが問題!
/etc/vsftpd/ftpusers で指定されているシステムユーザは
userlist_enable=YES
userlist_deny=NO
などのユーザリストとは無関係にログインできない。さらにデフォルト設定らしいので、
vsftpd.confには一切記述なし。
ftpusersで指定されているユーザをコメントアウトするとログイン可能に・・・
スポンサーサイト
geeklog文字化け
とりあえず、DBやPHP(PHP5、マルチバイトでね)の設定がUTF-8にしてあるにもかかわらず2バイト文字が?????な場合は以下のソースをコメントアウト、DB側のデータが狂ってるのでDBを削除後再インストール

非公開領域 system/databases/
mysql.class.php  140行目あたり

if ($this->_mysql_version >= 40100) {
if ($this->_charset == 'utf-8') {
@mysql_query ("SET NAMES 'utf8'", $this->_db);
}
}
WindowsVistaSP1ハングアップ
ブレーカーが飛んで、PCが強制終了した後、ログインできなくなった。

【症状】
・パスワードを入れようとした瞬間ハング
・パスワード入力後”ログインしています”画面が永遠に続く

【対策】
サービスを切り分けていったところ”Windows Search”が原因の為、とりあえずセーフモードで起動のち”msconfig”からサービス起動のチェックをはずす。
WindowsSearch


たぶん、”Windows Search”のインデックスデータみたいなのが壊れていると思うが、調べるのも面倒だし”Windows Search”自体うざいのでこのまま忘れることにする。

てーか、VistaってSP1でましになったとはいえ、なんかいろいろ無駄なOSな気がするな。
またBasic認証でつまずく
二年に一度ぐらいApacheのBasic認証に引っかかり、2時間ほど悩む気がする。
パスワードは間違っているはず無いのにエラーログには"authentication failure for "/" "・・・
サイトOPEN前のアクセス制限ぐらいにしか使わないので原因を忘れるわけだ・・・今回3回目なので、ここに書き残すことにする。

httpd.confとか.htaccessとかはどーでも良いが



AuthUserFile /usr/local/apache/.htpasswd
AuthGroupFile /dev/null
AuthName "Please Enter Your Password"
AuthType Basic
Require valid-user



こんな感じ

問題はパスワードファイルの作り方!!!
Windows版のApache使っているので何となくパスワードの暗号化が出来ないような気がして、そこらのWebページの変換サービスを使ったりするのが間違い。
Windows版にもbinフォルダ内に"htpasswd.exe"があるのでそれでパスワードファイルを作ろう。バージョンによって対応しない暗号方式もあるみたいだし・・・必ずインストールしたApacheに付属のバイナリで!


htpasswd.exe -c c:\pass.txt ユーザ名


みたいな感じで作ろう!

Windows版のApacheを使うのを含め
要は不精は良くないと言うことだ。
geeklog~Windowsへインストール~
geeklog(Ver1.4.1)をインストールしてみた。
Windows環境へのインストール時のメモ

環境
Apache2.2 バージョン2.2.4
PHP5.2.1
MySQL5.0.37

MySQL→Apache→PHP見たいな手順でインストールしたほうがいい。PHPはインストール時のオプションが面倒

とりあえずApacheが入ってることを指定する
PHP_ins1.jpg

PHP_ins2.jpg


あと、エクステンションモジュールとしてMySQLを追加しておく
PHP_ins3.jpg



httpd.confに以下のような感じでモジュールのロードを追加してくれる。
------------------------------------------------
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:\\Program Files\\PHP\\"
LoadModule php5_module "C:\\Program Files\\PHP\\php5apache2_2.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL


インストール完了後“php.ini”で“extension=php_mysql.dll”のコメントをはずす。管理人は、バージョンが変わるたびにこの辺の設定を忘れて悩む!ツーカhttpd.confを書き換えるぐらいなら自動で設定しれ!!

Apacheはいまさら言うまでもないが、httpd.confの190行目あたりの
Options Indexes FollowSymLinks ExecCGI
を追加しておく

後はgeeklogの設定
大体は、オフィシャルサイトのWiki通りですが、オフィシャルだとうまくいかないポイントを、いくつかWindows向けに

1)絶対パスの指定は“C:/XXXXX/YYYYY”見たいな形式でOK

2)config.phpの変更で
50行目“mb_language('Japanese');//(PHP 4 >= 4.0.6, PHP 5)”をコメントアウト

3)340行目あたりの日付表示(インストール後でもいいが)
オリジナルをコメントして以下をコメントアウト(Winだとうまく引っ張ってこられないパラメータがあるんだと思う“?”表示になる)
$_CONF['date'] = '%Y/%m/%d %I:%M %p';

4)あとインストールスクリプトが1.4.1で変わったよう、
~/admin/install/install.php
を叩いてインストール

こんな感じで一応インストールは完了するみたいです。


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。