分享最新优惠信息
购买主机更加划算

Debian 11/10/9系统安装和测试LAMP环境教程

2021年8月14日 Debian宣布推出代号为Bullseye的新稳定版本—Debian 11。

在Debian 11版本中,已经被广泛使用的Debian 10 Buster获得更加稳定状态,而且仍指定了以前的稳定存储库。按照惯例,Bullseye包含数百个新软件包和数千个其它软件包的更新。

由于Debian为全球大部分Web服务器提供支持,因此在本文中,小编将简单介绍在Debian 11系统中安装搭建LAMP环境的简单过程,也适用于较旧的Debian 10和Debian 9版本。

需要注意的是,这将允许系统管理员使用最近更新的发行版官方存储库在Bullseye之上设置全新的Web 服务器。也就是说,你已在虚拟机、VPS或服务器上安装了Debian 11,或者已从Debian 10升级到Debian 11

在Debian 11系统中安装LAMP

LAMP 中的“M”代表MariaDB或MySQL数据库服务器。根据自己需要,可以按如下方式安装数据库服务器和其他组件(Apache Web服务器和PHP)。

安装带有MariaDB的LAMP

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

安装带有MySQL的LAMP

# apt update && apt install apache2 mysql-server mysql-client mysql-common php php-mysqli
个人比较喜欢用MariaDB数据库,所以本文的下面部分将使用MariaDB。

安装完成后,让我们确保所有服务都在运行,可以执行以下命令。

# systemctl is-active apache2
# systemctl is-active mariadb

如果服务器都在运行,应该为两者返回活动状态(active)。否则,手动启动这两个服务:

# systemctl start {apache2,mariadb}

在Debian 11中保护MariaDB

在进行下一步之前,使用mysql_secure_installation为数据库root帐户设置密码,删除匿名用户,禁止远程 root 登录并删除测试数据库。

# mysql_secure_installation

MariaDB安全设置

在Debian 11系统中测试LAMP

首先创建并填充示例数据库,接下来,小编将使用一个基本的PHP脚本并以JSON格式从数据库中检索一组记录。

最后将使用Firefox开发人员工具来验证所使用的Apache版本。当然,我们也可以使用以下命令来进行查看:

# apache2 -v

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

使用脚本的原因是为了确保LAMP的所有组件捆绑在一起时都能正常工作。

创建和填充数据库

接下来使用以下命令进入MariaDB提示符。

# mysql -u root -p

输入刚刚设置的数据库密码以便进入数据库。

现在将创建一个名为LibraryDB的数据库,如下所示:

MariaDB [(none)]> CREATE DATABASE LibraryDB;

并添加两个名为AuthorsTBLBooksTBL的表:

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';

现在的最后一步是用AuthorsBooks填充表格:

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脚本将首先连接到数据库并检索与查询匹配的记录。如果发生错误,将显示一条描述性消息,以提示出了什么问题。

将以下脚本保存为/var/www/html下面的booksandauthors.php文件当中:

<?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上验证LAMP

总之,以上就是在Debian 11/10/9系统上安装和测试LAMP环境,设置过程仅供参考。如果在设置过程中有任何问题,欢迎交流讨论。

未经允许不得转载:惠主机 » Debian 11/10/9系统安装和测试LAMP环境教程