もさもさくん
http://mosa.nubobo.net/
2009年7月27日月曜日
2009年4月23日木曜日
WordPressの画像縮小にImageMagickを使う方法
WordPressの画像縮小はデフォルトでGDというライブラリを用いているようですが、お世辞にも綺麗とは言えません。
画像縮小に定評のあるLanczosというアルゴリズムが使えたら綺麗になるんではなかろうかと考えました。
ImageMagickという画像操作ツールのconvertコマンドの画像リサイズではデフォルトでLanczosが使われるそうです。
個人的にconvertコマンドはブログアップロード前に縮小する際によく使います。
WordPressでImageMagickを使う方法を探してみたらパッチを公開しているサイトを発見。
Wordpress patches | land of bile
wp-include/media.phpにこのパッチを当ればOK! どうやらimage_resize()を書き換えているようです。
convertコマンドのパラメータいじくりたかったら付け加えましょう。
画像縮小後の画像が綺麗になっている気がする~。
ちなみにPHPよりImageMagickを使う方法の一つにPECL::Imagickというライブラリもあります。
当初それを使おうと頑張ってインストールまでしましたが、細かいパラメータが変更できなそうだったのでやめました。
おそらくPECL::Imagickを使った方がコードは綺麗になる気がしますが、インストールが面倒だったような気がします。
画像縮小に定評のあるLanczosというアルゴリズムが使えたら綺麗になるんではなかろうかと考えました。
ImageMagickという画像操作ツールのconvertコマンドの画像リサイズではデフォルトでLanczosが使われるそうです。
個人的にconvertコマンドはブログアップロード前に縮小する際によく使います。
WordPressでImageMagickを使う方法を探してみたらパッチを公開しているサイトを発見。
Wordpress patches | land of bile
wp-include/media.phpにこのパッチを当ればOK! どうやらimage_resize()を書き換えているようです。
convertコマンドのパラメータいじくりたかったら付け加えましょう。
画像縮小後の画像が綺麗になっている気がする~。
ちなみにPHPよりImageMagickを使う方法の一つにPECL::Imagickというライブラリもあります。
当初それを使おうと頑張ってインストールまでしましたが、細かいパラメータが変更できなそうだったのでやめました。
おそらくPECL::Imagickを使った方がコードは綺麗になる気がしますが、インストールが面倒だったような気がします。
2009年4月21日火曜日
Apacheのアクセスログを日付別に分割する:mod_log_rotate
AWStats等のアクセスログ解析のためにApacheのアクセスログを日付別に分割したい場合がある。今まではパイプでcronologを使って分割パイプで使用していたが、なんだか怪しい気がしていた。
Apacheのモジュールで存在しないか探してみたところ発見した。
Mod-log-rotate - Hexten
mod_log_rotateをCentOS 5.2にインストールしたときのメモ
◆ダウンロード
◆インストール
※apxsコマンドがない場合はhttpd-develをインストールする
◆設定(/etc/httpd/conf/httpd.conf)
おそらくこれは上記インストール時に追加される。
◆設定(/etc/httpd/conf.d/ssl.conf)
ssl_access_log部分の変更
◆Apache設定再読み込み
問題点としては/var/log/httpd/の権限がデフォルトでroot:rootの700となっているが、これだと新規ファイルが書き込めずエラーとなってしまうらしい。ひとまずapacheが動作しているユーザ(デフォルトapahce)に変更した。
<参考>
・mod_log_rotate がよさげかも - (ひ)メモ
・mod_log_rotate のススメ
Apacheのモジュールで存在しないか探してみたところ発見した。
Mod-log-rotate - Hexten
mod_log_rotateをCentOS 5.2にインストールしたときのメモ
◆ダウンロード
$ wget http://hexten.net/assets/apache2/mod_log_rotate.c
◆インストール
# apxs -i -a -c mod_log_rotate.c
※apxsコマンドがない場合はhttpd-develをインストールする
# yum install httpd-devel勝手に/etc/httpd/conf/httpd.confも書き換わるっぽい。
◆設定(/etc/httpd/conf/httpd.conf)
おそらくこれは上記インストール時に追加される。
LoadModule log_rotate_module /usr/lib64/httpd/modules/mod_log_rotate.so下記を追加する。
RotateLogs OnCustomLog部分の変更。日付別の形式とする。
RotateLogsLocalTime On
#CustomLog logs/access_log
combined CustomLog "logs/access_log.%Y%m%d" combined
◆設定(/etc/httpd/conf.d/ssl.conf)
ssl_access_log部分の変更
#TransferLog logs/ssl_access_logssl_request_log部分の変更
CustomLog "logs/ssl_access_log.%Y%m%d" combined
#CustomLog logs/ssl_request_log \
# "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
CustomLog "logs/ssl_request_log.%Y%m%d" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
◆Apache設定再読み込み
# service httpd reloadこれでOK。日付別のログが作成されていると思う。
問題点としては/var/log/httpd/の権限がデフォルトでroot:rootの700となっているが、これだと新規ファイルが書き込めずエラーとなってしまうらしい。ひとまずapacheが動作しているユーザ(デフォルトapahce)に変更した。
# chown apache:apache /var/log/httpdもっと良い方法があれば、誰か教えてください。
<参考>
・mod_log_rotate がよさげかも - (ひ)メモ
・mod_log_rotate のススメ
2009年4月15日水曜日
Rubyを使ってTwitterに投稿する
RubyGemsにTwitterというライブラリを使うと簡単にできる。
Ruby Twitter Gem by John Nunemaker
まずインストールする。
サンプルコード twitter.rb
こんな感じでコマンドライン引数にメッセージを渡すと投稿できる。
Ruby Twitter Gem by John Nunemaker
まずインストールする。
# gem install twitter
サンプルコード twitter.rb
#!/usr/local/bin/ruby
require 'rubygems'
require 'twitter'
message = $*.first
httpauth = Twitter::HTTPAuth.new('userid', 'password')
base = Twitter::Base.new(httpauth)
base.update(message)
こんな感じでコマンドライン引数にメッセージを渡すと投稿できる。
$ ruby twitter.rb てすてすてす
2009年4月2日木曜日
CentOS 5.3がようやくリリース
されたみたい。yum updateが凄いことになっているなぁ。
http://www.centos.org/
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS5.3/Japanese
http://www.centos.org/
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS5.3/Japanese
2008年10月21日火曜日
ソーシャルブックマークツール scuttleを設置するメモ
試しにscuttle0.7.4をCentOS4.xにインストールしてみる。
http://sourceforge.net/projects/scuttle/
予めmysqlのscuttle用のデータベース及びユーザを作成しておくことにする。
ダウンロードして解凍して/var/www/html/に移動してリネーム。
config.inc.php.exampleをコピーしてconfig.inc.phpを作る。そんで編集。
MySQLのDBの設定とロケールを日本語にする。
table.sqlを実行してmysql上にテーブルを作成する。
ここまで正常に出来ていればブラウザで/scuttle/にアクセスすればOK。
トップページの右上の辺りにある「登録する」からユーザ登録する。
管理者ユーザも一般ユーザも区別ないっぽいね。でもシンプルな感じが好印象です。
http://sourceforge.net/projects/scuttle/
予めmysqlのscuttle用のデータベース及びユーザを作成しておくことにする。
$ mysql -u root -p
mysql> create database scuttle_db default charset utf8
mysql> grant all on scuttle_db.* to scuttle_user@localhost identified by 'scuttle_pwd';
mysql> flush privileges;
ダウンロードして解凍して/var/www/html/に移動してリネーム。
$ wget "http://downloads.sourceforge.net/scuttle/scuttle.0.7.4.zip?modtime=1215888540&big_mirror=0"
$ unzip scuttle.0.7.4.zip
$ mv scuttle\ 0.7.4 /var/www/html/scuttle
config.inc.php.exampleをコピーしてconfig.inc.phpを作る。そんで編集。
$ cd /var/www/html/scuttle
$ cp config.inc.php.example config.inc.php
$ vi config.inc.php
MySQLのDBの設定とロケールを日本語にする。
$dbuser = 'scuttle_user';
$dbpass = 'scuttle_pwd';
$dbname = 'scuttle_db';
...
$locale = 'ja_JP';
table.sqlを実行してmysql上にテーブルを作成する。
$ mysql -u root -p scuttle < tables.sql
ここまで正常に出来ていればブラウザで/scuttle/にアクセスすればOK。
トップページの右上の辺りにある「登録する」からユーザ登録する。
管理者ユーザも一般ユーザも区別ないっぽいね。でもシンプルな感じが好印象です。
2008年7月28日月曜日
Railsで"rake db:migrate"すると"No such file or directory - /tmp/mysql.sock"というエラーが出る
mysql.sockが見つけられないというエラー。railsがmysql.sockのパスを認識できなかった場合にデフォルトの"/tmp/mysql.sock"を探しに行くために発生する模様。どうやらrailsインストール時にmysqlがインストールされていない場合に出るとのこと。
"config/database.yml"に"socket: /var/lib/mysql/mysql.sock"のようにmysql.sockの正しいパスを付け加えれば動作するのだが毎回していするのはめんどい。
あとは/tmpにシンボリックリンクを作るという手もあるらしい。。
実際行った対処はRubyGemsでrails関連を再インストール(uninstallしてinstall)した後にrailsコマンドでアプリを作り直したところ
"config/database.yml"に"socket: /var/lib/mysql/mysql.sock"と付くようになり"rake db:migrate"も成功するようになった。どうやらrailsが正しいパスを認識してくれたようですね。
"config/database.yml"に"socket: /var/lib/mysql/mysql.sock"のようにmysql.sockの正しいパスを付け加えれば動作するのだが毎回していするのはめんどい。
あとは/tmpにシンボリックリンクを作るという手もあるらしい。。
# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
実際行った対処はRubyGemsでrails関連を再インストール(uninstallしてinstall)した後にrailsコマンドでアプリを作り直したところ
"config/database.yml"に"socket: /var/lib/mysql/mysql.sock"と付くようになり"rake db:migrate"も成功するようになった。どうやらrailsが正しいパスを認識してくれたようですね。
2008年7月17日木曜日
ウィルスバスターでVMwareのブリッジネットワークが使えない件
会社の開発PCにはウィルスバスター2008が入っているのだけどパーソナルファイアウォールが有効になっていると、VMware Sereverのゲストからブリッジ接続で外部にアクセスが出来なくなってしまった。
パーソナルファイアウォールを無効にすれば使えるようになるのだけど。それもアレなんで色々試してみるも例外設定でプログラムやIPとか指定してやってみてもうまくいかない。。
調査してみたところ、例外ルール(プロトコル)のWebサービス (HTTP)とSecure Webサービス (HTTPS)を有効にしたら繋がるようになった。しかしこれだと多分HTTPとHTTPSだけなんだろうか? 試していないがひとまずはこれでOKなので必要なポートが出てきたら開けるかな。
<参考>
http://nekomata-nyaosuke.moe-nifty.com/detekoi/2007/01/2007vmware_baef.html
パーソナルファイアウォールを無効にすれば使えるようになるのだけど。それもアレなんで色々試してみるも例外設定でプログラムやIPとか指定してやってみてもうまくいかない。。
調査してみたところ、例外ルール(プロトコル)のWebサービス (HTTP)とSecure Webサービス (HTTPS)を有効にしたら繋がるようになった。しかしこれだと多分HTTPとHTTPSだけなんだろうか? 試していないがひとまずはこれでOKなので必要なポートが出てきたら開けるかな。
<参考>
http://nekomata-nyaosuke.moe-nifty.com/detekoi/2007/01/2007vmware_baef.html
Firefox 3.0.1でTab Mix Plusが使えない件
Sleipnirから移行組の私としてはタブ関連拡張のTab Mix PlusがないとどうもFirefoxを使う気がしません。
この拡張はFirefox 3.0には正式に対応していないので下記の開発版の「tab_mix_plus-0.3.6.1.080416.xpi」を使っていました。
http://tmp.garyr.net/dev-builds/
しかし本日Firefox 3.0.1にアップデートしたところTab Mix Plusが使えなくなってしまいました。。orz
本来は正式に対応してもらいたいところだけど、仕方ないので下記で公開しているファイルを使わせていただき使えるようになりました。多謝!
http://mozilla-ext-ja.way-nifty.com/blog/2008/07/tab_mix_plus_de_e3b9.html
この拡張はFirefox 3.0には正式に対応していないので下記の開発版の「tab_mix_plus-0.3.6.1.080416.xpi」を使っていました。
http://tmp.garyr.net/dev-builds/
しかし本日Firefox 3.0.1にアップデートしたところTab Mix Plusが使えなくなってしまいました。。orz
本来は正式に対応してもらいたいところだけど、仕方ないので下記で公開しているファイルを使わせていただき使えるようになりました。多謝!
http://mozilla-ext-ja.way-nifty.com/blog/2008/07/tab_mix_plus_de_e3b9.html
2008年7月16日水曜日
VMwareで2GB毎に分割された仮想ディスクを一つにまとめる
VMware Converterで物理マシンから仮想マシンファイルに変換した時の話。
変換しようとしたら空いているドライブがなかったので出力先をSambaの共有フォルダを指定したところ、ディスクのオプションの辺りで"Split disk into 2GB files"のチェックが外せない状態となっていた。
怪しいと思いつつもチェックを外すことができなかったのでそのまま変換してみたところ仮想ディスク(*.vmdk)が2GB以下のファイルに分割されて複数作成されてしまった。。
分割されたままでも動くのだろうけど、気分的に嫌なので1つにまとめることに。
しばらく待たされた後に結合された仮想ディスクファイルが作成された。
<参考>
http://www.networld.co.jp/vmware/tech/dis028.htm
変換しようとしたら空いているドライブがなかったので出力先をSambaの共有フォルダを指定したところ、ディスクのオプションの辺りで"Split disk into 2GB files"のチェックが外せない状態となっていた。
怪しいと思いつつもチェックを外すことができなかったのでそのまま変換してみたところ仮想ディスク(*.vmdk)が2GB以下のファイルに分割されて複数作成されてしまった。。
分割されたままでも動くのだろうけど、気分的に嫌なので1つにまとめることに。
$ vmware-vdiskmanager -r server.vmdk -t 0 server_new.vmdkserver.vmdkが分割された仮想ディスク。server_new.vmdkが結合後の仮想ディスク。
しばらく待たされた後に結合された仮想ディスクファイルが作成された。
<参考>
http://www.networld.co.jp/vmware/tech/dis028.htm
2008年7月15日火曜日
VMware上のCentOS5で時計がずれる件
VMware上で動かすCentOS5.2で時計がずれまくります。
以前CentOS4.xで同じ現象を確認したことがあるけど5.xになってもまだ治っていなかったんか。
まずは下記などを参考に
http://webos-goodies.jp/archives/50179807.html
/boot/grub/grub.confを編集してカーネルオプションに「clock=pit nosmp noapic nolapic」を付けてみる。
リブート後、以前よりずれが収まった気がするがまだ微妙にずれているのでcronジョブでntpdateを動かすことにした。とりあえず1時間おきくらいで良いだろう。
/etc/cron.hourly/ntpdate.cronを作成。
実行権限を与えて完了
以前CentOS4.xで同じ現象を確認したことがあるけど5.xになってもまだ治っていなかったんか。
まずは下記などを参考に
http://webos-goodies.jp/archives/50179807.html
/boot/grub/grub.confを編集してカーネルオプションに「clock=pit nosmp noapic nolapic」を付けてみる。
kernel /vmlinuz-2.6.18-92.1.6.el5 ro root=LABEL=/ rhgb quiet clock=pit nosmp noapic nolapic
リブート後、以前よりずれが収まった気がするがまだ微妙にずれているのでcronジョブでntpdateを動かすことにした。とりあえず1時間おきくらいで良いだろう。
/etc/cron.hourly/ntpdate.cronを作成。
#!/bin/sh
/usr/sbin/ntpdate ntp.jst.mfeed.ad.jp > /dev/null
実行権限を与えて完了
$ chmod +x ntpdate.cron
WordPressでリバースプロキシすると無限ループする
外部公開しているapacheからLAN内の別サーバのWordPress 2.5.1にリバースプロキシしたところFirefox 3で「自動転送がループしています」というエラーが出て表示されない。どうやらリダイレクトが無限ループしてるっぽい。
調査したところWordPress 2.3からカノニカルURL(標準URL)なる機能が搭載され、設定されたURLと異なる場合に正しいURLにリダイレクトするような機能がついているらしい。どうもこいつが悪さしているようだ。
おそらく下記のようになっているのではないか?
http://trac.wordpress.org/ticket/5089
これにあまり時間も掛けられないので、ひとまず下記の「Disable Canonical URL Redirection」というプラグインにてカノニカルURL機能を無効にするという対処を行った。
http://txfx.net/files/wordpress/disable-canonical-redirects.phps
できればカノニカルURL機能は使えた方が良いんだけどねぇ。良い方法を知っている方がいたら教えてください。
調査したところWordPress 2.3からカノニカルURL(標準URL)なる機能が搭載され、設定されたURLと異なる場合に正しいURLにリダイレクトするような機能がついているらしい。どうもこいつが悪さしているようだ。
おそらく下記のようになっているのではないか?
- クライアントからグローバル名でapacheに接続
- apacheのリバースプロキシでLAN内の別サーバに内部IPでリバースプロキシ
- WordPressは内部IPを設定したURLと異なると判断しグローバル名にてリダイレクトする
- apacheのリバースプロキシでLAN内の別サーバに内部IPでリバースプロキシ
- ・・・繰り返しで無限ループ。。
http://trac.wordpress.org/ticket/5089
これにあまり時間も掛けられないので、ひとまず下記の「Disable Canonical URL Redirection」というプラグインにてカノニカルURL機能を無効にするという対処を行った。
http://txfx.net/files/wordpress/disable-canonical-redirects.phps
できればカノニカルURL機能は使えた方が良いんだけどねぇ。良い方法を知っている方がいたら教えてください。
VMware Server起動時に「511 Error connecting to ...」というエラーが出る件について
この問題は少しハマったけど解決したのでメモっておく。
いつからか開発用PCのVMware Server 1.0.6 (for windows) のVMware Server Consoleを起動しLocalhost接続時に下記のようなエラーが出て接続できない場合があった。
「511 Error connecting to C:\Program Files\VMware\VMware Server\vmserverdWin32.exe process.」
この状態でVMware Server 2.0 RC1を入れてみたところ、コンソールウィンドウを開いた時に下記のようなエラーメッセージが出てコンソールが表示されない。でもゲストOSの電源は入っている状態な模様。
「Unable to connect to the MKS: Error connecting to C:\Program Files\VMware\VMware Server\vmware-vmx.exe process..」
ネットで色々調べてみたところ下記を発見。
http://communities.vmware.com/message/582758;jsessionid=9D39740F220B9E9005700E7A70402F37
これに書いている通りNet Logonサービスを起動させてみたところあっさり治りました。 ついでに手動になっていたのを自動にしておいた。
VMware server 2.0 RC1も同様に治った。
VMware server 2.0 RC1についてはWeb管理画面がメインとなったが、コンソール画面を立ち上げるのに時間がかかったり、使い勝手が自分的にイマイチなのでしばらく1.0系を使うこととします。
いつからか開発用PCのVMware Server 1.0.6 (for windows) のVMware Server Consoleを起動しLocalhost接続時に下記のようなエラーが出て接続できない場合があった。
「511 Error connecting to C:\Program Files\VMware\VMware Server\vmserverdWin32.exe process.」
この状態でVMware Server 2.0 RC1を入れてみたところ、コンソールウィンドウを開いた時に下記のようなエラーメッセージが出てコンソールが表示されない。でもゲストOSの電源は入っている状態な模様。
「Unable to connect to the MKS: Error connecting to C:\Program Files\VMware\VMware Server\vmware-vmx.exe process..」
ネットで色々調べてみたところ下記を発見。
http://communities.vmware.com/message/582758;jsessionid=9D39740F220B9E9005700E7A70402F37
これに書いている通りNet Logonサービスを起動させてみたところあっさり治りました。 ついでに手動になっていたのを自動にしておいた。
VMware server 2.0 RC1も同様に治った。
VMware server 2.0 RC1についてはWeb管理画面がメインとなったが、コンソール画面を立ち上げるのに時間がかかったり、使い勝手が自分的にイマイチなのでしばらく1.0系を使うこととします。
登録:
投稿 (Atom)
