0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

(Open)LiteSpeedでphp.iniに記述した一部の設定が反映されない

Posted at

(Open)LiteSpeedでphp.iniに記述した一部の設定が反映されない

発生した環境:UbuntuServer22.04.1 LTS + OpenLiteSpeed 1.7.16 + LiteSpeedPHP8.0または8.1(直感が正しければそれ以前でも発生すると思われる)

表題の件、具体的にはmax_execution_timeがデフォルトでは30〜60秒になっていると思うのだが、これを「-1」とか「86400」とかに書き換えてLiteSpeedをリロードしても反映されない。
このため、確実に30〜60秒を超える処理について、phpプログラムが時間内に処理を終えることができなかった場合、タイムアウトにより処理が中途終了してしまい意図した通りの動作にならない。
リファレンスではphp.iniを書き換えるか.htaccessで指定するか見たいなことを書いてあるのだが、実際にやってみても有効化しても反映されない。
また、WebAdminでタイムアウト制限を変更しても期待した通りの動作をしない。

結論から言うと、WebAdmin -> バーチャルホスト -> 設定したいドメイン -> Rewrite と進み、ReWriteルールをオンにし、Rewriteルールに以下のように記述すると意図した通りの動作をするようになった。

<IfModule Litespeed>
SetEnv noabort 1
SetEnv noconntimeout 1
RewriteEngine On
RewriteRule (YourPHP-Program) - [E=noabort:1, E=noconntimeout:1]
</IfModule>

スクリーンショット 2022-11-17 14.39.27.png

上掲は一例であり、(YourPHP-Program)の部分は適宜置き換えられたい。
スクリーンショットの例では無差別に全ファイルに対して実行時間無制限を適用するように書いてあるが、実際には有限に設定した方が良いだろう。

他のphp.iniに存在する設定については概ねphp.iniの通りに動作するのに、何故かphp_execution_timeの項目だけ反映されず、ローカルテスト環境であるMAMPのphp.iniの設定を見直したり、色々と時間を取られてしまった。

何かと忘れっぽい自分のためと、もしLiteSpeedをお使いの方で同様の問題にぶち当たった方がおられたら、と思い、備忘録として残しておく。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?