Tech
FreeBSDのSSH接続でパスワード認証を出来ないようにする
by sinner on 5月.01, 2010, under Tech
![]()
![]()
![]()
![]()
/etc/ssh/sshd_config を編集する。
ChallengeResponseAuthentication no
のように修正。
PasswordAuthenticationをnoにするだけではなぜかパスワード認証が出来てしまっていてなんでだろーと調べまくったことがあって、分からなかったから放置していたんだが、どうやらChallengeResponseAuthenticationを明示的にnoにしなくてはいけないみたいだ。
(当方の環境はFreeBSD 7.2)
PHPでmb_convert_encoding()でSJISから変換するときは”sjis-win”を使え
by sinner on 4月.28, 2010, under Tech
![]()
![]()
![]()
![]()
Twitterでパ・リーグ予告先発BOT「@npb_yokoku」を運営しているというと大げさだが、まあ地道にFollowersを増やしていてパ・リーグファンの皆さんのお役にたっていると自負している今日この頃だが、最近見てみると、福岡ソフトバンクホークスの髙橋秀選手の「髙」が「?」に文字化けしている問題が起こっているのが分かった。Webだと見にくいけど、「髙」は俗に言う「はしごたか」の「髙」だ。
なんでだろー?と小一時間調べて、原因が分かった。
パ・リーグ公式の予告先発発表ページはShift_JISで書かれているので、取得したHTMLをPHPのmb_convert_encoding()でUTF-8に変換していた。コードは以下。
// cleanString()とgetHTTPResponseBody()はオリジナルの関数
$body = cleanString(mb_convert_encoding(getHTTPResponseBody(), "UTF-8", "SJIS"));
デバッグしてみると、$bodyにはすでに文字化けた状態で文字列が入っていた。更に調べると、mb_convert_encoding()のとこですでに化けていた。php.iniの設定は、
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = Off
mbstring.detect_order = auto
mbstring.substitute_character = none;
で特に問題はない。
ググってみると、どうやらShift_JISの旧字体や特殊文字を扱う場合はmb_convert_encoding()の第三引数には”SJIS”ではなく、”sjis-win”を指定するとよいらしい。
これで文字化けしなくなった。
つか、PHPのサポートしている文字コードには確かに”SJIS-win”というものがあったが、正直知らなんだ。SJISを指定する場合でWindows拡張文字を扱う際に使うものらしい。
via [php] mb_convert_encoding と UTF-8 の誤変換問題
via PHP: サポートされる文字エンコーディング – Manual
via -OASIS- – 今日のメモ「mb_convert_encodingの文字化け(PHP)」
高橋投手は今日も好投したようで来週また先発の機会があると思うんで、その時ははしごたかでちゃんと表記されると思います。
コマンド実行結果のdiffをとる方法(bash, zsh)
by sinner on 4月.07, 2010, under Tech
![]()
![]()
![]()
![]()
ファイルの差分をとるdiffコマンドはおなじみだけど、コマンドの実行結果の差分をとる場合は以下のようにする。
なんでこれが必要になったかと言うと、SSL認証鍵の整合性を確認するのに、
とかやりたかったから。シェルスクリプトとかのデバッグにも使えそうですね。
RedmineとGitの連携で「リポジトリに、エントリ/リビジョンが存在しません」と出た時の対処法
by sinner on 4月.01, 2010, under Tech
![]()
![]()
![]()
![]()
Apacheのエラーログを見ると、
git: not found
とかあったので実行ユーザにおいてGitへのパスが通っていない模様。
/path/to/redmine/lib/redmine/scm/adapters/git_adapter.rb
を以下のように編集する。(24行目から)
# GIT_BIN = "git"
GIT_BIN = "/usr/local/git/bin/git"
編集後、Apache再起動でうまくいった。
PHPのGDライブラリが警告を出していたので鎮めた
by sinner on 4月.01, 2010, under Tech
![]()
![]()
![]()
![]()
パ・リーグ予告先発BOTはPHPで実装しているんだけど、実行時に必ず以下のエラーを吐いていた。(OSはFreeBSD 7.2 Release)
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/lib/php/20060613/gd.so’ – Shared object “libjpeg.so.10″ not found, required by “gd.so” in Unknown on line 0
GDのライブラリがlibjpeg.so.10が無いぞと怒っていらっしゃった。
/usr/local/libを見てみると
確かにlibjpeg.so.11とかlibjpeg.soはあるが、libjpeg.so.10がない。
libjpeg.so.11へのシンボリックリンクを貼ろうかと思ったが、なんか邪道な気がしたので、以下の手順で関連モジュールを再インストールした。
- /usr/local/graphics/jpeg
- /usr/local/graphics/png
- /usr/local/graphics/gd
- /usr/local/graphics/php5-gd
すると警告が消えた。
順番って大事だー。







