如何在 Ubuntu 20.04 服务器/桌面上安装 LAMP 堆栈

本教程将向您展示如何在 Ubuntu 20.04 LTS 上安装 LAMP 堆栈。 软件栈是一组捆绑在一起的软件工具。 LAMP 代表 Linux, Apache、MariaDB/MySQL 和 PHP,所有这些都是开源且免费使用的。 它是支持动态网站和 Web 应用程序的最常见的软件堆栈。 Linux 是操作系统; Apache 是网络服务器; MariaDB/MySQL 是数据库服务器,PHP 是负责生成动态网页的服务器端脚本语言。

先决条件

要学习本教程,您需要在本地计算机或远程服务器上运行 Ubuntu 20.04 操作系统。

如果您正在寻找 VPS(虚拟专用服务器),那么您可以通过此特殊链接在 DigitalOcean 注册一个帐户,以获得 50 美元的免费赠金。 (仅限新用户)。 如果您已经是 DigitalOcean 用户,那么您可以通过此特殊链接在 Vultr 上注册一个帐户,以获得 50 美元的免费赠金(仅限新用户)。

如果你需要用域名设置 LAMP 堆栈,我建议从 NameCheap 购买域名,因为价格低廉并且他们提供终身免费的 whois 隐私保护。

步骤 1:更新软件包

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

sudo apt update  sudo apt upgrade

第 2 步:安装 Apache 网络服务器

Enter 以下命令安装 Apache 网络服务器。 这 apache2-utils 包将安装一些有用的实用程序,如 Apache HTTP 服务器基准测试工具 (ab)。

sudo apt install -y 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 Sat 2020-04-11 11:31:31 CST; 2s ago        Docs: https://httpd.apache.org/docs/2.4/     Process: 53003 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)    Main PID: 53011 (apache2)       Tasks: 55 (limit: 19072)      Memory: 6.4M      CGroup: /system.slice/apache2.service              ├─53011 /usr/sbin/apache2 -k start              ├─53012 /usr/sbin/apache2 -k start              └─53013 /usr/sbin/apache2 -k start 

提示:如果上述命令没有立即退出,您可以按 Q 键重新获得对终端的控制权。

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

sudo systemctl start apache2

启用也是一个好主意 Apache 在系统启动时自动启动。

sudo systemctl enable apache2

查看 Apache 版本:

apache2 -v

输出:

Server version: Apache/2.4.41 (Ubuntu) Server built:   2020-03-05T18:51:00

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

如果连接被拒绝或无法完成,则可能是防火墙阻止了对 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

Save 和 close 文件。 要在 Nano 文本编辑器中保存文件,请按 Ctrl+O,然后按 Enter 确认。 要退出,请按 Ctrl+X. 然后启用这个配置文件。

sudo a2enconf servername.conf

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

sudo systemctl reload apache2

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

第 3 步:安装 MariaDB 数据库服务器

MariaDB 是 MySQL 的替代品。 它是由 MySQL 团队的前成员开发的,他们担心 Oracle 可能会将 MySQL 变成一个闭源产品。 Enter 使用以下命令在 Ubuntu 20.04 上安装 MariaDB。

sudo apt install mariadb-server mariadb-client

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

systemctl status mariadb

输出:

 mariadb.service - MariaDB 10.3.22 database server      Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)      Active: active (running) since Fri 2020-04-10 14:19:16 UTC; 18s ago        Docs: man:mysqld(8)              https://mariadb.com/kb/en/library/systemd/    Main PID: 9161 (mysqld)      Status: "Taking your SQL requests now..."       Tasks: 31 (limit: 9451)      Memory: 64.7M      CGroup: /system.slice/mariadb.service              └─9161 /usr/sbin/mysqld 

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

sudo systemctl start mariadb

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

sudo systemctl enable mariadb

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

sudo mysql_secure_installation

当它要求您输入 MariaDB root 密码时,按 Enter 密钥,因为尚未设置 root 密码。 然后输入 为 MariaDB 服务器设置 root 密码。