symfonyレイアウトの崩れ

Posted by ゆのじ on 5月 4th, 2008

またもやsymfonyネタ。

symfonyのadmin generatorは便利だが、どうもレイアウトの崩れが気になって仕方がない。例えば下記のような崩れが見受けられる。

previous previous2

左はadminのチェックボックスだけ右に3pxほどずれているし、右は項目をまとめるborderがずれている。どうしても気になって仕方がなかったのでCSSを直すことにした。直すためのcssは下記のような感じ。これをmain.cssあたりで読んでやればいい。

* html #sf_admin_container div.form-row
{
  zoom: 100%;
}

#sf_admin_container div.form-row:after
{
  content: " "; clear: both; height: 0; display: block; visibility: hidden;  
}

#sf_admin_container div.form-row .content
{
  padding-left: 0px;
  float: left;
}

結果、下記のようになり、きれいに表示されるようになる。

after after2

 やっていることは簡単。どうもきちんとチェックボックスが並ばないのは、label要素の右にdivがあってその中の要素、がどうもずれるらしい。力業だが、label要素の右にくるdivもfloat:leftで積んでしまえばこのズレは正常に処理されるようになる。これがcssの3つめのブロックでの指定。

 だがこれだと、上で項目ごとのborderがずれると指摘した問題、これがさらにひどくなって全部の項目で中身がborderから外れる。これはdivの中身がfloatしかないと、divの範囲の外に中身がはみ出るよ、という問題で割とよく知られている。
 どう対処するかというと、clearfixとか言われている方法をとる。今回やってるのはどうせ内部用でしか使わない部分なので(admin generatorで外部向けアプリはつくらんよね?)、validでないことはあまり気にしない。(cssの1つめのブロックにあるzoomはIE用、後ろのafterはその他ちゃんとcssを解釈するブラウザ用。情報源はこの辺)。これできちんと表示された。

 これだけでも開発のモチベーションがあがるかもしれない。誰も困っていないのか、ウェブ上では同じような情報はすぐには見あたらなかった。もし既知の問題だったり似たようなレポートがあればコメントで教えていただければ幸い。

postfixを送信専用に@Fedora8

Posted by ゆのじ on 5月 1st, 2008

そろそろFedora9が出るらしいということで、Fedora8からFedora9へのupgrade方法を調べつつ、今日はFedora8でのpostfixインストール。色々組み合わせてバーチャルホストを構成するというネタは後日やるとして今回は送信専用。スクリプト側からバルク送信することも考えて、遅延送信処理も含める。

■インストール

# yum install postfix

■標準MTAの変更

# alternatives --config mta
There are 2 programs which provide 'mta'.   Selection    Command
-----------------------------------------------
*+1           /usr/sbin/sendmail.sendmail
  2           /usr/sbin/sendmail.postfix 
Enter to keep the current selection[+], or type selection number: 2

■sendmailの自動起動を止める

# chkconfig sendmail off

■postfixの自動起動を設定

# chkconfig postfix on

■smtp/relayで動かないように設定

# vi /etc/postfix/master.cf
#smtp      unix  -       -       n       -       -       smtp
# When relaying mail as backup MX, disable fallback_relay to avoid MX loops
#relay     unix  -       -       n       -       -       smtp

■自ホストのFQDN設定と遅延送信設定

# vi /etc/postfix/main.cf
myhostname = mail.example.com
defer_transports = smtp (追記)

■設定確認

# service postfix check

■sendmailサービス停止

# service sendmail stop

■postfixサービス開始

# service postfix start

追記(5/2):どうもまだこれだけだと遅延送信の確認が出来ていない。後で調べて追記する。

追記(5/5):smtp/relayを殺したらうまくいくはずないよなJK、というわけでその設定はしてはイケナイ。これで遅延送信ができるようになるので、下記の設定を追加。

■sendmail -qで適宜キューの中身を送信

# vi /etc/cron.d/mailqueueflush
* * * * * /usr/sbin/sendmail.postfix -q

間隔は環境ごとに必要十分な値を検討したほうが良いし、出来れば必要な送信処理が終わるごとに呼んだ方が良いように思う。それと、この設定でどれくらいのパフォーマンス変化があるかは検討を要するところなので、仕事なら事前に評価する必要がある。

pearネタいくつか

Posted by ゆのじ on 4月 30th, 2008

最近ずっと技術ネタを書いていなかったが、ちょっとだけ自分メモに。

Services_Amazon

ECSなんかからデータを取ってくるやつ。stabilityはbeta扱いなのでwarningが出るけど気にしない。一番楽なのはこんな感じ。

# pear install -f Services_Amazon

-fはインストール済みのパッケージで新しいものが出ていたら上書き、というオプション。不要なら付けなくてもいいかも。amazon_ecs4も一緒に入る。

Text_CAPTCHA

こっちはServices_Amazonより一手間追加。preferred stateがalpha(非安定版)なので、いちいち定義してやらないと駄目っぽい。考えてみれば上と同じように-fしてやれば強制的に入れられたかもしれない。

# pear config-set preferred_state alpha
# pear install -f Text_CAPTCHA
# pear config-set preferred_state stable

とりあえずインストールしたら戻しておこう。

あれこれフレームワークを使うにしても、phpを使うならやはりpearライブラリ群は使っておくと楽なので、この辺は一応押さえておきたい。