本周初( 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”代表MariaDB或MySQL ,即的数据库服务器。 根据您的选择,可以如下安装数据库服务器和其他组件(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;
并添加两个名为AuthorsTBL和BooksTBL的表:
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上
而已! 在本文中,我们解释了如何在Debian 9上安装和测试LAMP。如果您对本文有任何问题或意见,请随时通过以下表单通知我们。