Archive for the ‘PHP’ Category



29
7月

Apache 2.2.16とPHP 5.3.3がリリース

それぞれVineのRPMを作ろうと思いますが・・・

apacheの方はrpmbuildの途中(configure)でエラーが出るのでちょい様子見ちゅう。

PHPはまだ手付かずです(*゚ー゚)

28
7月

PHP試験が秋に開始

PHP試験が秋に開始、オライリー本が教科書

ほぇー

今までちゃんとPHPを勉強したことないから、これを機にちゃんと勉強して資格とってみようかしら?( ´ー`)

22
7月

ブラウザからVirtualBoxの操作ができる「phpvirtualbox」

WEBベースでVirtualBoxを使った仮想マシンの操作が行える「phpvirtualbox」

おー、なんかまた凄いのが出てきましたね。

けど、コレを使うには当然ながらapache、phpが必要なんでしょうね。

ウチはWindowsXP環境なVirtualBoxだからなぁ~・・・

リモートデスクトップで設定とかもできればVirtualBox最強!!なんだけどな~・・・

28
4月

Vine5.x用のphp-5.3.2

PHP5.3.2がリリースされてたからずっとRPMのビルドに四苦八苦しておりましたが・・・

ようやく作ることができましたヽ(´ー`)ノ

いつもなら
1.php5-5.3.1-1vl5.src.rpmをダウンロードしてきてインストール

> rpm -ivh php5-5.3.1-1vl5.src.rpm


2.php-5.3.2.tar.bz2をダウンロードしてきてphp-5.3.1.tar.bz2と差し替え
> cd /usr/src/vine/SOUCES > wget http://jp2.php.net/get/php-5.3.2.tar.bz2/from/jp.php.net/mirror > rm -f php-5.3.1.tar.bz2


3.SPECファイルのバージョンを5.3.2に修正
> vi /usr/src/vine/SPECS/php53.spec


4.ビルド
> rpmbuild -ba --clean /usr/src/vine/SPECS/php53.spec


5.アップグレード
> rpm -Uvh php5-5.3.2-1vl5.i386.rpm ・・・

で完了なのですが、今回もビルドは一応完了するもののphp5-5.3.2-1vl5.i386.rpmに含まれる依存関係が1箇所おかしなことになるのです(´・ω・`)

> rpm -qpR php5-5.3.2-1vl5.i386.rpm alternatives php5-pear = 5.3.2-1vl5 rpmlib(VersionedDependencies) <= 3.0.3-1 /bin/sh /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 /usr/src/vine/BUILD/php-5.3.2/build-cgi/sapi/cli/php libbz2.so.1 ・ ・ ・

( ´゚д゚`)???

悩み続けること2日・・・どうやら最後に依存関係を勝手に追加してくださる”find-requires”が悪さしているというとこまではわかったのですが、これをどうやって正常な値(/usr/bin/php5)に修正すればよいのやら・・・

試行錯誤した結果、最終的にspecファイルに下記を追加してphp-5.3.2のrpmビルド用”find-requires”を作って正常な値に修正するという荒業で凌ぎました(゚Д゚)

--- php53.spec 2010-04-28 23:03:00.000000000 +0900 +++ php53.spec.org 2010-04-28 23:02:38.000000000 +0900 @@ -341,6 +341,10 @@ #========================== %prep +echo "%{__find_requires} | sed -e 's|${RPM_BUILD_DIR}/%{srcname}/build-cgi/sapi/cli/php|%{_bindir}/php5|g'" > %{_tmppath}/find-requires-php +chmod +x %{_tmppath}/find-requires-php +%define __find_requires %{_tmppath}/find-requires-php + %setup -q -n %{srcname} %patch33 -p1 -b .phpincludedir

↑は/var/tmpにfind-requires-phpを作って”find-requires”として認識させております。

find-requires-phpは単純に”find-requires”の結果から/usr/src/vine/BUILD/php-5.3.2/build-cgi/sapi/cli/phpを/usr/bin/php5に置換しているだけです。

結果以下のようにちゃんと修正されました

> rpm -qpR php5-5.3.2-1vl5.i386.rpm alternatives php5-pear = 5.3.2-1vl5 rpmlib(VersionedDependencies) <= 3.0.3-1 /bin/sh /bin/sh /bin/sh rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1 /usr/bin/php5 libbz2.so.1 ・ ・ ・

よかったよかった・゚・(ノД`)・゚・

23
4月

PHP5.3.2がリリースされてた

というわけでVine5用のRPMをビルドしてみたのですが・・・

ビルドは完了するのですがなぜかアップグレードでコケる(´・ω・`)

CLIだけうまくコンパイルできていないっぽくてBUILDディレクトリにCLIがないよ!

的な意味不明なエラーがでるのです(´・ω・`)

う~ん・・・もうちょっと頑張ってみよう・・・

11
3月

シンプルなWEBベースのBTS「OpenTask」

会社で小規模なBTS(バグトラッキングシステム)が欲しいなぁと思いいろいろ探し回っていたところ「OpenTask」というBSTを見つけました。

早速ダウンロードして、設置してみた感じ、ところどころバグがあったりしてう~ん・・・という感じでした。

でも用途としてはこれが1番マッチしてるしシンプルで使いやすいのでこれで諦めるのはもったいない!!

ということで自力でバグをなおしたり、削除機能がないので削除機能を追加してみたりいろいろゴニョゴニョしてなんとか実用Lvに達してきました( ´ー`)

BSDライセンスらしいので、もしかしたら改造版を公開するかもしれません(=´ω`=)

12
10月

APC(Alternatice PHP Cache)を入れてみた(続き)

APC(Alternatice PHP Cache)を入れてみたの続きです。

ちゃんと統計をとってみたところ、何も入れない方が早いといういことが判明(´・ω・`)
やはり、suphpとの共存は無理のようです・・・
suphpは毎回php-cgiを呼び出しているから、その都度キャッシュが初期化されているんじゃないかと・・・・いう気がします。

今度はapacheのキャッシュ機能を使ってみようかな( ´ー`)

※追記
APCの効果が得られないのはこのブログだけだったみたいです。
たぶんDB周りが原因でキャッシュの恩恵を受けれてないもよう。

phpinfo();だけのページをabで計測したらちゃんと早くなってました( ´ー`)

たぶんXCacheも同じ理由のような気がします。

10
10月

APC(Alternatice PHP Cache)を入れてみた

xcacheを入れてみたであまり効果が体感できなかったので、今回はAPC(Alternatice PHP Cache)を入れてみました。

やはり体感ではあまり分かりませんでした・・・(´・ω・`)

という訳でapacheベンチ(ab)を利用して数値で調べてみたところ、何も無いよりは若干APCの方が早くなっていました(゚∀゚)

XCacheはなぜか何も無い状態よりも悪い結果になりました(やはりsuphpとの共存ができないのだろうか・・・)

ということで、APCの採用を決定!!( ´ー`)

Vine5.0で作ったRPM/SRC.RPM集にRPMとSRC.RPMをアップしましたので欲しい方はどうぞ(ご利用は自己責任で)

ついでにほとんどデフォで使っているMySQLのパフォーマンスチューニングも行いました。

my.cnfに以下を追加しました。

max_connections=200 thread_cache=200 query_cache_size=16M

結構早くなった気がします( ´ー`)

7
10月

xcacheを入れてみた

自宅のメインサーバー機の方もやっとVine5へのアップグレードが完了しました( ´ー`)

では次のステップ!ということで次はPHPの高速化をやってみようということで・・・

(※ウチのサーバーはsuphpを使っているのでPHPのパフォーマンスあまりよろしくないのです。)

まずはeAcceleratorを試してみようと思ったのですが、コンパイル途中(RPMの作成途中で)でエラーとなってしまったので断念(´・ω・`)

仕方ないので次にXCacheを試してみました。

こちらはコンパイル(RPMの作成)も完了しインストールも無事完了。

ちゃんとXCacheが機能しているのかがイマイチよく分からなかったので結局アンインストールしちゃいました( ゚Д゚)

(※そもそもsuphpとxcacheの共存でできるのか???)

つぎはAPCを試してみようと思う( ´ー`)

XCacheのRPMをアップしましたので欲しい方はVine5.0で作ったRPM/SRC.RPM集からどうぞ(要自己責任です)

あ、あと2009年9月のスパム対策統計をアップしました。

Postfix単体で99.95%
Postfix+Procmailで100%

でした。

3
10月

php5.3にアップグレード

RoundCubeやWordPressで問題があった為、php5.3へのアップグレードを躊躇していたのですが、

再チャレンジということで思い切ってアップグレードしてみました( ´ー`)

まずWordPressのwarningの問題はphp.iniで

date.timezone = "Asia/Tokyo"


を明示的に指定してあげれば良いというのは前々から調査済みだったので解決!

さてさて最大の問題であったRoundCubeの方ですが、
単純にphp5.3にアップグレードしただけだと例によってDEPRECATEDがいろいろ出ます。

以前調べた時にphp.iniに

error_reporting = E_ALL & ~E_DEPRECATED


としてあげればDEPRECATEDはでなくなるということは知っていたのでこれを設定(最初から設定されてた)

んが、これでもDEPRECATEDが出力されてしまう・・・。・゚・(ノд`)・゚・。

というところまでで前回は諦めました。

今回はまずRoundCube Webmail の日本語化様よりroundcubemail-0.3-stableを頂戴してきてRoundCubeそのものをアップグレード。

これでもDEPRECATEDは消えない・・・(´・ω・`)

次にじゃーなんで「E_ALL & ~E_DEPRECATED」を指定してもDEPRECATEDが出てしまうのかというところを調査。

結論としてsuPHPを使っていることが原因のようなのです┐(´д`)┌

RoundCubeは設置時に直下のディレクトリに.htaccessを作成しphp_flagやphp_valueを設定します。

ところがsuPHPは.htaccessのphp_valueを認識できません。

どうもこれがダメなんじゃないか???というところに行き着きついたのです。

じゃーどうすればよいか!ということですがこれは結構簡単でphpが動作しているディレクトリ配下に以下のような.htaccessを置いてphp.iniを認識させればよいのです。

suPHP_ConfigPath /path/public_html/RoundCube <Files php.ini> order allow,deny deny from all </Files>

※/path/public_html/RoundCube直下にphp.iniをコピーしてRoundCube設置時に.htaccessに指定してあったphp_value等をphp.iniに反映させます。

今度はDEPRECATEDが消えましたヽ(´ー`)ノ

とりあえずは問題なさそうですが、もう少し様子をみる必要はありそうです( ´ー`)

Celadon theme by the Themes Boutique