2009年04月18日

覚え書き:PHP高速化

前任校の時、XoopsWordPress ME がかなり遅かったのと、掲示板で40人が夢中になって書き込んだときにサーバエラーになったことがありました。そこで、PHPの高速化を試みてみた。MySQLのパフォーマンスは十分にあるらしい(一番下に0.03sなどと表示されているのでわかる)し、8GB のメモリを載せている Ubuntu server は Linux ですからパフォーマンス的に問題になることはないと思いますけど予防的に。

検索すると次のページがヒット

veryberry_cafeの日記:2006-12-04 [ubuntu]うっかりしてたAPCとZend Optimizer

タイトルのことは最初だけ。PHP高速化について書いてあります。

この方によれば3つの高速化技術があり、

eAccelerator はロード済みファイルのメモリキャッシュ
・バイトコードキャッシュはAPC
ZendOptimizerはソースの最適化

という。さらに、eAccelerator と ZendOptimizer は共存可能だとか。さっそく試します。

実は前任校では Windows server だけど、ZendOptimizer は入れていました。Ubuntu(Linux server)では初めてだったので調べてみます。このページを参考に入れると簡単に入りました。

Ubuntu Server 7.10 に Zend Optimizer をインストール - してんのつれづれ

インストール中は英語でいろいろ聞かれるので焦りますが、ここにあるとおり、php.ini の場所に、「/etc/php5/apache2/」を入れるだけであとは「ok」とか何とかやっていると入ります。

$ sudo /usr/sbin/apache2ctl -k restart

で Apache を再起動すると Zend Optimizer が無事インストールされ、WordPress の表示が格段に早くなったような気がする。

eAccelerator の方は色々と苦労したけど、ほぼ次のページのとおりでうまくいきました。

How do I...Install eAccelerator on Ubuntu 8.04 (Debian) - MindTouch Developer Center

英語だけど、とても丁寧。

ソースからコンパイルする際「phpize」なるコマンドが必要になるけど、Ubuntu では「php5-dev」を入れればこのコマンドは入るぞと書いてあるらしい。そこで Synaptic パッケージマネージャで「php5-dev」を検索してインストールします。

その後このサイトの囲み部分のように実行します。ただし、そんなに全部「sudo」でやらなくても、最後の「make install」だけ「sudo」で実行すればいいと思います。

その後の php.ini の書き方は、両方の記事を参考にしました。一応以下のような感じです。一番最後の[eaccelerator]と[Zend]のところだけ。

[eaccelerator]
zend_extension = "/usr/lib/php5/20060613+lfs/eaccelerator.so"
eaccelerator.shm_size = "32"
eaccelerator.cache_dir = "/var/tmp"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.keys = "shm_and_disk"
eaccelerator.sessions = "shm_and_disk"
eaccelerator.content = "shm_and_disk"

[Zend]
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-3.3.0

zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-3.3.0
zend_optimizer.version=3.3.0a
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so

以下のように無事に動きました。

eAccelerator.png
posted by n_shimizu at 00:00| Comment(0) | TrackBack(0) | Ubuntu校内サーバ

2009年04月08日

Xoops 少し

今日の隙間時間に少しだけいじった Ubuntuについて。

二日前、サードパーティ製・ホダ塾ディストリビューション1.03をインストールしました


しかし、「アカウント情報が表示できない」というエラーが発生します(エラー自体は一昨日からわかっていました)。

ただ英語メッセージを読むとメモリがうんぬんと表示されているようです。

たっぷりあるのでメモリのわけは無いのではと思いつつコピー&ペーストでエラーメッセージをググると、PHPのmemory limitが小さい、せめて32Mにせよ、とありました。

phpinfo()で確認すると確かに 16M で設定されていました。設定変更のため、php.iniを探すもなかなか見つからず。結局、

/etc/php5/apache2/php.ini


に見つかる。一気に64Mまで増やしApacheを再起動する。phpinfo()で確認すると 64Mにはなっているがエラー消えず。

こんどは「Xoops アカウント情報が表示できない」とストレートに検索。

プロフィール画面真っ白事件? きつね♪の隠れ家



というサイトにぶつかる。ここにモジュールの相性とか書いてあり、まさかと思いつつ D3Blog をアンインストールしてみたら直った。

???

すべて一括でインストールしたホダ塾でなぜ?


某氏からいただいた Xoops ユーザー一括登録プログラムを組み込む。

表示してみるとこんどは文字化け。サイトを UTF-8 で組んだからだろうとブラウザの「エンコード」を「EUC」に直すと(いただいたファイルが EUC だったから)、全体はちゃんと表示されますが、今度はシステムからデータをもらった表の中身が文字化けします。

要はいただいたこのPHPファイル自体を UTF-8 にしないといけないと理解しました。Ubuntu 上の gedit で一度開き、名前を付けて保存で UTF-8 に。

ちゃんと表示されるようになりました。
posted by n_shimizu at 23:59| Comment(0) | TrackBack(1) | Ubuntu校内サーバ

2009年04月06日

Ubuntu server で 8GB 認識&ホダ塾

ところで、8GB 装着した Ubuntu server での、$ free の結果

shimizu@ubuntu:~$ free
total used free shared buffers cached
Mem: 8181028 1217420 6963608 0 119188 593040
-/+ buffers/cache: 505192 7675836
Swap: 3229024 0 3229024

8GB認識して使えています。あまりにも呆気ないんでちょっとびっくり。

ちなみに Xoops は「ホダ塾ディストリビューション」なるものを試しに入れてみました。
ホダ塾.png
posted by n_shimizu at 23:59| Comment(0) | TrackBack(1) | Ubuntu校内サーバ

2009年04月05日

自宅のUbuntuではXoops等のインストールできた

自宅のPC上で同じ環境を作ってみようと思いました。

Virtual Box で Ubuntu(Desktop版ですが)をインストール、学校の Ubuntu server と同様「tasksel」コマンドにて LAMPを構築、Xoops や Xoops 上の BluesBB(掲示板)モジュール、WordPress ME(ブログ)モジュールを追加してアクセスすることはできました。

ふむ。

DNS さえちゃんとうまく通れば、校内PCルームでの掲示板はうまく行きそうな気がしてきました。IPアドレス直接アクセスはプロキシではじくような設定になっているのです。

問題は明日その時間が取れるかです。明日は始業式以外にも PCルーム業者メンテナンスやら、それ以外にいろいろ言われていて夜も用事。授業準備が進まないですねぇ。
posted by n_shimizu at 23:59| Comment(0) | TrackBack(0) | Ubuntu校内サーバ

2009年04月03日

今日の Ubuntu Server いぢり

朝に30分、5時ごろから2〜3時間、Ubuntu Server をいぢりました。

昨日「tasksel」コマンド

$ sudo tasksel


で「mail server」と「Ubuntu-Desktop」にチェックを入れて帰りました。やはり色々とインターネットの情報を使いながらセッティングするには、GUIが必要かと……。

今朝見てみるとダウンロードは終了しているみたいですが「Postfix Configuration」画面で止まっていました。でもメッセージが化けていて読めません。

基本的に Debian を元にしている Ubuntu は、インストール時に「日本語」を選ぶとメッセージを日本語で表示しようとするのですけどうまく対応できないんですよね。

先生機からインターネットにアクセスし、「Postfix Configuration Ubuntu」で検索かけると、メッセージのハードコピーを載せているサイトがみつかりました。
http://wikiwiki.jp/swisspc/?postfix

「◆◆◆◆◆」となっている部分の文字数からメッセージを読み解いていきます。

どうやら最初が用途で、「インターネット」が選ばれているらしい。イントラで使うのでそのままでいいだろうと、Tabで一番下の「◆◆(たぶん「了解」)」に移動して Enter を押す。

次はどうやら「@」以下のホスト名をどうするか聞いているみたいなので「pcroom.local」を指定します(構築されていないかも知れないのですが、Windows 2000 server にはドメインコントローラになっており、「pcroom.local」ドメインになっていることに合わせました)。

そしたら実は Desktop 環境のダウンロードが終わっていなく、「再開」。まもなく終了。

シェルに戻ると早速システムからメールが来ています。メールサーバが動いているようです。

続いて「startx」を実行するとガリガリと動き出します。無事に X の画面が表示されました。

ubuntuサーバでX起動.png
続きを読む
posted by n_shimizu at 23:59| Ubuntu校内サーバ

2009年04月02日

Express5800/110Ge に Ubuntu server をインストールして校内サーバに

NEC Express5800/110Ge を確保できました。

スペックは
Intel Celeron 430(1.8GHz)
SATA HDD 80GB
MEMORY 8GB(増設済み)
OS無し

です。

これに Debian系の Linux である Ubuntu を入れます。校内サーバとして使っていくためのものです。

さて、サーバーだからということ以上に 32bit でありながら 8GB のメモリを認識させるために、インストールするのは「Ubuntu 8.04 LTS Server」にしました。

ダウンロードは以下のアドレスからできます。
http://www.ubuntu.com/getubuntu/download-server

サーバとして使うからには長期にわたってサポートされる LTS を選びました。Ubuntu にしたのは特に意味はなく、なんとなく、です。

さてインストール。いきなり失敗しました。

サーバインストール失敗01.jpgサーバインストール失敗02.jpg


続きを読む
posted by n_shimizu at 23:59| Comment(0) | TrackBack(0) | Ubuntu校内サーバ