LiteSpeedでのバーチャルホストの作成

Rocky Linux

ロリポップ!カラフルボックスmixhostなどLiteSpeedを使ったレンタルサーバーが徐々に増えてきています。そこで、OpenLiteSpeedを使ってレンタルサーバの試験環境(もどき)を構築していきます。

環境

# cat /etc/redhat-release 
Rocky Linux release 8.5 (Green Obsidian)
# /usr/local/lsws/bin/lshttpd -v
LiteSpeed/1.7.15 Open (BUILD built: Tue Feb 22 16:27:52 UTC 2022) 
        module versions:
        lsquic 3.0.4
        modgzip 1.1
        cache 1.64
        mod_security 1.4

# /usr/local/lsws/lsphp81/bin/lsphp -v
PHP 8.1.2 (litespeed) (built: Jan 18 2022 23:52:03)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
# 

OSはRocky Linux 8.5、OpenLiteSpeedのバージョンは1.7.15、PHPのバージョンは8.1.2です。
OpenLiteSpeedとPHPのインストールについては、こちらの記事を参照してください。

ディレクトリ構成

一般ユーザrockyのホームディレクトリの中でWebサイトを構築できるようにするため、ディレクトリのイメージは以下のような感じとします。
ただし、設定ファイルは一般ユーザが変更するものではないので、LiteSpeedのインストールディレクトリ内としました。

/home
└── rocky/
    └── vhosts/
        └── sample/
            ├── html/
            │   ├── index.html
            │   └── phpinfo.php
            └── logs/
                └── error.log
                └── access.log

/usr/local/lsws/conf/vhosts
└── (バーチャルホスト名)/
    └── vhconf.conf

今後バーチャルホストを増やすときは、/home/rocky/vhostsの下に新しいディレクトリを作成していくイメージです。

ディレクトリ・ファイル名
バーチャルホストルート /home/rocky/vhosts/sample
ドキュメントルート/home/rocky/vhosts/sample/html
エラーログ/home/rocky/vhosts/sample/logs/error.log
アクセスログ/home/rocky/vhosts/sample/logs/access.log
設定ファイル/usr/local/lsws/conf/vhosts/(バーチャルホスト名)/vhconf.conf 

それから、ローカル環境内で使うのでSSLは使用しません。
また、バーチャルホスト用に8089番ポートを使用します。

ディレクトリの作成

一般ユーザrockyホームディレクトリの下にバーチャルホスト用のディレクトリを作成します。
ディレクトリの作成は一般ユーザでログインして作成します。

$ mkdir -p ~/vhosts/sample
$ mkdir ~/vhosts/sample/html
$ mkdir ~/vhosts/sample/logs
$ 
$ ls -l /home/rocky/vhosts/sample
合計 0
drwxrwxr-x 2 rocky rocky 6  3月 11 14:51 html
drwxrwxr-x 2 rocky rocky 6  3月 11 14:51 logs
$ 

一般ユーザのホームディレクトリのパーミッションはデフォルトだと700です。これだとWebサーバプロセスの実行ユーザ(デフォルトだとnobody)が読めないので、パーミッションを705に変更します。
これは多くのレンタルサーバで推奨されている値です。
パーミッションの変更はrootユーザで行います。

# ls -l /home
total 0
drwx------. 3 rocky rocky 97 Mar 11 14:19 rocky
# 
# chmod 705 /home/rocky
# 
# ls -l /home
total 0
drwx---r-x. 3 rocky rocky 97 Mar 11 14:19 rocky
# 

バーチャルホストの作成

基本設定

WebAdmin Consoleにログインして、左側にある「バーチャルホスト」をクリックします。

右側にある「追加」アイコンをクリックします。

*(アスタリスク)が付いている項目が必須項目なので、以下のとおり記入します。

  • バーチャルホスト名:SampleVirtualHost
  • Virtual Host Root:/home/rocky/vhosts/sample
  • 設定ファイル:$SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf
  • スクリプト/外部アプリを有効にする:はい
  • 抑制された:はい

LiteSpeedでは決められた変数がいくつかあります。

変数名意味ここでの値
$SERVER_ROOT インストールディレクトリ /usr/local/lsws
$VH_ROOTバーチャルホストルート/home/rocky/vhosts/sample 
$VH_NAMEバーチャルホスト名SampleVirtualHost

記入が終わったら、「保存」アイコンをクリックします。

保存するための設定ファイルがまだないため、エラーが表示されます。
「CLICK TO CREATE」をクリックすると設定ファイルが作成されます。

再度、「保存」アイコンをクリックします。

バーチャルホストが追加されていることを確認して、「緩やかな再起動」アイコンをクリックします。

ドキュメントルートの設定

新しく作ったバーチャルホストの名前(SampleVirtualHost)をクリックします。

「一般」タブの「編集」アイコンをクリックします。

*(アスタリスク)が付いている項目が必須項目なので、以下のとおり記入します。

  • Document Root:$VH_ROOT/html/
  • GZIP圧縮を有効にする:はい

記入が終わったら、「保存」アイコンをクリックします。

エラーログ/アクセスログの設定

「ログ」タブの「バーチャルホストログ」にある「編集」アイコンをクリックします。

以下のとおり記入します。

  • サーバーログを使用する:はい
  • ファイル名:$VH_ROOT/logs/error.log
  • ローテーションサイズ(バイト):10M
  • 保持日数:7
  • 圧縮アーカイブ:はい

記入が終わったら、「保存」アイコンをクリックします。

「ログ」タブの「アクセスログ」にある「追加」アイコンをクリックします。

以下のとおり記入します。

  • ログ制御:Own Log File
  • ファイル名:$VH_ROOT/logs/access.log
  • ローテーションサイズ(バイト):10M
  • 保持日数:7
  • 圧縮アーカイブ:はい

記入が終わったら、「保存」アイコンをクリックします。

エラーログとアクセスログの設定に間違いがないか確認してから、「緩やかな再起動」アイコンをクリックします。

リスナーの作成

基本設定

左側にある「リスナー」をクリックして、「追加」アイコンをクリックします。

以下のとおり記入します。

  • リスナー名:SampleListner
  • IP アドレス:ANY IPv4
  • ポート:8089
  • セキュア:いいえ

記入が終わったら、「保存」アイコンをクリックします。

バーチャルホストマップの設定

ここでは、バーチャルホストとリスナーの紐付けを指定します。
まず、新しく作ったリスナー名(SampleListner)をクリックします。

「バーチャルホストマップ」にある「追加」アイコンをクリックします。

以下のとおり記入します。

  • バーチャルホスト:SampleVirtualHost
  • ドメイン:*

記入が終わったら、「保存」アイコンをクリックします。

リスナーの設定に間違いがないか確認してから、「緩やかな再起動」アイコンをクリックします。

以上でLiteSpeedでのバーチャルホストの設定は完了です。

Firewallの設定

今回作成したバーチャルホストで8089番ポートを使うので、firewall-cmdを使って8089番ポートを開放します。

# firewall-cmd --add-port=8089/tcp --permanent
# firewall-cmd --reload
# firewall-cmd --add-port=8089/tcp --permanent
success
# firewall-cmd --reload
success
# 
# firewall-cmd --list-port
7080/tcp 8088/tcp 8089/tcp 61000/tcp 61010-61015/tcp
# 

確認用ページの作成

正常にアクセスできるか確認するため、ドキュメントルート(/home/rocky/vhosts/sample/html)の下に、一般ユーザrockyで確認用のHTMLファイル(index.html)とPHPファイル(phpinfo.php)を作成します。

index.html
<html>
<body>
Sample Web Page!
</body>
</html>
phpinfo.php
<?php 
phpinfo(); 
?>

表示確認

http://IPアドレス:8089/」にアクセスして、index.htmlの内容が表示されればOKです。

同様に「http://IPアドレス:8089/phpinfo.php」にアクセスして、PHPの情報が表示されればOKです。

コメント

タイトルとURLをコピーしました