如何在Debian 10 Buster Server / Desktop上安装LAMP Stack

本教程将向您展示如何在Debian 10 Buster上安装Apache,MariaDB和PHP7.3(LAMP堆栈)。 软件堆栈是捆绑在一起的一组软件工具。 LAMP代表 大号inux, 一种帕希 中号ariaDB /中号ySQL和 PHP,所有这些都是开源的,可以免费使用。 它是为动态网站和Web应用程序提供动力的最常见的软件堆栈。 Linux是操作系统。 Apache是​​Web服务器; MariaDB / MySQL是数据库服务器,PHP是负责生成动态网页的服务器端脚本语言。

所有这四个组件都是免费的和开源的。 但是,由于MySQL现在由Oracle拥有,并且Oracle很有可能将其转变为开源产品,因此我们将选择MariaDB而不是MySQL。

在Debian 10 Buster上安装LAMP Stack的前提条件

要遵循本教程,您需要在本地计算机或远程服务器上运行的Debian 10 OS。

如果您正在寻找VPS(虚拟专用服务器),则可以通过此特殊链接在Vultr注册帐户,以获得$ 50的免费信用(仅限新用户)。 而且,如果您需要使用域名设置LAMP堆栈,我建议您从NameCheap购买域名,因为价格低廉,而且它们免费提供whois隐私保护。

请注意,在Debian上安装软件时,您需要具有root特权。 你可以加 须藤 在命令开头或使用 su - 命令切换到root用户。

步骤1:更新软件包

在安装LAMP堆栈之前,最好更新存储库和软件包。 在您的Debian 10操作系统上运行以下命令。

sudo apt update

sudo apt upgrade

步骤2:在Debian 10上安装Apache Web Server

输入以下命令以安装Apache Web服务器。 的 apache2-utils 软件包将安装一些有用的实用程序,例如Apache HTTP服务器基准测试工具 ab 和用户认证管理工具 htpasswd

sudo apt install apache2 apache2-utils

安装后,应自动启动Apache。 检查其状态 systemctl

systemctl status apache2

样本输出:

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-07-11 13:30:35 UTC; 4min 31s ago
     Docs: https://httpd.apache.org/docs/2.4/
  Process: 17962 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
 Main PID: 17966 (apache2)
    Tasks: 55 (limit: 545)
   Memory: 4.8M
   CGroup: /system.slice/apache2.service
           ├─17966 /usr/sbin/apache2 -k start
           ├─17967 /usr/sbin/apache2 -k start
           └─17968 /usr/sbin/apache2 -k start

如果它没有运行,请使用systemctl来启动它。

sudo systemctl start apache2

使Apache在引导时自动启动也是一个好主意。

sudo systemctl enable apache2

检查Apache版本:

sudo apache2 -v

输出:

Server version: Apache/2.4.38 (Debian)
Server built:   2019-04-07T18:15:40

现在,在浏览器地址栏中输入Debian 10服务器的公共IP地址。 您应该看到“它有效!” Web页面,这意味着Apache Web服务器正在正常运行。 如果要在本地Debian 10计算机上安装LAMP,则应输入 127.0.0.1 要么 localhost 在浏览器地址栏中。

Debian 10安装Apache Web服务器

如果连接被拒绝或无法完成,则可能有防火墙阻止了向TCP端口80的传入请求。如果使用iptables防火墙,则需要运行以下命令来打开TCP端口80。

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

如果使用的是UFW防火墙,请运行此命令打开TCP端口80。

sudo ufw allow http

现在我们需要设置 www-data (Apache用户)作为文档根目录(也称为Web根目录)的所有者。 默认情况下,它由root用户拥有。

sudo chown www-data:www-data /var/www/html/ -R

默认情况下,Apache使用系统主机名作为全局主机名 ServerName。 如果系统主机名无法在DNS中解析,则运行后可能会看到以下错误 sudo apache2ctl -t 命令。

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

为了解决这个问题,我们可以设置一个全局 ServerName 在Apache中。 使用Nano命令行文本编辑器创建一个新的配置文件。

sudo nano /etc/apache2/conf-available/servername.conf

在此文件中添加以下行。

ServerName localhost

保存并关闭文件。 要在Nano文本编辑器中保存文件,请按 Ctrl+O,然后按Enter确认。 要退出,请按 Ctrl+X。 然后启用此配置文件。

sudo a2enconf servername.conf

重新加载Apache以使更改生效。

sudo systemctl reload apache2

现在,如果您运行 sudo apache2ctl -t 再次命令,您将不会看到以上错误消息。

步骤3:在Debian 10上安装MariaDB数据库服务器

MariaDB是MySQL的直接替代品。 输入以下命令以将其安装在Debian 10上。

sudo apt install mariadb-server mariadb-client

安装后,MariaDB服务器应自动启动。 使用 系统控制 检查其状态。

systemctl status mariadb

输出:

● mariadb.service - MariaDB 10.3.15 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-07-11 13:57:03 UTC; 16s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 18566 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 31 (limit: 545)
   Memory: 73.9M
   CGroup: /system.slice/mariadb.service
           └─18566 /usr/sbin/mysqld

如果它没有运行,请使用以下命令启动它:

sudo systemctl start mariadb

要使MariaDB在启动时自动启动,请运行

sudo systemctl enable mariadb

现在运行安装后安全脚本。

sudo mysql_secure_installation

当要求您输入MariaDB根密码时,请按Enter键,因为尚未设置根密码。 然后输入 ÿ 设置MariaDB服务器的根密码。

如何在Debian 10 Buster上安装灯泡堆栈

接下来,您只需按Enter即可回答所有剩余的问题。 这将删除匿名用户,禁用远程root登录并删除测试数据库。 此步骤是MariaDB数据库安全性的基本要求。 (注意,信 Y 大写,这是默认答案。)

debian 10灯栈安装

默认情况下,Debian上的MaraiDB软件包使用unix_socket来认证用户登录,这基本上意味着您可以使用操作系统的用户名和密码登录MariaDB控制台。 因此,您可以运行以下命令来登录,而无需提供MariaDB根密码。

sudo mariadb -u root

要么

sudo mysql -u root

要退出,请运行

exit;

检查MariaDB服务器版本信息。

mariadb --version

输出:

mariadb Ver 15.1 Distrib 10.3.15-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

步骤4:在Debian 10上安装PHP7.3

在撰写本文时,PHP7.3是PHP的最新稳定版本,与以前的版本相比,性能稍有改善。 输入以下命令从Debian 10仓库安装PHP7.3。

sudo apt install php7.3 libapache2-mod-php7.3 php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline

启用Apache php7.3模块,然后重新启动Apache Web服务器。

sudo a2enmod php7.3

sudo systemctl restart apache2

检查PHP版本信息。

php --version

输出:

PHP 7.3.4-2 (cli) (built: Apr 13 2019 19:05:48) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.4-2, Copyright (c) 1999-2018, by Zend Technologies

要使用Apache服务器测试PHP脚本,我们需要创建一个 info.php 使用命令行文本编辑器(例如Nano)将文件放在Web根目录中。

sudo nano /var/www/html/info.php

将以下PHP代码粘贴到文件中。

<?php phpinfo(); ?>

保存并关闭文件。 (要在Nano文本编辑器中保存文件,请按 Ctrl+O,然后按Enter确认。 要退出,请按 Ctrl+X

现在,在浏览器地址栏中,输入 server-ip-address/info.php。 更换 sever-ip-address 与您的实际IP。 如果您在本地计算机上遵循本教程,请输入 127.0.0.1/info.php 要么 localhost/info.php

您应该看到服务器的PHP信息。 这意味着PHP脚本可以在Apache Web服务器上正常运行。 您可以发现Zend OPcache已启用。

Debian 10 Buster PHP7.3

如何使用Apache运行PHP-FPM

使用Apache Web服务器运行PHP代码的方法基本上有两种:

  • Apache PHP模块
  • PHP-FPM。

在上述步骤中,PHP7.3模块用于处理PHP代码,通常可以。 但是在某些情况下,您需要使用PHP-FPM运行PHP代码。 就是这样。

禁用Apache PHP7.3模块。

sudo a2dismod php7.3

安装PHP-FPM。

sudo apt install php7.3-fpm

启用 proxy_fcgisetenvif 模块。

sudo a2enmod proxy_fcgi setenvif

启用 /etc/apache2/conf-available/php7.3-fpm.conf 配置文件。

sudo a2enconf php7.3-fpm

重新启动Apache,以使更改生效。

sudo systemctl restart apache2

现在,如果您刷新 info.php 浏览器页面上,您会发现Server API更改为 FPM/FastCGI,这意味着Apache Web服务器将使用PHP-FPM运行PHP代码。

Debian 10 Buster Apache php-fpm

下一步

恭喜! 您已经在Debian 10 Buster上成功安装了Apache,MariaDB和PHP7。 为了确保服务器的安全,您现在应该删除info.php文件以防止窥视。

sudo rm /var/www/html/info.php

希望本教程对您有所帮助 在Debian 10 Buster上安装LAMP堆栈。 您可能还需要查看以下教程来安装phpMyAdmin,这是一个基于Web的MariaDB / MySQL管理工具

  • 在Debian 10 Buster上使用Apache(LAMP)安装phpMyAdmin

与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取新教程。

Sidebar