[tips] 目にやさしいディスプレイの設定 はコメントを受け付けていません
ThinkPad X61からX201iへの乗り換え記録 はコメントを受け付けていません
PHPの中間コードキャッシュAPCを導入した環境にEC-CUBE2.4.4をインストールして動かそうとしましたが、
PHP Fatal error: Class 'SC_DB_DBFactory_MYSQL_Ex' not found
というエラーが出て管理画面にログインできません。いろいろ調べた結果APCの問題であることが判明。
APCをOFFにしたら無事に動くようになりました。要注意です。
環境:
- PHP 5.2.14
- APC 3.0.9
- EC-CUBE 2.4.4
Just a moment…
[tips]PHPの中間コードキャッシュAPCとEC-CUBEの組み合わせは要注意 はコメントを受け付けていません
CentOS5はyumでPHPをインストールすると標準では5.1.6が入ります。WordPressで使いたいプラグインが5.2以上を要求していたので、yumでPHP5.2を入れる方法を探してみました。
ついでにPHPの中間コードキャッシュ「APC」を導入してサイトの速度向上を計ってみました。
環境:
- ServersMan@VPS のEntryプラン
- CentOS 5.4
まず古いPHPを削除します。私の環境では以下のものを削除しました。(/var/log/yum.log で後日確認)
php
php-mbstring
php-pdo
php-common
php-cli
php-mysql
gnupg
curl
次に取得先のGPG-KEYをインポートします。
rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
リポジトリの設定をします。
$ vi /etc/yum.repos.d/utterramblings.repo
(以下の内容を入力)
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
後は普通にyumで必要なパッケージをインストールします。
$ yum install php php-mbstring php-pdo php-pdo-mysql ...
インストールが終わったら、yum update でこのリポジトリが使われないように enabled=1のところを enabled=0に書き換えておきます。
上記で追加した「Jason’s Utter Ramblings Repo」には php-apcも用意されていたので、普通に
$ yum install php-apc
で完了でした。
標準の5.1.6にインストールするには peclを使う方法、他のリポジトリを追加してyumでインストール方法などが紹介されていました。(下部の参考リンクを参照。)
Apacheを再起動してベンチマークしてみます。
Concurrency Level: 5
Time taken for tests: 103.595070 seconds
Complete requests: 50
Failed requests: 0
Write errors: 0
Total transferred: 1881150 bytes
HTML transferred: 1869950 bytes
Requests per second: 0.48 [#/sec] (mean)
Time per request: 10359.507 [ms] (mean)
Time per request: 2071.901 [ms] (mean, across all concurrent requests)
Transfer rate: 17.73 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 8.8 0 32
Processing: 1749 10192 22227.7 4236 103562
Waiting: 1198 8469 21650.1 2593 102240
Total: 1749 10194 22232.4 4236 103594
Concurrency Level: 5
Time taken for tests: 66.140733 seconds
Complete requests: 50
Failed requests: 0
Write errors: 0
Total transferred: 1881150 bytes
HTML transferred: 1869950 bytes
Requests per second: 0.76 [#/sec] (mean)
Time per request: 6614.073 [ms] (mean)
Time per request: 1322.815 [ms] (mean, across all concurrent requests)
Transfer rate: 27.77 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 1.1 0 6
Processing: 3831 6405 1900.1 6155 13822
Waiting: 1797 3599 1741.1 3355 10780
Total: 3831 6405 1899.9 6155 13822
およそ40%ほどスピードアップしているようです。
ちなみに /etc/php.d/apc.ini にapc関連の設定があって共有メモリのサイズ(apc.shm_size)を128に増やしてベンチマークしてみましたが特に有意差はありませんでした。
キャッシュされるソースコードの量が増えてくるとこのパラメータが効いてくるようです。
以下のサイトを参考にさせていただきました。ありがとうございます。
CentOSのPHPを5.2にする。ついでにAPCも入れてみました。 はコメントを受け付けていません
Teeple2 にデータベースマイグレーション機能を追加しました。これによりコマンド一発でデータベースの変更を適用し、エンティティクラスもそれに合わせて更新できるようになりました。
マイグレーション機能はシステムリリース後もそうですが、開発中も複数人で開発している場合は特に有用です。
まずmigrationディレクトリにDataSource名でディレクトリを作成します。
その中にデータベースに適用したいDDL文を NNN-somename.sql という形式で配置します。
「NNN」は001のようにバージョンを数字で表します。
ハイフン、またはアンダースコア以降は適当なファイル名で構いませんが拡張子は.sqlにする必要があります。
次に以下のコマンドを実行して差分を適用します。
$ php cli.php Teeple_Migration
(cli.phpはbinディレクトリにある)
エンティティも同時に上書きしたい場合は –entityをつけます。
$ php cli.php Teeple_Migration --entity
※ Entity_Base_* が更新されます。
Teeple2にデータベースマイグレーション機能を追加 はコメントを受け付けていません