ウェブサイト検索

Debian 11/10/9 に LAMP スタックをインストールする方法


Debian プロジェクトは(2021 年 8 月 14 日)、 コードネームBullseye という新しい安定バージョン(Debian 11)の利用可能性を発表しました。

このリリースにより、よく知られ広く使用されているDebian 10 Buster は、以前の安定版リポジトリを示す旧安定版ステータスを獲得しました。新しい安定バージョンのリリースでは常に起こることですが、Bullseye には数百の新しいパッケージと他の数千のアップデートが含まれています。

Debian は世界中の大部分の Web サーバーに搭載されているため、この記事では Debian 11 に LAMP スタックをインストールする方法と、古い Debian 10 でも動作する方法を説明します。およびDebian 9 リリース。

これにより、システム管理者は、ディストリビューションの公式リポジトリへの最近の更新を使用して、ブルズアイ上に新しい Web サーバーをセットアップできるようになります。 Debian 11 最小サーバーをベアメタル、仮想マシン、または VPS にインストールしているか、Debian 10 から Debian 11 にアップグレードしていることを前提としています。

Debian への LAMP のインストール

LAMP の「M 」 は、スタックのデータベース サーバーであるMariaDB または MySQL を表します。選択に応じて、次のようにデータベース サーバーと他のコンポーネント (Apache Web サーバーと PHP) をインストールできます。

Debian に MariaDB を使用して LAMP をインストールする

apt update && apt install apache2 mariadb-server mariadb-client mariadb-common php php-mysqli

Debian に MySQL を使用して LAMP をインストールする

apt update && apt install apache2 mysql-server mysql-client mysql-common php php-mysqli

個人的な好みとして、この記事の残りの部分ではMariaDB を使用します。

インストールが完了したら、すべてのサービスが実行されていることを確認してください。その場合は、次のコマンドを実行します。

systemctl is-active apache2
systemctl is-active mariadb

両方ともアクティブに戻る必要があります。それ以外の場合は、両方のサービスを手動で開始します。

systemctl start {apache2,mariadb}

Debian での MariaDB の保護

最後に、続行する前に、mysql_secure_installation を使用してデータベースの root アカウントのパスワードを設定し、匿名ユーザーを削除し、リモートでの root ログインを禁止し、テスト データベースを削除しましょう。

mysql_secure_installation

Debian での LAMP のテスト

まず、サンプル データベースを作成してデータを入力します。次に、基本的な PHP スクリプトを使用して、データベースから JSON 形式でレコードのセットを取得します。

最後に、Firefox の開発者ツールを使用して、使用されている Apache のバージョンを確認します。これと同じ情報を見つけることができますが。

apache2 -v

Server version: Apache/2.4.51 (Debian)
Server built:   2021-10-07T17:49:44

スクリプトを使用する理由は、スタックのすべてのコンポーネントがバンドルされたときに適切に動作することを確認するためです。

データベースの作成と設定

次のコマンドを使用して MariaDB プロンプトに入りましょう。

mysql -u root -p

前のセクションで選択したパスワードを入力します。

次に、次のように LibraryDB という名前のデータベースを作成します。

MariaDB [(none)]> CREATE DATABASE LibraryDB;

そして、AuthorsTBLBooksTBL という名前の 2 つのテーブルを追加します。

MariaDB [(none)]> USE LibraryDB;
CREATE TABLE AuthorsTBL (
AuthorID INT NOT NULL AUTO_INCREMENT,
FullName VARCHAR(100) NOT NULL,
PRIMARY KEY(AuthorID)
);

MariaDB [(none)]> CREATE TABLE BooksTBL (
BookID INT NOT NULL AUTO_INCREMENT,
AuthorID INT NOT NULL,
ISBN VARCHAR(100) NOT NULL,
Title VARCHAR(100) NOT NULL,
Year VARCHAR(4),
PRIMARY KEY(BookID),
FOREIGN KEY(AuthorID) REFERENCES AuthorsTBL(AuthorID)
);

セキュリティ上の理由から、データベースにアクセスするための特別なアカウントを作成します。

MariaDB [(none)]> CREATE USER 'librarian'@'localhost' IDENTIFIED BY 'Today123';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON LibraryDB.* TO 'librarian'@'localhost';

最後のステップでは、テーブルに著者書籍を入力します。

MariaDB [(none)]> INSERT INTO AuthorsTBL (FullName) VALUES ('Paulo Coelho'), ('Isabel Allende'), ('Jorge Luis Borges');
MariaDB [(none)]> INSERT INTO BooksTBL (AuthorID, ISBN, Title, Year) VALUES
(1, '9788576653721', 'El alquimista', '1988'),
(1, '9780061194740', 'El peregrino', '1987'),
(2, '9789500720380', 'La casa de los espiritus', '1982'),
(3, '9789875666481', 'El Aleph', '1945');

PHP スクリプトを使用したデータベース接続のテスト

次の PHP スクリプトは、まずデータベースに接続し、クエリに一致するレコードを取得します。エラーが発生した場合は、何が問題なのかを示す説明メッセージが表示されます。

次のスクリプトを booksandauthors.php という名前で /var/www/html に保存します。

<?php
	// Show PHP version
	echo "Current PHP version: " . phpversion() .  "\r\n";

	// Connect to database
	$connection = mysqli_connect("localhost","librarian","Today123","LibraryDB") or die("Error " . mysqli_error($connection));

	// SQL query
	$sql = "SELECT A.ISBN, A.Title,
        	A.Year, B.FullName
        	FROM BooksTBL A JOIN AuthorsTBL B
        	ON A.AuthorID = B.AuthorID;";
	$result = mysqli_query($connection, $sql) or die("Error " . mysqli_error($connection));

	// Populate an array with the query results
	$libraryarray = array();
	while($row = mysqli_fetch_assoc($result))
	{
    	$libraryarray[] = $row;
	}

	// Convert to JSON
	echo json_encode($libraryarray);
?>

所有権を www-data に変更し、適切な権限を追加します。

chown www-data:www-data /var/www/html/booksandauthors.php
chmod 600 /var/www/html/booksandauthors.php

最後に、Web ブラウザを開いて、スクリプトが存在する URL を指定します。

http://192.168.0.35/booksandauthors.php

それでおしまい!この記事では、Debian 11 に LAMP スタックをインストールしてテストする方法を説明しました。この記事に関してご質問やご意見がございましたら、以下のフォームを使用してお気軽にお知らせください。