第4のWebサーバー LiteSpeedとは

Webサーバーで、LiteSpeedなるものが出ていたようですね。

jbmedia.jp

⇧ 上記サイト様によると、無料版のOpenLiteSpeedでさえもNginxを凌ぐレスポンス性能を発揮しているようです。高速WordPress実行環境「KUSANAGI」と比べるとどうなのか気になりますね。

 

ホワイトハウスのサイトもCMSを、DrupalからWordPressに変えたようですし、WordPressの復習がてらOpenLiteSpeedにチャレンジですね。

www.publickey1.jp

トランプ氏を嫌いになっても、WordPressのことを嫌いにならないでください!ということですかね。

 

LiteSpeedのサイトにアクセス

https://www.litespeedtech.com/ にアクセスし、「Open Source」のリンクをクリック。

f:id:ts0818:20180107221142j:plain

ページ遷移したらば、下の方にスクロールし、

f:id:ts0818:20180107221751j:plain

「OpenLiteSpeed」をクリック。

f:id:ts0818:20180107221826j:plain

「OpenLiteSpeed Wiki」のリンクをクリック。

f:id:ts0818:20180107221922j:plain

ページ遷移したらば、

f:id:ts0818:20180107222017j:plain

リポジトリからインストールする場合は、

Install OpenLiteSpeed and PHP from LiteSpeed Repositories

ソースコードからインストールする場合は、

Install OpenLiteSpeed and PHP from source code

のリンクをクリックします。 

  

http://open.litespeedtech.com/mediawiki/index.php/Help:Repositories

 ⇧  リポジトリからインストールする場合、2017年1月8日(月)現在、対応しているOSはLinuxで、

の3種類のディストリビューションのみのようですね。

 

http://open.litespeedtech.com/mediawiki/index.php/Help:Install:Command_Line

⇧  ソースからインストールする場合は、Macも対応しているみたいです。残念ながら、まだWindowsは対応していないみたいですね。

Minimum system requirements

  • Operating System:
Linux(i386): kernel 2.4 and up, glibc-2.2 and up
CentOS: 5 and up
Ubuntu: 8.04 and up
Debian: 4 and up
Solaris(x86): SunOS 5.8 and up
FreeBSD(i386): 4.5 and up
MacOSX: 10.3 and up
  • CPU:
Intel: 80486 and up
PowerPC: PowerPC G4
  • Memory: 32MB and up
  • Disk:
Installation: 200MB
Runtime: 300MB and up, swapping space depends on usage.

 

UbuntuでOpenLiteSpeedを試してみる

今回は、ソースコードからインストールしてみたいと思います。 最近、Virtual Boxに作成した仮想マシンのOSとしてUbuntu 16.04LTSをインストールしていたので、それを利用していきたいと思います。

Virtual Boxを起動し、Ubuntu仮想マシンを起動します。動かしたい仮想マシンを選択した状態で、「起動(T)」をクリックします。

f:id:ts0818:20180107234057j:plain

f:id:ts0818:20180107234110j:plain

パスワードを入力し、ログインします。

f:id:ts0818:20180107234214j:plain

ログインできましたらば、 

f:id:ts0818:20180107234247j:plain

端末を起動します。

f:id:ts0818:20180108000203j:plain

f:id:ts0818:20180108000222j:plain

 

OpenLiteSpeedのインストールに必要な依存ライブラリをインストール

端末で、OpenLiteSpeedインストールに必要な依存ライブラリをインストールしていきます。 (※『su』コマンドで、スーパーユーザーになってます。)

sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install rcs libpcre3-dev libexpat1-dev libssl-dev libgeoip-dev libudns-dev zlib1g-dev libxml2 libxml2-dev libpng-dev openssl

f:id:ts0818:20180108095243j:plain

f:id:ts0818:20180108095217j:plain

f:id:ts0818:20180108095304j:plain

 

OpenLiteSpeedをダウンロード

ゲストOS(仮想マシン側のUbuntu 16.04LTS)でブラウザを起動し、

http://open.litespeedtech.com/mediawiki/index.php/Downloads にアクセス。

f:id:ts0818:20180108095938j:plain

⇧  今回は、「OpenLiteSpeed 1.4.28」を選択。

⇩  「ファイルを保存する(S)」を選択し、「OK」。

f:id:ts0818:20180108100038j:plain

「ファイル」で、『ダウンロード』にファイルがあります。ファイルを選択した状態で右クリックし、「プロパティ」を選択。

f:id:ts0818:20180108100632j:plain

場所が表示されています。

f:id:ts0818:20180108100908j:plain

端末から、適当な場所に展開しておきます。

www.digitalocean.com

⇧  上記サイト様によると、ホームディレクトリにファイルをダウンロードしてたので、移動しておきます。

mv /home/ユーザー名/ダウンロード/openlitespeed-1.4.28.tgz ~/openlitespeed-1.4.28.tgz
cd ~/

f:id:ts0818:20180108141052j:plain

ダウンロードしたファイルを展開(解凍)します。

tar xzvf openlitespeed-1.4.28.tgz

f:id:ts0818:20180108142735j:plain

 

ディレクトリの移動。

cd openlitespeed-1.4.28

f:id:ts0818:20180108142722j:plain

 

OpenLiteSpeedをインストール

ソフトウェア(ダウンロードして展開したOpenLiteSpeed のこと)の設定を行い、 コンパイルしバイナリのビルドを行います。

./configure
make

f:id:ts0818:20180108144028j:plain

f:id:ts0818:20180108144047j:plain

⇧  makeの結果のメッセージが気にはなりますが...続いてインストール。

sudo make install

f:id:ts0818:20180108144404j:plain

 『/usr/local/lsws』にOpenLiteSpeed がインストールされるようです。

ls /usr/local/lsws

f:id:ts0818:20180108144518p:plain

 

OpenLiteSpeed用のPHPをインストール

OpenLiteSpeed use php build with LSAPI. For CentOS/Ubuntu/Debian, LSPHP can be installed through RPMS. If RPMS are not available for your system, such as FreeBSD and Mac OS, you may compile PHP by yourself.

⇧  OpenLiteSpeedが提供している、独自のPHPパッケージをインストールする必要があるようです。 

の2つの呼ばれ方をするようですかね。

CentOS / Ubuntu / Debianの場合、LSPHPはRPMS経由でインストールできるようです。

www.howtoforge.com

⇧  上記サイト様によると、Ubuntuの場合は、aptでいけるようです。

その前に、LiteSpeedのリポジトリUbuntuに追加しておく必要があるようです。

https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:php:apt

⇧  公式のサイトにも記述されていました。

wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debain_repo.sh | bash

f:id:ts0818:20180108153326j:plain

例のごとく、処理の進行がむちゃくちゃ遅い...不安になる遅さ。12分2秒で取得、結構な時間が経過していたようです。

f:id:ts0818:20180108154157j:plain

リポジトリが取得できたので、LiteSpeed用のPHPがインストールできるようです。

sudo apt install lsphp71 lsphp71-common lsphp71-mysql lsphp71-dev lsphp71-curl lsphp70-dbg -y

f:id:ts0818:20180108154722j:plain

f:id:ts0818:20180108154749j:plain

⇧  インストールできたんですかね?

 

Firewallの設定

デフォルトのUbuntuリポジトリから、UFWUbuntuにおけるFirewallの設定ファイル)をインストールします。

sudo apt install ufw -y

f:id:ts0818:20180108155429j:plain

OpenLiteSpeedにアクセスできるように、UFWに設定を追加します。

ufw allow ssh
ufw allow http
ufw allow https
ufw allow 8088/tcp
ufw allow 7080/tcp

UFWの設定を反映させます。

ufw enable

f:id:ts0818:20180108155909j:plain

UFWが反映されているか確認。

ufw status

f:id:ts0818:20180108160319j:plain

 設定されているようです。

 

OpenLiteSpeedの管理画面へログインするためのAdminのパスワード設定

OpenLiteSpeedでは、ブラウザ上で操作できるGUIの管理画面が用意されているようで、ログインに使用するパスワードを変更できるようです。

OpenLiteSpeedの設定ファイルのあるディレクトリへ移動します。

cd /usr/local/lsws/admin/misc

 

OpenLiteSpeedの管理画面へログインするためのパスワードを設定。

sh admpass.sh

f:id:ts0818:20180108161159j:plain

OpenLiteSpeedの管理画面へログインするため、IPアドレスを確認しときます。

ifconfig

f:id:ts0818:20180108161707j:plain

⇧  自分の場合ですと、enp0s3 のinetアドレスっていうのを使っていく感じですかね。

ちなみに自分はネットワーク設定をブリッジアダプターにしてしまっているのですが、セキュリティ的に好ましくないようです。

qiita.com

⇧  上記サイト様が詳しそうです。

 

OpenLiteSpeedの起動

OpenLiteSpeedを起動します。ソースコードからインストールした場合、起動のさせ方は、

/usr/local/lsws/bin/lswsctrl start

でいけるようです。

f:id:ts0818:20180108163829j:plain

ホストOS(Windows 10 Home)側のブラウザで、『http://仮想マシンIPアドレス:7080』にアクセスしてみます。

f:id:ts0818:20180108164230j:plain

⇧  「詳細情報」をクリックすると、「192.168.〇.〇にアクセスする(安全ではありません)」というリンクが表示されるのでクリック。

ログイン画面が表示されます。

f:id:ts0818:20180108164448j:plain

設定したユーザーとパスワードでログインします。

f:id:ts0818:20180108164514j:plain

OpenLiteSpeedの管理画面にログインできました。

f:id:ts0818:20180108164546j:plain

OpenLiteSpeedの停止は、 

/usr/local/lsws/bin/lswsctrl stop

でいけるようです。

 

PHPのバージョンを変更

デフォルトで使用されているのが、PHP7.0らしく、PHP7.1に変更していきます。

左のサイドバーから「Server Configuration」をクリック。

f:id:ts0818:20180108165242p:plain

「External App」タブをクリック。

f:id:ts0818:20180108165341j:plain

「Add」ボタンをクリックします。

f:id:ts0818:20180108165537j:plain

「LiteSpeed SAPI App」を選択します。

f:id:ts0818:20180108165744j:plain

「Next」ボタンをクリック。

f:id:ts0818:20180108170030j:plain

「LiteSpeed SAPI App」のところで情報を入力していきます。

f:id:ts0818:20180108170603j:plain

見本のサイトでは、 

 Name: lsphp71
 Address: uds://tmp/lshttpd/lsphp.sock
 Notes: lsphp71 for OpenLiteSpeed
 Max Connections: 35
 Initial Request Timeout (secs): 60
 Retry Timeout (secs): 0
 Command: $SERVER_ROOT/lsphp71/bin/lsphp

を入力する感じです。入力したら、「Save」ボタンをクリック。

f:id:ts0818:20180108170724j:plain

追加されました。

f:id:ts0818:20180108171256j:plain

続いて、「Script Handler」タブをクリック。「Handler Name*」で「lsphp71」を選択します。

f:id:ts0818:20180108171813j:plain

「Save」ボタンをクリック。

f:id:ts0818:20180108171930j:plain

設定できました。

f:id:ts0818:20180108172004j:plain

 

OpenLiteSpeedのポート番号を80に変更

WordPressでマルチサイトを構築するときなどは、ポート番号が80以外だと駄目だった気がするので、ポート番号を変えてしまいます。

左サイドバーから「Listners」を選択。

f:id:ts0818:20180108172728p:plain

「View」ボタンをクリック。

f:id:ts0818:20180108173107j:plain

「Address Settings」のところの「Edit」ボタンをクリック。

f:id:ts0818:20180108173141j:plain

「Port*」を「80」に変更し、「Save」ボタンをクリック。

f:id:ts0818:20180108173232j:plain

そしたら、OpenLiteSpeedを再起動します。管理画面からも再起動できるらしいです。

「Graceful Restart」というボタンをクリック。

f:id:ts0818:20180108173659p:plain

「OK」をクリック。

f:id:ts0818:20180108173938j:plain

「LSWS PID」の数字が変わっているので、再起動されたようです。(LSWSのプロセスIDが変わっているので。)

f:id:ts0818:20180108174005j:plain

ブラウザで「http://仮想マシンIPアドレス」にアクセスできました。

f:id:ts0818:20180108174317j:plain

curl」コマンドで端末からアクセスもできました。

curl -I [仮想マシンのIPアドレス]

f:id:ts0818:20180108174611j:plain

 

PHPのバージョン確認

ブラウザで、「http://仮想マシンIPアドレス/phpinfo.php」 でアクセスして確認できるようです。

f:id:ts0818:20180108175114j:plain

 

MySQLのインストール

php71-mysqlをインストールしてるから、MySQLがインストールされてるのかと思ったけどそういうわけじゃないんですね。インストールされていたのは、PHPからMySQLを利用できるようにするモジュールってことですかね、紛らわしい~。

https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:php:apt:packages

⇧  aptを使う場合の公式サイトのリポジトリのパッケージ一覧

というわけで、データベースとしてMySQLをインストールしていきたいと思います。MariaDBでも良いみたいですが。

awesome-linus.tk

⇧  上記サイト様を参考に、せっかくなんで最新版のMySQLをインストールしていきましょう。

https://dev.mysql.com/downloads/repo/apt/ にアクセスし、下のほうにスクロールし、

f:id:ts0818:20180108185850j:plain

「Download」をクリック。 

f:id:ts0818:20180108190302j:plain

「No thanks, just start my download.」のリンクを右クリックし、「リンクのアドレスをコピー(E)」をクリック。

f:id:ts0818:20180108190318j:plain

ゲストOS(Ubuntu 16.04 LTS)側の端末で、「wget」コマンドで、コピーしておいたURLからファイルをダウンロードします。

一応、ホームディレクトリに移動しておいてから、MySQLのAPTリポジトリをダウンロードします。 

cd ~/
wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb

f:id:ts0818:20180108192520j:plain

MySQLのAPTリポジトリをインストールします。 

dpkg -i mysql-apt-config_0.8.9-1_all.deb

f:id:ts0818:20180108193836j:plain

⇧  選択されてるものでよければ、↓でOKを選択し、

f:id:ts0818:20180108194224j:plain

Enterをクリック。端末画面に戻るので、

f:id:ts0818:20180108194253j:plain

「apt-get update」コマンドを実行。

apt-get update

f:id:ts0818:20180108195731j:plain

f:id:ts0818:20180108195744j:plain

MySQLをインストール。 

apt-get install mysql-server

f:id:ts0818:20180108200212j:plain

途中で、MySQLにログインするときのrootユーザーのパスワードを決めるように促されるので、適当に入力します。

f:id:ts0818:20180108200318j:plain

確認のため、入力したパスワードを再度入力します。

f:id:ts0818:20180108200510j:plain

MySQLがインストールされました。

f:id:ts0818:20180108200557j:plain

MySQLのバージョン確認 。

mysql --version

f:id:ts0818:20180108200747j:plain

 

MySQLの日本語設定

MySQLの設定ファイルのバックアップを作成。

cp -p /etc/mysql/my.cnf /etc/mysql/my.cnf_default

f:id:ts0818:20180108201629j:plain

MySQLの設定ファイルの編集。

vi /etc/mysql/my.cnf

f:id:ts0818:20180108202920j:plain

viエディタで設定ファイルを開いたら、「i」で入力モードになり、

f:id:ts0818:20180108203057j:plain

下記を追記します。 

[mysqld]                                                      
character-set-server=utf8                                     
skip-character-set-client-handshake                           
default-storage-engine=INNODB                                 
                                                              
[mysqldump]                                                   
default-character-set=utf8                                    
                                                              
[mysql]                                                       
default-character-set=utf8           

f:id:ts0818:20180108203150j:plain

「:wq」で保存します。(UbuntuのviはCentOSのviとちょっと動きが違う気がします...Ubunutuはnanoっていうエディタも使えるみたいです。)

MySQLを再起動し、設定を反映させます。

systemctl restart mysql.service
systemctl status mysql.service

f:id:ts0818:20180108203706j:plain

 

 

MySQLWordPress用のデータベースを作成

MySQLにrootユーザーでログインします。 

mysql -u root -p

f:id:ts0818:20180108201100j:plain

文字コードの設定が上手くいってるか確認。

show global variables like '%character%';

f:id:ts0818:20180108204120j:plain

 イケてるようなので、データベースを作成します。

CREATE DATABASE litespeedwp;

f:id:ts0818:20180108204815j:plain

今回は、ユーザー作成とかもろもろ割愛させていただきます。

quitでMySQLへの接続を切断しておきます。

f:id:ts0818:20180108205534j:plain

 

WordPressのインストール

OpenLiteSpeedがインストールされているディレクトリ「/usr/local/lsws/」に、WordPressのドキュメントルート用のディレクトリを作成します。(デフォルトでExampleというディレクトリが用意されているので、そちらを使ってもいけるようです。)

mkdir /usr/local/lsws/litewptest
ls /usr/local/lsws

f:id:ts0818:20180108205905j:plain

本当は、「wp-cli」というWordPress用のコマンドをインストールして、「wp-cli」コマンドでWordPressをインストールしたほうが良いとは思いますが、今回はwgetコマンドでダウンロードして、WordPressのドキュメントルート用のディレクトリに展開していきたいと思います。

ja.wordpress.org

⇧  WordPressはzip形式でもダウンロードできます。ダウンロードのリンクを右クリックでコピーしときましょう。

自分は、tar.gz形式のほうを利用しています。

cd /usr/local/lsws/litewptest
wget https://ja.wordpress.org/wordpress-4.9.1-ja.tar.gz

f:id:ts0818:20180108211057j:plain

 展開します。

tar xzvf wordpress-4.9.1-ja.tar.gz

f:id:ts0818:20180108211835j:plain 

f:id:ts0818:20180108211851j:plain

www.rosehosting.com

⇧  上記サイト様によると、Wordpressディレクトリの権限を変更しておく必要があるようです。

chown -R nobody:nogroup /usr/local/lsws/litewptest/wordpress

f:id:ts0818:20180108213953j:plain

wp-config.phpの編集

WordPressの設定ファイルを作成します。

cd wordpress
mv wp-config-sample.php wp-config.php

f:id:ts0818:20180108214444j:plain

wp-config.phpをviエディタで編集。

vi wp-config.php

f:id:ts0818:20180108215556j:plain

⇧  ホスト名に、仮想マシンIPアドレスでいけると思いきや駄目でしたので、localhostにしてます。

作成したデータベースとデータベースのユーザー名、パスワードを入力し、保存します。

f:id:ts0818:20180108215654j:plain

 VirtualHostの設定

OpenLiteSpeedの管理画面から、VirtualHOstの設定。

左サイドバーから「Virtual Hosts」を選択。「Add」ボタンをクリック。

f:id:ts0818:20180108225726j:plain

新規でVirtualHostを作成。

Virtual Host Name: litewptest
Virtual Host Root: $SERVER_ROOT/litewptest/
Config File: $SERVER_ROOT/conf/vhosts/litewptest/vhconf.conf

Enable Scripts/ExtApps: Yes
Restrained: No

を設定。ディレクトリ名は自分の作成したもの(WordPressのドキュメントルート用のディレクトリ)に合わせます。(自分の場合ですと、「litewptest」になっています。)

「Edit」ボタンをクリック。

f:id:ts0818:20180108225805j:plain

エラーが出るので、「CLICK TO CREATE」のリンクをクリック。

f:id:ts0818:20180108230049j:plain

「Save」ボタンをクリック。

f:id:ts0818:20180108230142j:plain

続いて、「General」タブの中の「General」の「Edit」ボタンをクリック。

f:id:ts0818:20180108230617j:plain

「Document Root*」を「$VH_ROOT/wordpress/」とし、「Save」ボタンをクリック。

f:id:ts0818:20180108230542j:plain

同じく「General」タブの中の「Index Files」の「Edit」ボタンをクリック。

f:id:ts0818:20180108230738j:plain

「Index Files」の項目に、「index.php index.html」を追加し、「Save」ボタンをクリック。

f:id:ts0818:20180108231127j:plain

 

 

WordPressのRewritesとPermalinkの設定

Rewrite」タブをクリックし、「Rewrite Control」の「Edit」ボタンをクリック。

f:id:ts0818:20180108231458j:plain

「Enable Rewrite」で「Yes」にチェックを入れ、「Save」ボタンをクリック。

f:id:ts0818:20180108231511j:plain

Rewrite」タブの「Rewrite Rules」の「Edit」ボタンをクリック。

f:id:ts0818:20180108231524j:plain

下記のように記述し、「Save」ボタンをクリック。 

RewriteBase /
RewriteRule ^/index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

f:id:ts0818:20180108231539j:plain

リスナーの設定

左サイドバーから「Listners」を選択し、「Listner List」の「View」ボタンをクリック。

f:id:ts0818:20180108232718j:plain

「Virtual Host Mapping」の「Edit」ボタンをクリック。

f:id:ts0818:20180108232646j:plain

「Virtual Host*」を変更。 

f:id:ts0818:20180108232934j:plain

 

 

 OpenLiteSpeedを再起動します。

f:id:ts0818:20180108223034p:plain

f:id:ts0818:20180108223202j:plain

f:id:ts0818:20180108223214j:plain

ブラウザで、「http://仮想マシンのIPアドレス/」にアクセスするとお馴染みの画面が!

f:id:ts0818:20180108233417j:plain

必要な情報を入力し、「WordPressをインストール」をクリック。

f:id:ts0818:20180108234117j:plain

「ログイン」をクリック。

f:id:ts0818:20180108234220j:plain

ユーザー名、パスワードを入力し、「ログイン」をクリック。

f:id:ts0818:20180108234251j:plain

管理画面にログインできました。

f:id:ts0818:20180108234326j:plain

 

今回もハマりにハマりしたが、なんとかOpenLiteSpeed上でWordPressの構築までできました。ということで今回はこのへんで。