Debian 12にLOMPスタック(OpenLiteSpeed、MySQL、およびPHP)をインストールする方法
Debian 12にLOMPスタック(OpenLiteSpeed、MySQL、およびPHP)をインストールする方法
このチュートリアルはこれらのOSバージョンのために存在します
- Debian 12 (ブックワーム)
- Debian 11 (バルセイヤ)
- Debian 10 (バスター)
このページで
- 前提条件
- ステップ1 - ファイアウォールを設定する
ステップ2 - OpenLiteSpeedをインストールする
- 管理者パスワードを作成する
ステップ6 - OpenLiteSpeedを設定する
ステップ7 - PHPを設定する
OpenLiteSpeedは、LiteSpeed Technologiesによって開発されたLiteSpeedサーバーの軽量でオープンソースのバージョンです。Apacheリライトルール、HTTP/2、HTTP/3、TLS v1.3およびQUICプロトコルをサポートしています。WebGUIベースの管理パネルが付属しており、他のサーバーとは異なり、管理が容易です。
LOMPスタックは、Linux、OpenLiteSpeed、MySQL/MariaDB、およびPHPの頭字語です。LiteSpeedサーバーはその速度で知られており、特にLiteSpeedサーバーアプリケーションプログラミングインターフェース(LSAPI)を使用して統合されるPHPにおいて特に優れています。LiteSpeed PHP(LSPHP)インタープリタは、LSAPIを介してダイナミックPHPページを提供します。
このチュートリアルでは、Debian 12 マシンに OpenLiteSpeed サーバーをインストールする方法を学びます。
前提条件
Debian 12を実行しているサーバー。
sudo権限を持つ非ルートユーザー。
サーバーを指す完全修飾ドメイン名(FQDN)として example.com があります。
SELinuxはOpenLiteSpeedと連携するために無効にしたり設定したりする必要はありません。
すべてが最新であることを確認してください。
sudo apt update
sudo apt upgrade
あなたのシステムに必要ないくつかのパッケージ。
sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y
これらのパッケージの一部は、すでにあなたのシステムにインストールされている可能性があります。
ステップ1 - ファイアウォールを設定する
最初のステップはファイアウォールを設定することです。Debianにはデフォルトでufw(Uncomplicated Firewall)が付属しています。
ファイアウォールが実行中かどうか確認してください。
sudo ufw status
次の出力が得られます。
Status: inactive
ファイアウォールがSSHポートを有効にした際に現在の接続を切断しないように、SSHポートを許可してください。
sudo ufw allow OpenSSH
HTTPおよびHTTPSポートも許可してください。
sudo ufw allow http
sudo ufw allow https
Openlitespeedに関連するオープンポート。
sudo ufw allow 7080/tcp
ファイアウォールを有効にする
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
ファイアウォールの状態を再度確認してください。
sudo ufw status
あなたは似たような出力を見るべきです。
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
7080/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
7080/tcp (v6) ALLOW Anywhere (v6)
ステップ2 - OpenLiteSpeedをインストールする
OpenLiteSpeedはDebian 12用のパッケージを提供していません。したがって、ソースコードから自分たちのコピーをビルドします。
OpenLiteSpeedのソースコードファイルをダウンロードしてください。最新のソースコードファイルへのリンクは、OpenLiteSpeedの公式ダウンロードページから入手できます。
wget https://openlitespeed.org/packages/openlitespeed-1.7.18.src.tgz
ファイルを抽出してください。
tar -zxf openlitespeed-*.tgz
抽出されたディレクトリに切り替えます。
cd openlitespeed-1.7.18
サーバーパッケージを構築します。
sudo ./build.sh
プロセスが完了するまで、5〜10分ほど待つ必要があります。プロセス中に受け取る警告は無視してください。完了したら、次の出力が得られます。
[100%] Linking CXX shared library modpagespeed.so
/usr/bin/ld: warning: 140.x25519-asm-x86_64.o.o: missing .note.GNU-stack section implies executable stack
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
[100%] Built target modpagespeed
Start to pack files.
-e Building finished, please run ./install.sh for installation.
-e You may want to update the ols.conf to change the settings before installation.
-e Enjoy.
プロセスが終了したら、ols.confファイルを編集のために開いてください。
sudo nano ols.conf
下記のようにファイルを編集してください。
#If you want to change the default values, please update this file.
#
SERVERROOT=/usr/local/lsws
OPENLSWS_USER=nobody
OPENLSWS_GROUP=nobody
OPENLSWS_ADMIN=navjot
[email
OPENLSWS_ADMINSSL=yes
OPENLSWS_ADMINPORT=7080
USE_LSPHP7=yes
DEFAULT_TMP_DIR=/tmp/lshttpd
PID_FILE=/tmp/lshttpd/lshttpd.pid
OPENLSWS_EXAMPLEPORT=8088
#You can set password here
#OPENLSWS_PASSWORD=
ここにパスワードを追加しないでください。後でコマンドラインを使用してパスワードを設定します。完了したら、Ctrl + X を押してファイルを保存し、プロンプトが表示されたら Y を入力してください。
OpenLiteSpeedが構築されたので、これをインストールしましょう。
sudo ./install.sh
インストーラスクリプトは、サーバーに対して lsws サービスをインストールおよび有効にします。完了すると、次の出力が表示されます。
Updating webcache manager, please waiting ...
Downloading latest shared code tar file...
Checking tar file md5...
Removing existing shared code directory...
Extracting downloaded shared code...
Removing local shared code tar file...
Updating lscmctl script...
Done!
-e Installation finished, Enjoy!
-e Your webAdmin password is kXjWTl5j, written to file /usr/local/lsws/adminpasswd.
OpenLiteSpeedサーバーを開始します。
sudo systemctl start lsws
サービスの状態を確認してください。
sudo systemctl status lsws
? lsws.service - LSB: lshttpd
Loaded: loaded (/etc/init.d/lsws; generated)
Active: active (running) since Wed 2023-09-27 15:55:13 UTC; 4h 18min ago
Docs: man:systemd-sysv-generator(8)
Tasks: 4 (limit: 4652)
Memory: 79.2M
CPU: 37.823s
CGroup: /system.slice/lsws.service
??64164 "openlitespeed (lshttpd - main)"
??64171 "openlitespeed (lscgid)"
??64184 "openlitespeed (lshttpd - #01)"
??64185 "openlitespeed (lshttpd - #02)"
Sep 27 15:55:11 lomp systemd[1]: Starting lsws.service - LSB: lshttpd...
Sep 27 15:55:13 lomp systemd[1]: Started lsws.service - LSB: lshttpd.
インストールされているサーバーのバージョンを確認してください。
/usr/local/lsws/bin/lshttpd -v
LiteSpeed/1.7.18 Open (BUILD built: Tue Aug 29 12:59:39 UTC 2023)
module versions:
lsquic 3.2.0
modgzip 1.1
cache 1.64
mod_security 1.4 (with libmodsecurity v3.0.9)
管理者パスワードを作成する
インストールプロセス中に与えられた管理者パスワードを使用できます。ただし、リセットして自分のパスワードを作成するべきです。パスワードリセットスクリプトを実行してください。
sudo /usr/local/lsws/admin/misc/admpass.sh
次の出力が得られます。ユーザー名を選択し、強力なパスワードを設定してください。
Please specify the user name of administrator.
This is the user name required to login the administration Web interface.
User name [admin]: navjot
Please specify the administrator's password.
This is the password required to login the administration Web interface.
Password:
Retype password:
Administrator's username/password is updated successfully!
新しい管理者パスワードを使用できるようになりました。
OpenLiteSpeedの管理パネルにアクセスするには、http://<YOURSERVERIP>:7080を開いてください。最初のログイン時に、ブラウザが接続が安全ではないと警告します。「詳細設定」をクリックし、「リスクを受け入れて続行」をクリックします(Firefoxの場合)または「<YOURSERVERIP>(危険)に進む」をクリックします(Chromiumベースのブラウザの場合)。この警告は再度表示されません。
ログインページが表示されるはずです。
以前に設定した資格情報を入力し、ログインボタンを押して進んでください。
次の画面が表示されます。
ステップ3 - MariaDBをインストールする
DebianはもはやMySQLサーバーを出荷していません。したがって、私たちはMySQLのドロップイン置き換えであるMariaDBを使用します。しかし、先に進む前に、LiteSpeedリポジトリを更新する必要があります。インストーラーを通じて追加されたLiteSpeedリポジトリは正常に機能しません。
/etc/apt/sources.list.d/lst_debian_repo.listファイルを編集のために開いてください。
sudo nano /etc/apt/sources.list.d/lst_debian_repo.list
Debian 11 (bullseye)を追加してファイルの内容を変更してください。リポジトリが更新されていないため、Debian 12 (bookworm)を使用することはできません。
deb http://rpms.litespeedtech.com/debian/ bullseye main
完了したら、Ctrl + Xを押してファイルを保存し、求められたときにYを入力してください。
MariaDBサーバーをインストールしてください。
sudo apt install mariadb-server
MariaDBサービスは、インストール後に自動的に開始され、実行中です。
サービスの状態を確認してください。
sudo systemctl status mariadb
次の出力が得られます。
? mariadb.service - MariaDB 10.11.3 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; preset: enabled)
Active: active (running) since Fri 2023-09-29 01:21:09 UTC; 1min 26s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 361450 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 10 (limit: 4652)
Memory: 190.8M
CPU: 411ms
CGroup: /system.slice/mariadb.service
??361450 /usr/sbin/mariadbd
MariaDBのセキュリティスクリプトを実行してください。
sudo mariadb-secure-installation
ルートパスワードが求められます。パスワードを設定していないので、エンターを押してください。
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
次に、Unixソケット認証方法に切り替えるかどうかを尋ねられます。unix_socketプラグインを使用すると、オペレーティングシステムの資格情報を使用してMariaDBサーバーに接続できます。保護されたルートアカウントをすでに持っているため、続行するにはnを入力してください。
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
次に、ルートパスワードを変更するかどうか尋ねられます。Debian 12では、ルートパスワードは自動システムメンテナンスに密接に関連しているため、そのままにしておくべきです。続行するにはnと入力してください。
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] n
次に、MariaDBのセキュリティを向上させるために特定の質問をされます。匿名ユーザーを削除するにはYを入力し、リモートルートログインを禁止し、テストデータベースを削除し、特権テーブルを再読み込みします。
... skipping.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
コマンドラインで sudo mysql または sudo mariadb と入力することで、MariaDB シェルに入ることができます。
ステップ4 - PHPをインストールする
私たちがソースからパッケージを構築したため、推奨されない古いバージョンのPHPがコンパイルされ、ビルドされます。次のコマンドで確認できます。
/usr/local/lsws/fcgi-bin/lsphp -v
PHP 5.6.40 (litespeed) (built: May 10 2023 23:03:31)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
したがって、最新バージョンのPHPを構築してインストールする必要があります。しかし、進める前にビルドツールをインストールする必要があります。
sudo apt install build-essential autoconf libtool bison re2c pkg-config
次のステップは、PHPのビルドプロセスに必要なパッケージをインストールすることです。
sudo apt install libssl-dev libsqlite3-dev zlib1g-dev libcurl4-openssl-dev libonig-dev libzip-dev libmemcached-dev libreadline-dev libgmp-dev libpng-dev libjpeg-dev libwebp-dev libxpm-dev libicu-dev libfreetype6-dev libxslt-dev libldb-dev libtidy-dev libvips-dev libsodium-dev libavif-dev libldap2-dev libxml2-dev libkrb5-dev libc-client2007e-dev libpq-dev libargon2-0 libargon2-dev libbz2-dev libffi-dev libc-client-dev libpspell-dev flex libgmp3-dev libmcrypt-dev libmhash-dev freetds-dev libmariadb-dev libmariadb-dev-compat libncurses5-dev libpcre3-dev libaspell-dev librecode-dev libsnmp-dev
次に、PHPのソースコードをダウンロードします。執筆時点で最新のバージョンであるPHP 8.2.10バージョンをダウンロードします。
cd ~
wget https://www.php.net/distributions/php-8.2.11.tar.gz
ファイルを抽出してください。
tar -xzf php-8.2.11.tar.gz
ダウンロードされたディレクトリに切り替えます。
cd php-8.2.11
次に、次のオプションを使って設定スクリプトを実行します。--enable-litespeedオプションは必須です。
sudo ./configure --prefix=/usr/local/lsws/lsphp82 --enable-bcmath --enable-calendar --enable-exif --enable-ftp --enable-gd --enable-intl --enable-mbregex --enable-mbstring --enable-mysqlnd --enable-opcache --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --with-avif --with-curl --with-ffi --with-freetype --with-gettext --with-gmp --with-imap --with-imap-ssl --with-jpeg --with-kerberos --with-libxml --with-ldap --with-mysqli --with-mysql-sock=/run/mysqld/mysqld.sock --with-openssl --with-password-argon2 --with-pdo-mysql=mysqlnd --with-pdo-pgsql=/usr/bin/pg_config --with-pear --with-pspell --with-readline --with-sodium --with-tidy --with-webp --with-xpm --with-xsl --with-zip --with-zlib --enable-litespeed
スクリプトが終了すると、次の出力が得られるはずです。
+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+
Thank you for using PHP.
ソースをコンパイルします。
sudo make -j $(nproc)
完了すると、似たような出力を受け取ることになります。
/bin/bash /home/navjot/php-8.2.11/libtool --silent --preserve-dup-deps --tag CC --mode=link cc -shared -I/home/navjot/php-8.2.11/include -I/home/navjot/php-8.2.11/main -I/home/navjot/php-8.2.11 -I/home/navjot/php-8.2.11/ext/date/lib -I/usr/include/libxml2 -I/usr/include/x86_64-linux-gnu -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/c-client -I/home/navjot/php-8.2.11/ext/mbstring/libmbfl -I/home/navjot/php-8.2.11/ext/mbstring/libmbfl/mbfl -I/usr/include/postgresql -I/usr/include/pspell -I/usr/include/tidy -I/home/navjot/php-8.2.11/TSRM -I/home/navjot/php-8.2.11/Zend -D_GNU_SOURCE -I/usr/include/c-client -fno-common -Wstrict-prototypes -Wformat-truncation -Wlogical-op -Wduplicated-cond -Wno-clobbered -Wall -Wextra -Wno-strict-aliasing -Wno-unused-parameter -Wno-sign-compare -g -O2 -fvisibility=hidden -Wimplicit-fallthrough=1 -DZEND_SIGNALS -o ext/opcache/opcache.la -export-dynamic -avoid-version -prefer-pic -module -rpath /home/navjot/php-8.2.11/modules -L/usr/lib/x86_64-linux-gnu/mit-krb5 -L/usr/lib/x86_64-linux-gnu ext/opcache/ZendAccelerator.lo ext/opcache/zend_accelerator_blacklist.lo ext/opcache/zend_accelerator_debug.lo ext/opcache/zend_accelerator_hash.lo ext/opcache/zend_accelerator_module.lo ext/opcache/zend_persist.lo ext/opcache/zend_persist_calc.lo ext/opcache/zend_file_cache.lo ext/opcache/zend_shared_alloc.lo ext/opcache/zend_accelerator_util_funcs.lo ext/opcache/shared_alloc_shm.lo ext/opcache/shared_alloc_mmap.lo ext/opcache/shared_alloc_posix.lo ext/opcache/jit/zend_jit.lo ext/opcache/jit/zend_jit_gdb.lo ext/opcache/jit/zend_jit_vm_helpers.lo -lrt
/bin/bash /home/navjot/php-8.2.11/libtool --silent --preserve-dup-deps --tag CC --mode=install cp ext/opcache/opcache.la /home/navjot/php-8.2.11/modules
Build complete.
Don't forget to run 'make test'.
完了したら、次のコマンドを実行してバージョンを確認してみてください。
./sapi/litespeed/php -v
PHP 8.2.11 (litespeed) (built: Sep 28 2023 18:40:08)
Copyright (c) The PHP Group
Zend Engine v4.2.11, Copyright (c) Zend Technologies
PHPをインストールしてください。
sudo make install
次の出力が得られます。
Installing shared extensions: /usr/local/lsws/lsphp82/lib/php/extensions/no-debug-non-zts-20220829/
Installing PHP CLI binary: /usr/local/lsws/lsphp82/bin/
Installing PHP CLI man page: /usr/local/lsws/lsphp82/php/man/man1/
Installing PHP LiteSpeed binary: /usr/local/lsws/lsphp82/bin/
Installing phpdbg binary: /usr/local/lsws/lsphp82/bin/
Installing phpdbg man page: /usr/local/lsws/lsphp82/php/man/man1/
Installing PHP CGI binary: /usr/local/lsws/lsphp82/bin/
Installing PHP CGI man page: /usr/local/lsws/lsphp82/php/man/man1/
Installing build environment: /usr/local/lsws/lsphp82/lib/php/build/
Installing header files: /usr/local/lsws/lsphp82/include/php/
Installing helper programs: /usr/local/lsws/lsphp82/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/lsws/lsphp82/php/man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment: /usr/local/lsws/lsphp82/lib/php/
[PEAR] Archive_Tar - installed: 1.4.14
[PEAR] Console_Getopt - installed: 1.4.3
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util - installed: 1.4.5
warning: pear/PEAR dependency package "pear/Archive_Tar" installed version 1.4.14 is not the recommended version 1.4.4
[PEAR] PEAR - installed: 1.10.13
Wrote PEAR system config file at: /usr/local/lsws/lsphp82/etc/pear.conf
You may want to add: /usr/local/lsws/lsphp82/lib/php to your php.ini include_path
Installing PDO headers: /usr/local/lsws/lsphp82/include/php/ext/pdo/
PHPのインストールを確認してください。/usr/local/lsws/lsphp82/binディレクトリには、2つのPHPバイナリがあります。一つは通常のphpで、これはコマンドライン版です。もう一つはLitespeed版のlsphpです。私たちが使用するのは後者です。
/usr/local/lsws/lsphp82/bin/lsphp -v
PHP 8.2.11 (litespeed) (built: Sep 28 2023 18:40:08)
Copyright (c) The PHP Group
Zend Engine v4.2.11, Copyright (c) Zend Technologies
有効なPHPモジュールのリストを確認できます。
/usr/local/lsws/lsphp82/bin/php --modules
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
imap
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
Phar
posix
pspell
random
readline
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
sysvsem
sysvshm
tidy
tokenizer
xml
xmlreader
xmlwriter
xsl
zip
zlib
[Zend Modules]
php.ini-productionをインストールフォルダーから/usr/local/lsws/lsphp82/libフォルダーにコピーしてください。
sudo cp php.ini-production /usr/local/lsws/lsphp82/lib/php.ini
後でOpenLiteSpeedをPHPと一緒に動作するように設定します。
php.iniを編集のために開いてください。
sudo nano /usr/local/lsws/lsphp82/lib/php.ini
include_pathという変数を見つけ、その値を以下のように変更してください。
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2"
include_path = /usr/local/lsws/lsphp82/lib/php
完了したら、Ctrl + Xを押してファイルを保存し、求められたときにYを入力してください。
ステップ5 - MariaDBの設定
MariaDBシェルにログインします。
sudo mysql
テストデータベースを作成します。testdbを適切なデータベース名に置き換えてください。
mysql> CREATE DATABASE testdb;
テストユーザーを作成します。testuserを適切なユーザー名に置き換えてください。Your_Password123を強力なパスワードに置き換えてください。
mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'Your_Password123';
データベースのすべての特権をそのユーザーに付与してください。
mysql> GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
ルートユーザーを変更しないため、パスワード認証を使用して管理作業を行うための別のSQLユーザーを作成する必要があります。このユーザーには強力なパスワードを選んでください。
MariaDB> GRANT ALL ON *.* TO 'navjot'@'localhost' IDENTIFIED BY 'Yourpassword32!' WITH GRANT OPTION;
ユーザー権限を消去します。
mysql> FLUSH PRIVILEGES;
MySQLシェルを終了します。
mysql> exit
ステップ6 - OpenLiteSpeedを設定する
HTTPポートを80に戻してください
デフォルトのHTTPポートを80に変更しましょう。先ほど作成した資格情報で、http://<YOURSERVERIP>:7080 の管理パネルにログインします。
リスナーセクションを左から訪問してください。ポート8080のデフォルトリスナーが表示されます。
表示ボタンをクリックして詳細な設定を表示します。次のページのリスナーのデフォルト > 一般ページで、編集アイコンをクリックし、ポートを8080から80に変更します。
保存をクリックし、その後、優雅な再起動ボタンをクリックしてサーバーを再起動します。
ステップ7 - PHPを設定する
このステップでは、私たちのPHP 8.2のコピーをサーバーに関連付ける必要があります。
左側のサーバー設定セクションをクリックし、その後外部アプリタブをクリックしてください。PHP用の既存のLiteSpeedアプリが表示されます。それをいくつか編集します。
編集ボタンをクリックしてPHPアプリを編集します。
次に、以下に示すように構成を合わせてください。他のすべてのフィールドは空白のままにしてください。
Name: lsphp
Address: uds://tmp/lshttpd/lsphp.sock
Max Connections: 35
Environment: PHP_LSAPI_MAX_REQUESTS=500
PHP_LSAPI_CHILDREN=35
LSAPI_AVOID_FORK=200M
Initial Request Timeout (secs): 60
Retry Timeout : 0
Persistent Connection: Yes
Response Buffering: no
Start By Server: Yes(Through CGI Daemon)
Command: lsphp82/bin/lsphp
Back Log: 100
Instances: 1
Priority: 0
Memory Soft Limit (bytes): 2047M
Memory Hard Limit (bytes): 2047M
Process Soft Limit: 1400
Process Hard Limit: 1500
完了したら保存をクリックしてください。
私たちが独自のPHP 8.2アプリを作成したので、サーバーにそれを使用するように指示する必要があります。デフォルトのリストを編集したので、すでに設定されています。優雅な再起動ボタンをクリックしてサーバーを再起動します。
あなたのPHPが正しく切り替えられているかをテストするには、ブラウザでhttp://<YOURSERVERIP>/phpinfo.phpにアクセスしてください。
PHPを再起動する
OpenLiteSpeedでは、php.iniを編集したり新しいPHPモジュールをインストールした場合、サーバーを再起動しても変更は反映されません。それにはPHPプロセスの再起動が必要です。まず、lsphpプロセスのプロセスIDを見つける必要があります。
ps aux | grep lsphp
nobody 500747 0.9 0.8 121104 34928 ? S 05:58 0:00 lsphp
nobody 500748 0.0 0.4 121104 16760 ? Ss 05:58 0:00 lsphp
navjot 500751 0.0 0.0 3876 1908 pts/0 S+ 05:58 0:00 grep lsphp
lsphpプロセスを手動で終了してください。
sudo kill -9 500747
sudo kill -9 500748
サーバーを再起動してください。
sudo systemctl restart lsws
ステップ8 - バーチャルホストを作成する
まず、仮想ホスト用のディレクトリを作成する必要があります。
sudo mkdir /usr/local/lsws/example.com/{html,logs} -p
htmlディレクトリには公開ファイルが格納され、logsディレクトリにはサーバーログが含まれます。
次に、管理コンソールを開き、左側の仮想ホストセクションにアクセスし、追加ボタンをクリックします。
指定された値を入力してください
Virtual Host Name: example.com
Virtual Host Root: $SERVER_ROOT/example.com/
Config File: $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf
Follow Symbolic Link: Yes
Enable Scripts/ExtApps: Yes
Restrained: Yes
External App Set UID Mode: Server UID
保存ボタンをクリックして完了させてください。現在、構成ファイルが存在しないため、次のエラーが表示されます。リンクをクリックして構成ファイルを作成してください。
もう一度保存ボタンをクリックして、バーチャルホストの作成を完了してください。
仮想ホストが作成されたら、仮想ホスト -> 仮想ホストを選択 (example.com) -> 一般に移動し、指示された通りに設定を変更してください。
Document Root: $VH_ROOT/html/
Domain Name: example.com
Enable GZIP Compression: Yes
Enable Brotli Compression: Yes
作業が完了したら保存ボタンをクリックしてください。次に、インデックスファイルを設定する必要があります。一般セクションの下にあるインデックスファイルの対にある編集ボタンをクリックしてください。次のオプションを設定してください。
Use Server Index Files: No
Index files: index.php, index.html, index.htm
Auto Index: No
完了したら「保存」をクリックします。次に、ログファイルを選択する必要があります。ログセクションに移動し、バーチャルホストログの対の「編集」をクリックして、次の値を入力してください。他の設定は変更しないでください。
Use Server’s Log: Yes
File Name: $VH_ROOT/logs/error.log
Log Level: ERROR
Rolling Size (bytes): 10M
Keep Days: 30
Compress Archive: Not Set
開発マシンである場合は、ログレベルをDEBUGに選択できます。
「保存」をクリックし、次にアクセスログセクションのプラス記号をクリックして新しいエントリを追加します。次の値を入力してください。
Log Control: Own Log File
File Name: $VH_ROOT/logs/access.log
Piped Logger: Not Set
Log Format: Not Set
Log Headers: Not Set
Rolling Size (bytes): 10M
Keep Days: 30
Compress Archive: Not Set
Bytes log: Not Set
完了したら 保存をクリックしてください。次に、セキュリティセクションの下にあるアクセス制御を設定する必要があります。次の値を設定してください。
Allowed List: *
Denied List: Not set
完了したら保存をクリックしてください。次に、スクリプトハンドラー定義を設定する必要があります。新しい定義を追加するには、プラス(+)ボタンをクリックしてください。以下の値を設定します。
Suffixes: php
Handler Type: LiteSpeed SAPI
Handler Name: [Server Level]: lsphp
完了したら 保存をクリックしてください。次に、書き換えセクションの下にある書き換え制御を設定する必要があります。以下の値を設定してください。
Enable Rewrite: Yes
Auto Load from .htaccess: Yes
Log Level: Not Set
完了したら保存をクリックしてください。そして最後に、リスナーを設定する必要があります。リスナーセクションに移動し、デフォルトリスナーに対して表示ボタンをクリックします。その後、バーチャルホストマッピングに対して追加ボタンをクリックして新しいマッピングを追加し、次の値を設定します。
Virtual Host: example.com
Domains: example.com
完了したら保存をクリックしてください。次に、すべての変更を適用してサーバーを再起動するために優雅な再起動ボタンをクリックします。
ステップ9 - SSLをインストールする
OpenLiteSpeedでSSLを設定するには、全体のサーバー用の自己署名証明書と、サイト固有のLet's Encryptサーバーの2つの証明書を設定する必要があります。
管理パネルには既に自己署名証明書がプリインストールされており、/usr/local/lsws/admin/confディレクトリで入手可能です。
まずは全体サーバーの自己署名証明書を作成しましょう。
cd ~
openssl req -x509 -days 365 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes
あなたは同様の出力を得るでしょう。
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:example.com
Email Address []:[email
すべてのフィールドを空のままでエンターを押して進むことができます。共通名にはあなたのドメインを、メールアドレスにはあなたのメールアドレスを入力してください。
自己署名証明書のためのディレクトリを作成します。
sudo mkdir /usr/local/lsws/certs
証明書を /usr/local/lsws/certs ディレクトリにコピーしてください。
sudo mv *.pem /usr/local/lsws/certs
私たちは、Let's Encryptが提供する無料のSSL証明書を生成するためにCertbotをインストールする必要があります。
CertbotをDebianのリポジトリからインストールするか、Snapdツールを使って最新バージョンを取得することができます。私たちはSnapdバージョンを使用します。Debian 12にはSnapdがインストールされていません。
Snapdパッケージをインストールします。
sudo apt install -y snapd
次のコマンドを実行して、Snapdのバージョンが最新であることを確認してください。
sudo snap install core
sudo snap refresh core
次のコマンドを入力してCertbotをインストールしてください。
sudo snap install --classic certbot
次のコマンドを使用して、Certbot コマンドが /usr/bin ディレクトリへのシンボリックリンクを作成することで実行できることを確認してください。
sudo ln -s /snap/bin/certbot /usr/bin/certbot
インストールを確認してください。
certbot --version
certbot 2.6.0
次のコマンドを実行してSSL証明書を生成します。
SSL証明書を取得します。ウェブルートディレクトリは、先に設定したパブリックHTMLディレクトリに設定されています。
sudo certbot certonly --webroot -w /usr/local/lsws/example.com/html/ --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email -d example.com
ディフィー・ヘルマン群証明書を生成します。
sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Certbotの更新スケジューラーサービスを確認してください。
sudo systemctl list-timers
snap.certbot.renew.serviceが実行されるようにスケジュールされたサービスの1つとして見つかります。
NEXT LEFT LAST PASSED UNIT ACTIVATES
.....
Sat 2023-09-30 18:12:21 UTC 2h 59min left Sat 2023-09-30 14:22:18 UTC 50min ago apt-daily.timer apt-daily.service
Sat 2023-09-30 18:54:00 UTC 3h 41min left - - snap.certbot.renew.timer snap.certbot.renew.service
Sun 2023-10-01 00:00:00 UTC 8h left - - dpkg-db-backup.timer dpkg-db-backup.service
SSLの更新が問題なく機能しているかどうかを確認するために、プロセスのドライランを行ってください。
sudo certbot renew --dry-run
エラーが見当たらなければ、すべて準備完了です。あなたの証明書は自動的に更新されます。
今、管理コンソールを開いて、リスナー >> 新しいリスナーの追加に移動し、次の値を追加してください。
Listener Name: SSL
IP Address: ANY IPv4
Port: 443
Secure: Yes
完了したら、保存をクリックしてください。次に、SSLをクリックしてSSLリスナーの下にある仮想ホストマッピングセクションに移動し、追加ボタンをクリックして、次の値を入力してください。
Virtual Host: example.com
Domains: example.com
作業が完了したら保存をクリックしてください。次に、リスナー >> SSLリスナー >> SSLタブ >> SSLプライベートキーと証明書(編集ボタン)に移動し、以前に作成した自己署名証明書のために次の値を入力します。
Private Key File: /home/user/key.pem
Certificate File: /home/user/cert.pem
Chained Certificate: Yes
完了したら、保存をクリックしてください。次に、リスナー >> SSLリスナー >> SSLタブ >> SSLプロトコル (編集ボタン) に移動し、SSLプロトコルと暗号の詳細に以下の値を入力してください。
Protocol Version: TLS v1.2 TLS v1.3
Ciphers: ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
Enable ECDH Key Exchange: Yes
Enable DH Key Exchange: Yes
DH Parameter: /etc/ssl/certs/dhparam.pem
完了したら保存をクリックします。次に、バーチャルホスト >> example.com >> SSLタブ >> SSLプライベートキーおよび証明書(編集ボタン)に移動し、以下の値をLet's Encrypt証明書で入力します。
Private Key File: /etc/letsencrypt/live/example.com/privkey.pem
Certificate File: /etc/letsencrypt/live/example.com/fullchain.pem
Chained Certificate: Yes
完了したら 保存 をクリックします。次に、仮想ホスト >> example.com >> SSLタブ >> OCSPスタッピン (編集ボタン) に移動し、OCSPスタッピンを有効にするために次の値を入力してください。
Enable OCSP Stapling: Yes
OCSP Response Max Age(Secs): 300
OCSP Responder: http://r3.o.lencr.org
完了したら 保存をクリックしてください。次に、仮想ホスト >> example.com >> SSLタブ >> セキュリティ(編集ボタン)に移動し、HTTP3/QUICプロトコルを有効にするために以下の値を入力してください。
Enable HTTP3/QUIC: Yes
他のオプションはデフォルトでオンになっているため、有効にする必要はありません。
完了したら、保存をクリックしてください。
優雅な再起動ボタンをクリックしてサーバーを再起動してください。
ステップ10 - テストサイト
あなたの html ディレクトリにテストファイルを作成してください。
sudo nano /usr/local/lsws/example.com/html/index.php
次のコードをNanoエディタに貼り付けてください。
<html>
<head>
<h2>OpenLiteSpeed Server Install Test</h2>
</head>
<body>
<?php echo '<p>Hello,</p>';
// Define PHP variables for the MySQL connection.
$servername = "localhost";
$username = "testuser";
$password = "Your_Password123";
// Create a MySQL connection.
$conn = mysqli_connect($servername, $username, $password);
// Report if the connection fails or is successful.
if (!$conn) {
exit('<p>Your connection has failed.<p>' . mysqli_connect_error());
}
echo '<p>You have connected successfully.</p>';
?>
</body>
</html>
ファイルを保存するには Ctrl + X を押し、プロンプトが表示されたら Y を入力します。ブラウザで https://example.com のURLを開くと、次のページが表示されるはずです。
テストサイトは完全に機能しています。動的なPHPウェブサイトやアプリケーションを提供するためにサーバーの使用を開始できます。
結論
これで、Debian 12サーバーにLOMPスタック(OpenLiteSpeed、MySQL、およびPHP)をインストールするためのチュートリアルは終了です。質問がある場合は、下のコメントに投稿してください。


























