FreeBSD で Apache2 + PHP5 [PHP]
今、手元で試せないけど、以下のような感じ・・・でいいのか?
後々のためにメモ。
/etc/make.conf に
WITH_APACHE2=yes
DEFAULT_PHP_VER=5
しておいて
# cd /usr/ports/www/mod_php5/
# make install
httpd.conf の中
LoadModule php5_module libexec/apache2/libphp5.so AddHandler php5-script .php
(参考)
http://mimori.org/~h/tdiary/20050207.html#p02
PHP のクラスライブラリ、テンプレートエンジン、フレームワーク [PHP]
なんだかいろいろあるなぁ
【PEAR】
http://php.s3.to/tt/pear.php
http://www.php-j.com/tutorial/php/pearDB.php
http://www.amazon.co.jp/exec/obidos/ASIN/4798109592/250-1108649-2079432
Ajaxツールキットっつーのもある
http://itpro.nikkeibp.co.jp/article/COLUMN/20051023/223253/?P=2
【PDO】
PHP5.1 から標準でバンドルされる PEAR DB のテイティブ版みたいなやつ
Perl で言うと DBI みたいなやつ
「初めての PHP5」でも、日本語版に説明がちょっと説明されてる。
http://labs.cybozu.co.jp/blog/hata/archives/2005-10-04-1.html
http://www.doyouphp.jp/php5/php5_pdo.shtml
5.1以降ならこれを使えってことなんだろう
【Smarty】テンプレートエンジン
Flickr っていうので使っているらしい
http://phpspot.org/blog/archives/2005/09/flickr.html
http://www.amazon.co.jp/exec/obidos/ASIN/4798108839/250-1108649-2079432
http://www.gadgety.net/shin/tips/unix/php-tmpl.html
http://sunset.freespace.jp/smarty/
【Mojavi】っていうフレームワークもいいみたい
http://iteman.typepad.jp/blog/files/hustling-mojavi.html
http://mojavi.net/
http://www.mojavi.org/
こういうのは、どんなにいいものでも、みんなが使わなければ意味がないので、
機能よりも、「今後はやりそうか」をよく検討しないといけないのがつらい。
そういう意味では、PEAR, Smarty はいいとして、Mojavi は微妙?
PHP4 と PHP5 の違い [PHP]
PHP5 の入門書を読んだので、PHP5 からさかのぼって PHP4 についてちょっとだけ勉強。
http://www.atmarkit.co.jp/flinux/special/php5/php5a.html
http://www.atmarkit.co.jp/flinux/special/php5/php5b.html
オブジェクト指向の機能など PHP5 で追加された機能はあるけど、PHP4と比べて、下位互換性がなくなっているところで一番大きいのは、オブジェクトの入っている変数の代入文で
$var2 = $var1;
とすると、PHP4 では値渡し、PHP5 では参照渡しになっているところ。
PHP5 で値渡しにしたい場合は __clone() というメソッドを呼ぶ
$var2 = $var1->__clone();
PHP4 で、参照渡しにしたい場合は
$var2 =& $var1;
Java と挙動が同じになるようになったけど、これって影響大きすぎない・・・と思ったら
zend.ze1_compatibility_mode = On にすると、上記のPHP5 での挙動が PHP4 と同じになるらしい
http://itpro.nikkeibp.co.jp/members/ITPro/oss/20040401/1/
しかし、これを使うと PHP4 でも PHP5 でもない代物になりそう。
その他の下位互換性のない変更点(そうそう、この情報が欲しかった)
http://www.php.net/manual/ja/migration5.incompatible.php
PHP6 では UNICODE 対応らしい
http://itpro.nikkeibp.co.jp/article/COLUMN/20050917/221333/?ST=itpro_print
http://itpro.nikkeibp.co.jp/article/COLUMN/20050917/221333/?SS=imgview&FD=2638409
やっぱり、おじさんにはこのスピードにはついていけないかも・・・
PHP4.4.1 を Windows + Apache2 にインストール(その2) [PHP]
http://blog.so-net.ne.jp/nakagami/2005-11-09-2 のつづき
メールを送信すると、 SquirrelMail のサブジェクトが文字化けするのが直ってない
http://sanguine.jp/pipermail/squirrelmail-users/2005-September/001454.html
マルチバイトでコンパイル済みの PHP バイナリをインストールしてみた
0. http://blog.so-net.ne.jp/nakagami/2005-11-09-2 の設定をベースに
1. http://www.geocities.jp/rui_hirokawa/php/win/ からダウンロードしてコピー
2. dll フォルダにある libmbfl.dll を C:\Windows\System32 にコピー
3. php.ini の 「extension=php_mbstring.dll」の行をコメントアウト
まぁ、上の文章を参考にするより、アーカイブに入ってる install-ja.txt を読んだほうがいいです。
結果、メッセージヘッダーの文字化けは、まだ直ってません・・・うーむ。
私の環境依存かもしれませんが、疲れたので PHP のインストールはとりあえず中断。
PHP4.4.1 を Windows + Apache2 にインストール [PHP]
少し前に、 Windows に PHP 4.4.0 をインストールしたが、
http://blog.so-net.ne.jp/nakagami/2005-09-29
4.4.1 が出たので試して・・・ みてはまったので、インストールの手順を逐一書いておくことにしておくことにする。
Apache2 のインストールは、出来ているとして
# Apache2 のインストールは http://blog.so-net.ne.jp/nakagami/2005-09-29 を参照
# してもいいけど、インストーラーでインストールすればいい
【1.ファイルの展開&コピー】
↓PHP 4.4.1 zip package をダウンロードしてきて展開&コピー(以下の例では D:\PHPにコピー)
http://www.php.net/downloads.php
【2.DLL のコピー】←これを忘れて大変はまった
D:\PHP\php4ts.dll を C:\Windows\System32 にコピー
【3.Apache2 の httpd.conf の記述(関係部分)】
LoadModule php4_module D:/PHP/sapi/php4apache2.dll AddType application/x-httpd-php .php
【4.php.ini の php.ini-dist との差分】php.ini は C:\Windows にコピー
94c94 < output_buffering = Off --- > output_buffering = On 106c106 < ;output_handler = --- > output_handler = mb_output_handler 400c400 < ;default_charset = "iso-8859-1" --- > default_charset = Shift_JIS 428c428 < extension_dir = "./" --- > extension_dir = "D:\PHP\extensions\" 541c541 < ;extension=php_mbstring.dll --- > extension=php_mbstring.dll 1043c1043 < ;mbstring.language = Japanese --- > mbstring.language = Japanese 1048c1048 < ;mbstring.internal_encoding = EUC-JP --- > mbstring.internal_encoding = EUC-JP 1051c1051 < ;mbstring.http_input = auto --- > mbstring.http_input = auto 1055c1055 < ;mbstring.http_output = SJIS --- > mbstring.http_output = SJIS 1062c1062 < ;mbstring.encoding_translation = Off --- > mbstring.encoding_translation = On 1066c1066 < ;mbstring.detect_order = auto --- > mbstring.detect_order = auto 1070c1070 < ;mbstring.substitute_character = none; --- > mbstring.substitute_character = none;
PHP4 文字コードの設定 [PHP]
http://blog.so-net.ne.jp/nakagami/2005-09-29 の時は、よく分からず設定したけど・・・
phpiniの文字コードの設定
http://allabout.co.jp/career/database/closeup/CU20050321A/
PHPのインストール(Apache2.0 Windows編)「■PHPの設定」
http://www.aconus.com/~oyaji/www/apache_win_php.htm
PHPのインストール(Apache2.0 Linux編)の「◆PHPの設定」
http://www.aconus.com/~oyaji/www/apache_linux_php.htm
International な環境にするためには、デフォルトの状態から
default_charset = UTF-8
だけ設定して、[mbstring]セクションはデフォルト(コメント)のまま、が良いのかな。
それとも default_charset = UTF-8 では、SquirrelMail で日本語がうまく取り扱えないかな?
ちなみに、現状↓の状態で
http://blog.so-net.ne.jp/nakagami/2005-09-29
・メールの検索で、日本語の文字を含むとヒットしない
・アドレス帳の検索はうまくいく
メールの検索は、IMAP サーバー側で行っているので、なんとなくわかる。
追記
現在の環境で、アドレス帳は EUC-JP になってる。↓と同じ。
http://www.na.rim.or.jp/~sawada_k/php/squirrelmail/global_abook.html
ということは [mbstring] の設定が関係しているちゅうことだな。
これが、UTF-8 になるのか?
メール検索は IMAP4 サーバーに UTF-8 で聞けばよいが、
default_charset = UTF-8 でメールの検索も出来るようになるんじゃないか?
追記の追記
functions/i18n.php を見ると
if ($squirrelmail_language == 'ja_JP') { . . mb_internal_encoding('EUC-JP');
なんてしてるところがある。アドレス帳が EUC-JP になってるのはこれのせいだな。
Exchange Server のフォルダと SquirrelMail [PHP]
Exchange Server と SquirrelMail の IMAPフォルダーに関する取り扱いについて。
いろいろいじくりまわして分かってきたこと。
まず、何も考えずにログインしてメールを送信したり削除したりすると、
・INBOX.Drafts(下書き)
・INBOX.Sent(送信済みアイテム)
・INBOX.Trash(削除済みアイテム)
というフォルダが出来てることに気づく。
カッコ内は日本語版の Exchange Server の相当するフォルダ。
config.php の中を見ると、それぞれの機能をどのフォルダに割り当てるかは
$trash_folder = 'INBOX.Trash';
$sent_folder = 'INBOX.Sent';
$draft_folder = 'INBOX.Drafts';
に書いてある。勝手にフォルダが出来ちゃうのは、
$auto_create_special = false;
となっているから。
とりあえず、$xxxx_folder に、現状の(日本語の)フォルダ名を指定したが、うまく動かない。
sjis euc-jp utf-8 のいずれでもだめ。
各ユーザーの設定で行うことにしてみた。
Folders の Unsubscribe/Subscribe のところで、上記の日本語のフォルダを Subscribe する
Options->Folder Prefereneces の Special Folder Options で
Trash Folder: -> 削除済みアイテム)
Draft Folder: -> 下書き
Sent Folder: -> 送信済みアイテム
を設定する。
いったん、誰かのアカウントで上記の設定をした後で、
data ディレクトリに例えばユーザー foo であれば foo.pref があるので、それを
default_pref に上書きしておけば、あとの設定はそのデフォルト値を使うようになる?
しばらく使ってみたけど、
私の受信トレイに 1500通くらいある環境だと結構遅いので、(タイムアウトになる)
ちょっと日常的に使うのは難しいかなぁ・・・。
SquirrelMail をお試ししてみるプロジェクト [PHP]
SMTP サーバーと IMAP4 サーバーはあるけど、お試しに使えるサーバーは Windows 2003 Server。
Apache2 + PHP4 + SquirrelMail を Windows で動かしてみることにする。
【PHPのインストール(Apache2.0 Windows編)】
[Apache2]
Apache Win32 のインストール設定↓を参考に
http://www.aconus.com/~oyaji/www/apache_win.htm
ここ↓にある apache_2.0.54-win32-x86-no_ssl.msi をダウンロードして実行
http://www.apache.org/dist/httpd/binaries/win32/
(no_ssl じゃなくて with_ssl のやつはないの?まぁ、今回はお試しだから必要ないけど)
途中で
for All Users, on Port 80, as a Service
only for the Current User, on Port 8080, when started manually
のどっちを選ぶか?と聞いてきたので、下を選択した。
ポートはあとで http.conf を修正すればいくつにでも出来るので、上記の違いは
サービスとして起動するかどうかだな。
これだけで、インストールできたので
スタートメニューから「Start Apache in Console」を選択すると
http://ホスト名:8080/
で、アパッチがインストールされているよぉ画面が出る。
インストールの過程で、httpd.conf の変数(ServerRootとか)を自動的に調整してくれるのね。
[PHP]
PHP のインストール
http://www.aconus.com/~oyaji/www/apache_win_php.htm
http://www.php.net/downloads.php にある PHP 4.4.0 installer (exe) をダウンロードして実行
・・・してみたが、なぜか欲しい DLL がインストールされてない。(なんか間違えたか?)
結局アンインストールして、
1.php-4.4.0-Win32.zip を解凍
2.D:\PHP\ 以下にコピー
3.http://www.aconus.com/~oyaji/www/apache_win_php.htm の通りの設定をする
■PHPの設定
◆ApacheのPHP関連の設定
なんだかよく分かってないけど
PHP 4.4.0 に対するパッチの話↓
http://sanguine.jp/pipermail/squirrelmail-users/2005-September/001454.html
し、しまった。よく見たら C のソースだ。これは直せないので我慢しておく。
【SquirrelMail】
http://www.squirrelmail.jp/node.php?id=13
↑を参考に↓にあるパッチ済みものを取ってくる
http://www.yamaai-tech.com/~masato/Download/
私が取ってきたのはこれ↓
squirrelmail-1.4.5-ja-20050714.tar.gz
解凍して適当なディレクトリにコピー。
本当は、Perlスクリプトで設定を書き換えるようだけれども、
http://www.squirrelmail.jp/node.php?id=30
Perl は入ってないので、config ディレクトリにある config_default.php を
config.php という名前で、同じディレクトリにコピーして、
$domain
$smtpServerAddress
$imapServerAddress
$imap_server_type
の値を適当に変更。また、
$squirrelmail_default_language = 'ja_JP';
$default_charset = 'iso-2022-jp';
と設定。なお、SquirrelMail の上のファイルは改行コードが LF なのでメモ帳じゃ編集できない。
また、
Options->Personal Information で自分の Email Address を書き換えられないようにするには、
$edit_identity = false;
も設定
うーむ。「PHP 4.4.0 に対するパッチの話」は置いておいても、
Subject: が BASE64 encoding されてないで、そのまま出力されてる。
だめじゃん。どっかの設定がダメなんだと思うけど・・・。
↓やっぱり、同じ問題か?
http://sanguine.jp/pipermail/squirrelmail-users/2005-July/001411.html
http://d.hatena.ne.jp/desutai/20050725
とりあえず、今はお試しなのでそのままにしておく
必要になったときに見ておくべきところ
http://www.na.rim.or.jp/~sawada_k/php/squirrelmail/