今日の作業で良くわかんなかったとこ
AjaxリクエストへHTML(tableのセル)を返す処理で、以前はControllerに書いていた処理をHelperに移してみた
その際、折角だからViewでも一部被ってた部分をマージしてlink_toやimage_tagなどのHelperメソッドに置き換えた
(ViewでもそのHTMLが欲しい時にHelperを呼ぶようにするため)
すると、Viewからは普通に呼べるのだけど、AjaxでControllerからHelperを呼ぶとlink_toやimage_tagがうまく動かなかった
色々includeとかしてみたけどlink_toで必ずnil.url_forとなってしまったので諦めた(結局HTMLべた書きした)
KeepAliveの設定方法が分からなかったのでメモ
~/.ssh/config
というファイルを作って、そこに
KeepAliveInterval 60
など、適当な数値で書き込む(多分秒数)
これだけで次のsshから有効になる模様
先日からPHPをCGIとして動かしていますが、せっかくなのでFastCGIの設定までやることにしました
FastCGIとは、CGIのプロセスをメモリ上に残しておくことで起動の遅いCGIプロセスを高速に実行出来るようにするCGIの動作仕様の1つです
FastCGI – Wikipedia
今回は解説サイトに従って簡単に設定出来ました
参考にしたのはこちら
Apache/FastCGI – Linux Tips
なんとなくfastcgiよりfcgidのほうが良さそうだったのでfcgidを入れました
必要なかった手順もあるので簡単にまとめておきます
Debian lennyの場合
# aptitude install libapache2-mod-fcgid
# a2enmod fcgid
# vim /etc/apache2/sites-available/your-profile
-------------------------------------------------------------
PHPを使用するVirtualHostの設定ごとに以下を追記
<IfModule mod_fcgid.c>
AddHandler fcgid-script .php
<Directory "/path-to-your-php-script-dir">
FCGIWrapper /usr/bin/php-cgi .php
Options +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</IfModule>
-------------------------------------------------------------
# /etc/init.d/apache2 restart
ps ax | grep php-cgi
としてプロセスが存在すれば多分有効になっているんじゃなかろうか
#fcgid入れる前に試してないので良くわからない;
何でこんなことになったのか…
ふとML115のApache2を見ると、それはpreforkだった
preforkはシングルスレッドで動作するモードだ
マルチスレッドの方がパフォーマンスいいんだからそっちを入れよう!
マルチスレッドに対応しているのはworkerなのだが、これにmod-phpが対応していないらしく、
workerを入れたらpreforkと一緒にmod-phpが消されてPHPが動かなくなった
かくして、仕方なくphp-cgiの設定をする羽目になったのである
ネットを彷徨っても断片的な設定しかなく、本当に辛かった
とりあえず自分が設定した内容をまとめておく
更新中は500エラーを返すなど、酷いことになっていたかと思います
申し訳ございませんでした
Debian lennyの場合
# aptitude install php5-cgi apache2-mpm-worker
# a2enmod cgid
# a2enmod actions
# vim /etc/apache2/conf.d/php-cgi.conf
--------------------------------------------------------
下記内容で保存
<IfModule modactions.c>
Action application/x-httpd-php /cgi-bin/php5
</IfModule>
--------------------------------------------------------
ここまでの作業は
# gunzip /usr/share/doc/php5-cgi/README.Debian.gz
# less /usr/share/doc/php5-cgi/README.Debian
の内容を参照されたし
# vim /etc/apache2/sites-available/your-profile
--------------------------------------------------------
<VirtualHost *80>
~省略~
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
--------------------------------------------------------
# /etc/init.d/apache2 restart
疲れた
このところWEBサーバが不安定でメモリもカツカツだったので、思い切ってWEBサーバのメモリを4GBに換装しました
512MB -> 4GBの大幅拡張です!
購入したのはUMAXのPulsar 2GB2枚組みメモリ
ARKで5000円前後だったと思います
価格.com – UMAX Pulsar DCDDR2-4GB-800 (DDR2 PC2-6400 2GB 2枚組) 価格比較
早速換装して再起動したのですが、何故か885MBまでしか認識されません;
どうやら古いカーネルの設定を使っているとこうなるようです
現在カーネルを再構築しております
再構築は必要ありませんでした
linux-image-2.6.*-686-bigmemというカーネルにaptで入れ替えたところ正常に4GB認識しました(恐らく64GBまで対応してると思われます)
その際、前回の記事でも触れたrootファイルシステムが見つからなくなるエラーを回避するために以下の作業をしました
$ e2label /dev/sda1 rootfilesys
$ vim /boot/grub/menu.lst
------------------------------------
# kopt=root=/dev/sda1 ro
のような行を
# kopt=root=LABEL=rootfilesys ro
のように書き換え
これで再起動したところ今回は無事にファイルシステムを読み込み、メモリも4GB認識してくれました