安装LAMP(Linux,Apache,MariaDB或MySQL和PHP)在Debian 9上堆叠

本周初( 2017年6月17日 ),Debian项目宣布推出代号为Stretch的新稳定版本( Debian 9 )。

随着这个版本,知名和广泛使用的Debian 8 Jessie获得了旧的稳定状态,它指定了以前的稳定存储库。 随着新的稳定版本的发布, Stretch总是会发生数百种新的软件包,并为数千种其他软件更新。

由于Debian在世界各地拥有大量的Web服务器,因此本文将介绍如何在Debian 9 Stretch中安装LAMP。

这将允许系统管理员使用最新版本的官方软件库更新来在Stretch之上建立全新的Web服务器。 假设您已经在裸机,虚拟机或VPS上安装了Debian 9 ,或者从Jessie升级

在Debian 9中安装LAMP

LAMP中的“M”代表MariaDBMySQL ,即的数据库服务器。 根据您的选择,可以如下安装数据库服务器和其他组件(Apache Web服务器和PHP)。

在Debian 9上安装MariaDB的LAMP

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

在Debian 9上使用MySQL安装LAMP

# aptitude update && aptitude install apache2 mysql-server mysql-client mysql-common php php-mysqli

作为个人喜好,我将在本文的其余部分使用MariaDB。

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

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

应该恢复活跃。 否则,手动启动两个服务:

# systemctl start {apache2,mariadb}

最后,在继续之前让我们使用mysql_secure_installation来设置数据库根帐户的密码。 如果您不知道如何执行此操作,可以参考如何在Debian和Ubuntu上安装MariaDB 10的步骤#4。

测试LAMP在Debian 9上

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

最后,我们将使用Firefox的开发工具来验证正在使用的Apache的版本。 虽然我们可以找出相同的信息。

# apache2 -v

我们使用脚本的原因是确保堆叠的所有组件在捆绑在一起时正常工作。

创建和填充数据库

我们使用以下命令输入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';

最后一步包括用作者书籍填充表格:

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
验证LAMP在Debian 9上

验证LAMP在Debian 9上

而已! 在本文中,我们解释了如何在Debian 9上安装和测试LAMP。如果您对本文有任何问题或意见,请随时通过以下表单通知我们。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏