1
我的服務器正在Plesk下運行CentOS,所以編輯我的httpd.conf來添加一個Rewritelock條目並不是一個選項,據我所知。在vhost.config中也不允許使用RewriteLock條目,所以我認爲我被卡在here之下。使用PHP的Apache RewriteLock替代方案?
作爲一個測試,我成功地使用了this的方法,這個方法稍微修改了,因爲我的條目在我的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()來確保所有進程都將等待,並且在這個正在運行的程序中不會有任何請求被混淆。
vhost.conf文件中不允許Rewritelock條目。 – Inator 2013-05-06 20:38:49