Laravel/LumenをLiteSpeedで動かす
Laravel (や Lumen )を LiteSpeed 上で動かしたい。Laravel を動かすためには、 .htaccess
を有効にする必要がある。
Laravel のディレクトリにある public/.htaccess
は Laravel 用の Apache 設定ファイルで、Apache がこの .htaccess
を読み込むことで Laravel は Apache 上で正常に動作するようになる。
無料の Open LiteSpeed で .htaccess
を読めるのか
LiteSpeed は Apache の設定ファイルをそのまま流用できるのがウリだが、 .htaccess
を読み込むには有料版の LiteSpeed を利用する必要がある。
下記のような記事があり、無料版の Open LiteSpeed でも .htaccess
を読み込めそうだが、僕の場合この記事通りにせっていしても動かなかった。これが、LiteSpeed バージョンなどによる違いなのか、それとも単に僕の設定が間違っているのかはわからなかった。
どうしたのか
こう設定したら動いた。
rewrite { enable 1 rules <<<END_OF_HTACCESS RewriteEngine On RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] END_OF_HTACCESS }
rewrite enable 1
rewriteモジュールを有効ニスルタメニ、 rewrite
の中に enable 1
を書く。
rulesの中身
rules の中身がRewriteの設定だ。
RewriteEngine On RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
これは、Laravel などに入っている以下の設定のうち、mod_rewriteの中身の部分だけ持ってきたものだ。多分全体を持ってきても動くと思うが、negotiationの部分とかは多分いらないだろうから。必要最低限の部分だけ持ってきた。*1
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
設定が適用されているか確認する
http://localhost:7080 にアクセスし、
- 左のメニューから「Virtual Hosts」
- バーチャルホスト名をクリック
- 「Rewrite」のタブを選択
すると今の設定が見られる。
ここに設定が入っていなかったら、confの文法がおかしいなど、なにか問題が起こっている場合が多い。
まとめ
結局 .htaccess を読み込む方法はわからなかったが、.htaccess
の中身を LiteSpeed の conf にコピペしたら動いた。
- 作者:掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2019/12/27
- メディア: 単行本
*1:動かなかった場合の特定を簡単にするため、まずはシンプルな設定で試すのは上等手段だ。