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


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

このリリースで、有名で広く使用されているDebian 10 Busterは、以前の安定したリポジトリを指定する古い安定したステータスを取得しました。新しい安定バージョンのリリースで常に発生するように、Bullseyeには何百もの新しいパッケージと何千もの他のパッケージへのアップデートが含まれています。

Debianは世界中のWebサーバーの大部分に電力を供給しているため、この記事では、Debian 11にLAMPスタックをインストールする方法を説明し、古いDebian10およびDebian9リリースでも機能します。

これにより、システム管理者は、ディストリビューションの公式リポジトリの最新の更新を使用して、ブルズアイの上に新しいWebサーバーをセットアップできます。 Debian10からDebian11にアップグレードしたことを前提としています。

DebianにLAMPをインストールする

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

# apt update && apt install apache2 mariadb-server mariadb-client mariadb-common php php-mysqli
# 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;

AuthorsTBLとBooksTBLという名前の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スクリプトは、最初にデータベースに接続し、クエリに一致するレコードを取得します。エラーが発生した場合は、何が問題なのかを示すヒントを示す説明メッセージが表示されます。

次のスクリプトを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スタックをインストールしてテストする方法を説明しました。この記事について質問やコメントがある場合は、以下のフォームを使用して遠慮なくお知らせください。