Server会社のメール、ずーっとメール転送が出来てませんでした。Webmin(Usermin)から設定しても、何しても、まったく駄目でした。「手動で設定しよう」と、「.forward」を直書きしたりもしたんですが、駄目でした。「757」になっていたので「?」と思いつつ、「755」に設定。したら、メール転送も復活しました。要するに同一サーバ上の他人が改変できるところに置いた「.forward」は、生きない、ということですね。他にも同様の設定ファイルもあるんでしょうねぇ。PHP4.4.9」では、"CGIモード"はおろか"モジュールモード"でも動きませんでした。PHP5では「php5apache2_2.dll」があるんでモジュールモードのときは"httpd.conf"からこいつをロードしてあげればいいわけですが、PHP4.4.9には「php4apache2_2.dll」がありません。「php4apache2_2.dll」をダウンロードできるサイトを紹介しているブログもいくつかありましたが、該当するファイルは削除されてしまったようでしたので、「Apache2.0」へのバージョンダウンで対応。普通、PHPでシステム組むときに共有サーバなんて使いませんよね。当然と言えば当然ですが共有サーバのPHPはCGIモードで、モード切り換えも不可。PHPは、「PHP4」とのこと。CGIモードで動くテスト環境を作ろう、として「はまった」わけです。Binaries)で普通にXPにインストール。server.になっちゃいました。「要するに、Windows上でApache2.2にPHP4.4.9を入れなければいいだけじゃん?」という結論に達したわけです。他にも共有サーバの落とし穴がありそうで怖いです。JavaScript大したネタではないんですが、「へ~」っと思ったのでエントリー。document.getElementById('hoge');と、ID名と、オブジェクト名を同じにすると、IEではエラーになります。Firefoxでデバッグなんですが、Firefoxでは普通に動いてたので、IEで動作確認したときに戸惑いました。横着せずに、hogeObjみたいにちゃんと名前付けなさいよ、と神様が言ってるんでしょうね。ちなみに、"name"属性も同じでした。他のブラウザは確認してませんが、まぁ、それほどの問題でもないので、パス、です。PHPとあるウェブサイトのリニューアルで、次のような問題がありました。リニューアル後、リニューアルするページと、しないページがある。リニューアルしないページの中には、ディレクトリ構成だけが変わる箇所がある。いうことは、各ページからのリンク付けで、「旧ページのままなのに、ディレクトリ(URL)だけ変わるところがある、ということ。みたいな、整理するだけで面倒だなぁ、という問題です。http://www.example.com/new/とかやる訳ですが、これだと、ディレクトリ配下の全ファイルがリダイレクトされてしまいます。今回は、リダイレクトさせたいファイルと、させたくないファイルが有るわけです。(諸般の事情により・・・。)じゃあ.htaccessで、個別のファイルに指定すればいいじゃん、と言われそうですが、これがまた大量で。動的なページも有ったりして。1時間考えた末、PHP、5行で解決しました。Found」向けのページを設定し、そのページをPHPで作る。/404.phpみたいにする。新しいURLのHTMLファイルが存在するかチェック。存在したら、そのページへリダイレクト。存在しなかったら、404のメッセージ(「見つかりません」、とか)を表示。つかりません」のHTML文書。・旧リンクのまま維持するページは、そのまんま。・ディレクトリ構成を変更しちゃったページは、404経由で、リダイレクト。処理を分けることができました。こんな、意味不明なソースは残したくないんですが、完全リニューアルまでの暫定処置として採用しました。これで、泣いてたデザイナー兼コーダーの子の作業が、3日分は節約できたんじゃないか、と。「ああ、プログラムって、こういうことのために有るんだよな」と感慨にふけった日でした。PHPと言いつつ、実はJavaScript、というよりActionScript関連です。Airの、とあるツールを作ってます。自分は彼の作ったAirアプリから、サーバーサイド(PHP)に送信されるデータの処理を担当してます。文字化け防止のために、エンコードして送ってくれました。それ自体は問題ないんですが、何に変換してくれたかというと、JavaScriptにしかない「escape」関数を使ってくれました。(やっぱりASの関数は、基本JavaScriptなんですよね。)うぅ、PHPには「unescape」無いんだよー、「encodeURI」使って欲しかったよー、つっても彼は本当にFlashしか知らないので、仕方がありません。このままでどーにかならないものか、と調べてたら、ちゃんとデコーダを作ってくれた人が居ました。Notes」の中の1人。文字列に"-"(ダッシュ)が含まれると、それ以降が抜けるらしい。Javascriptのescapeに対応したunescape関数のバグというバグもあるらしいので、こちらも参照してみて下さい。何にせよ助かりました。unescape($str);で、デコードされます。PHPローカルで開発して、サーバにアップすると動かない、ってことは良くあります。.htmlな設定のサイトだったんですが、最初にアップした時、「.htaccess」をアップし忘れて、HTML(実体はPHP)ファイルをブラウザがダウンロード(保存)しに行きました。Document」として保存しようとします。)んで、忘れてた「.htaccess」をアップしたんですが、一向にPHPとして処理されません。Apacheの設定変えたり、PHPのバージョンやら環境やらチェックしたり・・・もういい加減いやになってきたころに、他のブラウザで見てみたら、普通に動いてました。なんじゃこりゃ、ってんで、Firefoxの該当するページのキャッシュを消したら、無事解決。動いてないページでも、キャッシュってされてるんですねぇ。Server社内に、10年くらい前に会社が引き受けて設置したらしいWebサーバと、DNSサーバがあります。会社が小さく(今でも充分小さいけど)、幼かったころ(今でも全然成長してないけど)の遺産です。一応UPSが付いてるんですが、ビルごと停電の時とか、当然止まってます。サイトが小規模、ユーザーさんもライトユーザー、ということで今まで放置していたんですが、さすがによろしくないんじゃないかということで、外出しすることにしました。サーバ管理者がメインで作業してるんですが、デザイナがほとんどの我が社では「プログラミングが出来る理系」ってだけで、この辺の作業のお鉢が回って来ます。しゃーないのでやりました。新しいWebサーバのApacheに、移植したいドメインのバーチャルドメイン追加して、そのドメインのドキュメントルートにデータをアップして、DNSの設定を新しいWebサーバのIPアドレスに設定して、、、待ちました。「DNSの設定は、情報が浸透するまで時間がかかります」とは良く聞きますが、設定して、どんだけ待っても新サーバの情報を見に行ってくれない。古いWebサーバを見に行く。(稚拙だけど、新旧それぞれ、ちょっとだけ表示するテキストを変えたんですよ。)なぜ?と思いながらも家に帰って、家から見たら、ちゃんと変わってる!なぜ?会社のDNSサーバだけ仲間はずれにされてるの?ん?会社のDNSサーバ!?そうか!会社から見てるときは、ルータの外に出ないで、ローカルで直接社内DNSを見に行ってるわけか。それで今回設定した社外のDNSの設定が、社内からは反映されないのか。こんなんじゃ面倒ですねぇ。サーバが良く分からないなりに、調べたので、以下にメモ。方法1.外部の関係ないところに設置した、ドメインチェックフォームで確認する要は、外から見ればいいってことで、こういうフォームを作りました。こんなの他所にいくらでも有りますけど、まぁ何事も自分でやってみる、ってことで。今回のドメインも、ちゃんと移設先のサーバで稼働していることが確認できました。方法2.nslookupで調べるいろいろググッたら、「nslookup」とか「dig」とかのコマンドで調べる方法がありましたが、Windowsのプロンプトから使えるのは「nslookup」だけだったので、これでやってみました。仮に、条件を以下とします。192.168.0.1と帰ってきます。bbb.bbb.bbb.bbbとなりまして、やっぱり古いサーバのIPで見に行ってます。ここで、ネームサーバを設定してあげることができるので、「server」で新設のネームサーバを設定してあげます。aaa.aaa.aaa.aaaこれで、「ns.example-new.net」では「www.example.com」に対して、新しいIPアドレス「aaa.aaa.aaa.aaa」が引き当てられているのが見れました。サーバ素人な自分的には、どうもこの内容よりも、「1.」の方が感覚的で、「OK!大丈夫!」な感じが得られました。MovableTypeやっとGoogle君にも引っかかる様になってきて、検索結果を見て忘れ物に気付きました。アーカイブページ!!!テンプレートがあるからページ自体はあるのに、まったく手をつけてなくて、CSSの抜けた、まぁなんとも殺風景なページが存在しておりました。ま、ご愛嬌ってことでさっそくテンプレートを編集(デフォルトをカスタマイズしただけですけど)。月別アーカイブへのリンクのタイトルが「2008年6月」みたいになってます。個人的には、「2008.06」にしたい。右の画像みたいにしたい、ということです。/>の属性をいじればいいのかな~、と思いきや、そんな属性は存在しません。いえば当然(タイトルなんですもんね。アーカイブ自体の持ってるプロパティならなきにしも・・・とは思いますが。)で、どうやったかと言うと、単純でした。/>にするだけでした。このアーカイブ(月別)に含まれるエントリーが「何年何月から始まるのか」を表示してしまえばよかった、ということですね。15:00:28カテゴリ:F1F1キンダーガーデンで、面白い記事を見つけました。欠席したサム・マイケルの代わりに、技術部門の最高責任者であり、チームの創立時代から信頼を寄せられているパトリック・ヘッドが陣頭指揮を取った。そこで最高速に振ったマシンでデータを取る。それをガレージで構えるサム・マイケルに届ける。ウィリアムズは、そこで集積したデータを24日から始まるシルバーストンのテストに投入するのではないか。F1キンダーガーテン:ウィリアムズのレース哲学に期待!?なるほど。高速サーキット連戦に対する戦略の可能性、ですか。現代F1において、1レースをある意味捨ててテストする、ってのは勇気が要りそうですが、目先の成果ではなく先を見た成果を追えるのも、安定したスポンサーを確保しているWilliamsならではじゃないでしょうか。(SuperAguri消滅前は、全戦テストみたいでしたが・・・)だけど自分には、高速サーキットへの対策だけではないような気がします。必然的にメカニカルグリップと、ストレートスピード+ストレートエンドでのブレーキングのスタビリティーが重要になってきます。そこが得意ということはメカニカルグリップは及第点と考え、「ストレートスピード+ブレーキングのスタビリティー」に焦点を絞ってきたんではないでしょうか。渋い!でも、この今回のレースペースに対する分析、Williamsだからこそ、ですね。他のチームだったら、「遅い!」の一言で終わっちゃいそうです。Objectsの中身もデバッグできるみたいです。Objectの一覧が表示されます。modeとエラーが出て、中身が見れません。数少ない書籍(しかも、FCS向け)を熟読するも、そんなことはどこにも書いてません。Serverのリソースをひたすら検索したら、わかりました。基本的に、デフォルトではデバッグ不可になっていたようです。「デバッグモードか確認しろ。」と言ってくれれば、早かったのにorzで、許可する方法ですが、「Application.xml」という設定XMLファイルで行います。/conf/_defaultRoot_/_defaultVHost_」の中にあります。サーバ丸ごとデバッグを許可するなら、こいつの<AllowDebugDefault>false</AllowDebugDefault>を、「true」にして、サーバ再起動。特定のアプリケーションだけ許可するなら、Application.xmlを、そのアプリケーションディレクトリにコピーして、同様に編集するだけ。サーバの再起動が面倒だったので、アプリケーションをリロードだけで行けるかな?と思ったけど、反映されませんでした。」と放っておいて、ブラウザからのテストのコネクションも全部切断、コンソールも終了、で他の仕事して、また戻ってきたら有効になってました。何がトリガーなのか不明ですが、まぁOKってことで。