TOP Main BBS Paint BBS FFXI on SW LUNATIC DAWN KOIKI UserList Mail Form

2007年05月01日

FastCGIって

ちぃとばかりまずい仕様かも、FastCGI[:sweat:]

fcgiで動作しているページはサーバーレベルでキャッシュに保存されるようです。これがなぜやばいのか?

MTでプラグインをオン・オフしてもその時点では切り替わらない

すべてが該当するのかまで確認していませんが、例えばオフになっているプラグインをオンにしたとします。通常はページが再描画されてそのプラグインがオンになります。ですが、FastCGIで動いているとオフのままなのです[:cry:] これはブラウザの更新ボタン等を押しても反映されず、ブラウザのキャッシュを削除してもブラウザを再起動しても直りません。つまり、そのプラグインはそのままでは使えないのですよ!内部的には間違いなくオンになってるんだけど(データベースを確認するとプラグインはオンなっている)。
ならどうするのか?現在ブラウザを起動しているPCを再起動する![:shock:]

っていうか、なぜPCを再起動すると反映されるの?サーバー再起動って言うなら解からなくもないけど[:sweat:]

FastCGIってこんなものなんでしょうか?それともApache1.3だから?いよいよ最新バージョンにするべきなのか・・・もしかしたらMySQLもバージョンアップかな?[:sweat:]

Posted at 14:01 | Comments [0] | Trackbacks [0]

2007年04月29日

モジュールを追加

先日行った「MTのFastCGI化」の備忘録。これは自宅サーバーを公開している方向けかもしれません。

サーバーがスペックダウンした事により、MT再構築が困難(全体の再構築に1時間も掛かる)なので、少しでも動作を早くする為にFastCGIを導入する事にしました。
一つ断っておくと、当サイトのApacheのバージョンは1.3なので、2.2とはインストール方法が多少異なります。テスト環境は2.2だったので、どちらも書いておきますが[:sweat:] なお、ディストリビュージョンは「Vine Linux 3.2 & 4.1」です。

現サーバーは「Vine Linux 3.2」で、基本的にApache1.3がインストールされています。インストールが必要なものは「fcgi」「mod_fastcgi」なので、以下のように作業します。
まずは「fcgi」のインストール。

$ wget http://www.fastcgi.com/dist/fcgi-2.4.1-SNAP-0311112127.tar.gz
$ tar zxvf fcgi-2.4.1-SNAP-0311112127.tar.gz
$ cd fcgi-2.4.1-SNAP-0311112127
$ ./configure
$ make
$ su
# make install

Vine3.2のApacheはDSO対応なので、「mod_fastcgi」は以下のようにインストール。

$ wget http://www.fastcgi.com/dist/mod_fastcgi-SNAP-0404142202.tar.gz
$ tar zxvf mod_fastcgi-SNAP-0404142202.tar.gz
$ cd mod_fastcgi-SNAP-0404142202
$ /usr/sbin/apxs -o mod_fastcgi.so -c *.c
$ su
# /usr/sbin/apxs -i -a -n fastcgi mod_fastcgi.so

次にFastCGI用のPerlも追加します。

su
perl -MCPAN -e shell
install FCGI
install CGI::Fast
exit

あとはhttpd.confに以下を追加して保存、Apacheを再起動します。

LoadModule fastcgi_module modules/mod_fastcgi.so
#これ↑は自動で追加されるようです。ただし、パスが狂っている場合があるので、必ず確認してみましょう。

<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
FastCgiConfig -autoUpdate -idle-timeout 300
</IfModule>

「FastCgiConfig」の設定はいろいろ書かれていますが、気にしなくても良さそうです。ただ、「-idle-timeout」の値は「120」では再構築でタイムアウトする可能性が高いので、このくらいが良いみたいです。なお、ディレクトリ「/tmp/fcgi_ipc/」はOS上での設定は不要です。Apacheが自動的に作成してくれます。

その後MTのスクリプトの拡張子を「fcgi」に変更、mt-config.cgiにも変更を追加します。この辺は各所で情報が出ているので省きます。
これでMTをFastCGIで動作させられると思います(できなくても責任は取れませんが[:sweat:])。

Posted at 18:37 | Comments [0] | Trackbacks [0]

2006年04月16日

Vine LinuxでApache2

セカンドPCにインストールしているLinuxをサーバーと同じ「Vine Linux」にしました。Debianだとかなり楽ができる(安定したソフト等が充実している)んですが、それでは何も身にならないと悟りました24
で、ここ数日「Vine Linux」で遊んでました1 その甲斐あってか、サーバーとほぼ同じ環境+αにする事ができました。サーバー自体は訳も解らず弄っている部分があったりしますが、今回はかなり理解して構築してます。とは言ってもサーバーを入れ替える訳でもなく・・・

+αとは、qmailの「POP before SMTP」の構築方法を簡単に済ませた事、Apacheを「2」にした事などです。qmailは良いとして、Apache2(+PHP)は癖がありました。Debianでは煩わしい事をせずに利用できるのに、Vineでは当り前にインストール・設定しただけでは起動しないのです。それはApache2の動作モードにありました。

VineのApache2のMPMはデフォルトでworkerモードになっているそうです。このままだとPHPをインストールしても起動できないのです。なので、preforkと言うモードへ変更する必要があります。

# update-alternatives --config apache2 ←と打ち込んで設定画面を出す。

There are 4 alternatives which provide `apache2'.

Selection Alternative
-----------------------------------------------
* 1 /usr/sbin/apache2.worker
2 /usr/sbin/apache2.prefork
3 /usr/sbin/apache2.threadpool
4 /usr/sbin/apache2.perchild

Press enter to keep the default[*], or type selection number:2 ←ここで「2」を入力する。

以上の操作で無事起動する事ができました。

もう少しVineで遊んでみる必要がありそうだ10

Posted at 15:16 | Comments [0] | Trackbacks [0]

2006年01月23日

エラーページを作りました

新しいOSでサーバーを立てた際、味気ないエラーページを表示するのは止めようと思っていました。しかし、ブログのカスタマイズにはまってしまい、後回しにし続けてすっかり忘れてしまいました24
404.gif

小粋空間: エラーページを作る

毎度お世話になっている小粋空間さんがこのエラーページについて取り挙げていました。で、思い出した訳です1

作り方は特に面倒な事はないし、簡単に「1カラム」で作ってみました。当サイトには1ページだけ「1カラム」が存在します。「テンプレートを新規作成」で新たにテンプレートを作り、その「1カラム」をコピペして本文を書き換えるだけ13
次はApacheの設定です。「httpd.conf」の中央辺りにエラーページ表示用の設定があるので、コメントを外して指定のファイルに修正、保存してApacheを再起動しておしまい1

サンプル(←存在しないURLです

Posted at 21:19 | Comments [2] | Trackbacks [0]

2005年03月26日

httpd.conf設定~バーチャルホスト編

ネームベースのバーチャルホストの設定です。通常はすべてコメントアウトされているので、先頭の「 # 」を削除します。httpd.conf後半に以下の記述があります。なお、現在公開中のサイトもバーチャルホストとして先に記述しておく必要があります。それを忘れると、今回設定したバーチャルホストのサイトが表示されてしまいます!

NameVirtualHost *
ネームベースの場合、「 * 」のままで問題ないです。IPベースの場合はサーバーのIPアドレスを入れます。ここをコメントアウトしたままだと動作しません。うちは毎回忘れて慌てます^^;

<VirtualHost *>
ここも上記のように、このままで良いです。IPベースはIPです。

ServerAdmin webmaster@example.com
管理者のメールアドレスを記入します。

DocumentRoot /home/httpd/html/
バーチャルホストのドキュメントルートを記入。

ServerName www.example.com
バーチャルホストのFQDNを記入します。サブドメイン、別の独自ドメインも指定できます。

</VirtualHost>


Posted at 11:40 | Comments [0] | Trackbacks [0]

2005年03月24日

PHP導入時のhttpd.confの設定

PHPのインストールが済んでいると仮定して進めます。

httpd.confで以下の記述を見つけて下さい。モジュールをロードする設定です。

# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule mmap_static_module modules/mod_mmap_static.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule env_module modules/mod_env.so
LoadModule config_log_module modules/mod_log_config.so
        ↓以降省略

最後の行に追加する。

LoadModule php4_module modules/libphp4.so

Windowsの場合、インストールしたパティーション、ディレクトリも指定する。以下はApache1.3.x利用時で、dllファイルまでを記述する。

LoadModule php4_module c:/php/sapi/php4apache.dll

Apache2.0.xの場合は下線部分がphp4apache2.dllとなる。

Posted at 16:35 | Comments [0] | Trackbacks [0]

2005年03月14日

httpd.conf

忘れかけているので、自分とApacheを動かしたい方の為に^^
注釈の無い箇所はデフォルト。コメントはすべて省いてます。

ServerType standalone
ServerRoot "/usr/local/apache"
#インストールしているシステムによってディレクトリは変わる。

PidFile /usr/local/apache/logs/httpd.pid
#インストールしているシステムによってディレクトリは変わる。

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 0
Port 80
User nobody
Group nobody
ServerAdmin aaa@bbb.ccc.or.jp
#自分のメールアドレス。当サイトではコメントアウト。

ServerName www.ccc.or.jp
#自分のサイトのFQDN。

DocumentRoot "/usr/local/apache/public_html"
#ここで表示したいトップページのあるディレクトリを指定。
#当サイトではpublic_html
#public_htmlまでのディレクトリは、使用するOSで変化する。
#また、物理エイリアスもここと同じように修正する。
<Directory "/usr/local/apache/public_html">

ErrorLog /usr/local/apache/logs/error_log
HostnameLookups Off
LogLevel warn

DirectoryIndex index.html index.htm index.php
#ここで表示したい拡張子の順番を決める。
#この場合、index.htmlが無ければindex.htm、次がindex.phpとなる。

LanguagePriority ja en da nl et fr de el it pt ltz ca es sv
#enの前にjaを追加する。日本語ですからね!

ここまで、表示するだけの設定。

Posted at 14:08 | Comments [0] | Trackbacks [0]