如何在Ubuntu 20.04 Server / Desktop上安装LAMP Stack
本教程将向您展示如何在Ubuntu 20.04 LTS上安装LAMP堆栈。 软件堆栈是捆绑在一起的一组软件工具。 LAMP代表Linux,Apache,MariaDB / MySQL和PHP,所有这些都是开源的,可以免费使用。 它是为动态网站和Web应用程序提供动力的最常见的软件堆栈。 Linux是操作系统。 Apache是Web服务器; MariaDB / MySQL是数据库服务器,PHP是负责生成动态网页的服务器端脚本语言。
先决条件
要遵循本教程,您需要在本地计算机或远程服务器上运行的Ubuntu 20.04 OS。
如果您正在寻找VPS(虚拟专用服务器),则可以通过此特殊链接在DigitalOcean注册帐户,以获得$ 50的免费信用。 (仅适用于新用户)。 如果您已经是DigitalOcean用户,则可以通过此特殊链接在Vultr上注册帐户,以获得$ 50的免费信用(仅限新用户)。
而且,如果您需要使用域名来设置LAMP堆栈,我建议您从NameCheap购买域名,因为价格低廉,并且终身免费提供Whois隐私保护。
步骤1:更新软件包
在安装LAMP堆栈之前,最好更新存储库和软件包。 在Ubuntu 20.04 OS上运行以下命令。
sudo apt update sudo apt upgrade
步骤2:安装Apache Web服务器
输入以下命令以安装Apache Web服务器。 的 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地址。 您应该看到“它有效!” Web页面,这意味着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
保存并关闭文件。 要在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变成开源产品。 输入以下命令以在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根密码时,请按Enter键,因为尚未设置根密码。 然后输入 ÿ 设置MariaDB服务器的根密码。
接下来,您可以按Enter回答所有剩余的问题,这将删除匿名用户,禁用远程root登录并删除测试数据库。 此步骤是MariaDB数据库安全性的基本要求。 (请注意,Y是大写的,这意味着它是默认答案。)
默认情况下,Ubuntu上的MariaDB软件包使用 unix_socket
对用户登录进行身份验证,这基本上意味着您可以使用操作系统的用户名和密码登录MariaDB控制台。 因此,您可以运行以下命令来登录,而无需提供MariaDB根密码。
sudo mariadb -u root
要退出,请运行
exit;
检查MariaDB服务器版本信息。
mariadb --version
如您所见,我们已经安装了MariaDB 10.3.22。
mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
步骤4:安装PHP7.4
在撰写本文时,PHP7.4是PHP的最新稳定版本,并且在性能上比PHP7.3小。 输入以下命令以安装PHP7.4和一些常见的PHP模块。
sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
启用Apache php7.4模块,然后重新启动Apache Web服务器。
sudo a2enmod php7.4 sudo systemctl restart apache2
检查PHP版本信息。
php --version
输出:
PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
要使用Apache服务器测试PHP脚本,我们需要创建一个 info.php
文件根目录中的文件。
sudo nano /var/www/html/info.php
将以下PHP代码粘贴到文件中。
<?php phpinfo(); ?>
要在Nano文本编辑器中保存文件,请按 Ctrl+O
,然后按Enter确认。 要退出,请按 Ctrl+X
。 现在,在浏览器地址栏中,输入 server-ip-address/info.php
。 更换 server-ip-address
与您的实际IP。 如果您在本地计算机上遵循本教程,请输入 127.0.0.1/info.php
要么 localhost/info.php
。
您应该看到服务器的PHP信息。 这意味着PHP脚本可以在Apache Web服务器上正常运行。
如何使用Apache运行PHP-FPM
使用Apache Web服务器运行PHP代码的方法基本上有两种:
- Apache PHP模块
- PHP-FPM。
在上面的步骤中,Apache PHP7.4模块用于处理PHP代码,通常可以。 但是在某些情况下,您需要使用PHP-FPM运行PHP代码。 就是这样。
禁用Apache PHP7.4模块。
sudo a2dismod php7.4
安装PHP-FPM。
sudo apt install php7.4-fpm
启用 proxy_fcgi
和 setenvif
模块。
sudo a2enmod proxy_fcgi setenvif
启用 /etc/apache2/conf-available/php7.4-fpm.conf
配置文件。
sudo a2enconf php7.4-fpm
重新启动Apache,以使更改生效。
sudo systemctl restart apache2
现在,如果您刷新 info.php
浏览器页面上,您会发现Server API已从 Apache 2.0 Handler
至 FPM/FastCGI
,这意味着Apache Web服务器会将PHP请求传递给PHP-FPM。
恭喜! 您已在Ubuntu 20.04上成功安装了LAMP堆栈(Apache,MariaDB和PHP7.4)。 为了服务器的安全,您应该删除 info.php
立即归档,以防止窥视。
sudo rm /var/www/html/info.php
下一步
我希望本教程可以帮助您在Ubuntu 20.04 LTS上安装LAMP堆栈。 您可能要安装 phpMyAdmin,这是一个免费的开放源代码的基于Web的数据库管理工具。
- 如何在Ubuntu 20.04上使用Apache(LAMP)安装phpMyAdmin
您还可以在LAMP堆栈的顶部安装WordPress,以创建自己的网站或博客。
- 在Ubuntu 20.04上使用Apache,MariaDB,PHP7.4(LAMP)安装WordPress
与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂