私のサーバーはPleskでCentOSを実行しているため、httpd.confを編集してRewritelockエントリを追加することは、私が理解しているオプションではありません。RewriteLock エントリも vhost.config で許可されていないため、ここで説明されている代替案を見て行き詰まっていると思います。
テストとして、このアプローチを使用して成功しています。これは、エントリが vhost.conf にあるため、わずかに変更されています。ファイルをロックする試みも追加しました。
#!/usr/bin/env php
<?php
/* Extra lines to add to vhost.conf:
RewriteEngine On
RewriteMap tryme prg:/home/trainee/website/andy
RewriteRule (.*\.htm) ${tryme:$1}
*/
set_time_limit(0); # forever program!
$keyboard = fopen("php://stdin","r");
flock($keyboard, LOCK_EX); //lock the file
while (1) {
$line = trim(fgets($keyboard));
if (preg_match('/^(.*)\.htm$/',$line,$igot)) {
print "$igot[1].html\n";
} else {
print "$line\n";
}
}
?>
hereで説明したように、どのプロセスも排他ロックを待機するように見えますが、どのようにテストするのが最善かわかりません。ご存知かもしれませんが、 flock() を使用すると、すべてのプロセスが待機し、この実行中のプログラムでリクエストがスクランブルされないことが保証されますか?