レンタルWordPressサーバでCGI

開発:さて、それでこのCGIをXSOのWordPressサーバで動かしたいと思うのですが。

基盤:WordPress cgi でググる。・・・ なんだかよくわからないですね。でも、これって単に apache サーバだと思いますから、WordPress のお世話になる必要も無いかと。

開発:まあそうですね。

基盤:ただし!xsoのサーバには Go がありません。su にはなれませんから、apt とかではインストールできません。まあ、手作業でインストールすれば良いとは思いますが。

* * *

開発:xso のレンタルサーバって実体は何なんですかね?

基盤:Linuxで、カーネルは3.10のようです。

xso% uname -a
Linux xso 3.10.0-962.3.2.lve1.5.24.8.el7.x86_64 #1 SMP Fri Jan 4 06:55:54 EST 2019 x86_64 x86_64 x86_64 GNU/Linux

基盤:/usr/lib に yum なんちゃらがあるので、RedHat 系なのかなという気配がします。

xso% ls -ld /usr/lib/yum*
drwxr-xr-x. 2 root root 198 Jan 23 2019 /usr/lib/yum-plugins

基盤:ちなみにうちはレンタルサーバの最安プランでストレージの使用可能総量は300GBという契約になっていますが、このWordPressサーバぶんで物理的には8TBまでは行けるようです。

xso% df .
df: Warning: cannot read table of mounted file systems: No such file or directory
Filesystem 1K-blocks Used Available Use% Mounted on
8415360000 457725056 7957634944 6% /home/oreore

開発:これってSSDという話でしたっけ?8TBの塊なんて拝めるとは?

基盤:このマシンに他のどんなお客さんが居るのかはわかりませんが、ロードアベレージが1を超えているのは普通なので、まるでガラ空きというわけではないように思われます。

開発:メモリが26GBというのはなんだか微妙な数字。しかし、up 511 days って、結構な鉄人ですね。

基盤:CPUの処理能力的には並の下みたいな感じですね。

* * *

開発:では、CGIプログラムをこのサーバに置いてみましょう。とりあえず Goが無いので、.go はコンパイルして持っていきます。コンパイルする側のカーネルは5.3ですが、単にテキストファイルを読んでPNGに変換するだけのプログラムだからカーネルとか関係ないと思います。

開発:で、これを ~/public_html/its-more.jp/pointillism の下に置いて、おもむろにアクセス。

基盤:ふつうに動きますね。

開発:ただし。サーバ側でPNGをキャッシュしているらしく、打った点を含んだPNGがなかなか帰って来ません。

基盤:応答コードがほぼ 304 になりますね。Apacheかnginxの設定なのかな?そういえば、xso のWordPressにサーバ側のキャッシュを無効にするというプラグインが入ってて、有効にしてあります。「サーバーキャッシュの設定を有効にしたままで、新規の投稿をすぐに確認できるようになります。」という説明です。てことは、「そもそものサーバのキャッシュの設定を無効にする」のが簡単な対処法かなと思います。

開発:どういう設定なんですかね。

基盤:nginx server side cache で検索。… これですかね。

https://blog.runcloud.io/nginx-fastcgi-cache/
How To Use Nginx FastCGI Cache (RunCache) To Speed Up Your WordPress Performance

開発:サーバは xso が抑えてるからユーザには手が出なそうです。.htaccess 的なもので制御できないもんですかね。… そもそも何をキャッシュの対象に設定しているのやら。うーん、考えてみればこの cgi の出力自体は毎回更新されるし、*.cgi は除外されているのかも。じゃあ、生成した png を CGI として返してみましょう。

開発:で、どうかな?ぽち、ぽち、ぽち、…

基盤:作戦成功ですね (^-^)

開発:なるほど。普通に使えそうですね。自分の知らないCGIを勝手にキャッシュするような横暴はしなそうですから、これは一般的に通用する解決法と思います。

開発:というかそもそも、今どきのサーバでも普通に .cgi が使えるとは知りませんでしたけどね。

基盤:Go の処理系も持ってきてみますかね。さすがにカーネルの版が遠すぎるのが不安ですが。

開発:そうですね、いずれ手が空いたら試しましょう。

-- 2020-0703 SatoxITS

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です