介绍
在本快速入门指南中,我们将在 Ubuntu 20.04 服务器上安装 LAMP 堆栈。
有关本教程的更详细版本以及每个步骤的更多解释,请参阅如何在 Ubuntu 20.04 上安装 Linux、Apache、MySQL、PHP (LAMP) 堆栈
先决条件
要遵循本指南,您需要以sudo
用户身份访问 Ubuntu 20.04 服务器。
第 1 步 – 安装 Apache
更新您的包管理器缓存,然后使用以下命令安装 Apache:
- sudo apt update
- sudo apt install apache2
安装完成后,您需要调整防火墙设置以允许服务器上的 HTTP 流量。运行以下命令以允许端口80
(HTTP)上的外部访问:
- sudo ufw allow in "Apache"
添加新的防火墙规则后,您可以通过从 Web 浏览器访问服务器的公共 IP 地址或域名来测试服务器是否已启动并正在运行。你会看到一个这样的页面:
第 2 步 – 安装 MySQL
我们现在将安装 MySQL,这是一种在 PHP 环境中使用的流行数据库管理系统。
再次,用于apt
获取和安装此软件:
- sudo apt install mysql-server
安装完成后,建议您运行 MySQL 预安装的安全脚本。通过运行以下命令启动交互式脚本:
- sudo mysql_secure_installation
这将询问您是否要配置VALIDATE PASSWORD PLUGIN
. 回答Y
是,或其他任何不启用就继续的问题。如果您回答“是”,系统会要求您选择密码验证级别。
您的服务器接下来会要求您选择并确认 MySQL根用户的密码。尽管 MySQL root 用户的默认身份验证方法不使用密码,即使设置了密码,您也应该在此处定义强密码作为额外的安全措施。
对于其余的问题,请在每个提示处按下Y
并按下ENTER
键。
注意:在撰写本文时,本机 MySQL PHP 库mysqlnd
不支持 caching_sha2_authentication
,这是 MySQL 8 的默认身份验证方法。因此,在 MySQL 8 上为 PHP 应用程序创建数据库用户时,您需要确保他们’被配置为使用mysql_native_password
。请参阅我们详细的 LAMP on Ubuntu 20.04指南的第 6 步以了解如何执行此操作。
第 3 步 – 安装 PHP
要安装 PHP 及其依赖项,请运行:
- sudo apt install php libapache2-mod-php php-mysql
安装完成后,您可以运行以下命令来确认您的 PHP 版本:
- php -v
OutputPHP 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
第 4 步 — 为您的网站创建虚拟主机
在本指南中,我们将设置一个名为your_domain的域,但您应该将其替换为您自己的域名。
Ubuntu 20.04 上的 Apache 默认启用了一个服务器块,该块被配置为从/var/www/html
目录提供文档。而不是修改的/var/www/html
,我们将创建一个内部目录结构,/var/www
为您的网域网站,留下/var/www/html
的地方,就好像客户端的请求不符合任何其他网站要服务的默认目录。
为your_domain创建目录,如下所示:
- sudo mkdir /var/www/your_domain
接下来,使用$USER
环境变量分配目录的所有权,该环境变量将引用您当前的系统用户:
- sudo chown -R $USER:$USER /var/www/your_domain
然后,sites-available
使用您喜欢的命令行编辑器在 Apache 的目录中打开一个新的配置文件:
- sudo nano /etc/apache2/sites-available/your_domain.conf
这将创建一个新的空白文件。粘贴以下基本配置:
<VirtualHost *:80>
ServerName your_domain
ServerAlias www.your_domain
ServerAdmin webmaster@localhost
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
完成后保存并关闭文件。如果您正在使用nano
,则可以通过按CTRL+X
、 然后Y
和 来实现ENTER
。
您现在可以使用a2ensite
来启用新的虚拟主机:
- sudo a2ensite your_domain
要禁用 Apache 的默认网站,请键入:
- sudo a2dissite 000-default
要确保您的配置文件不包含语法错误,请运行:
- sudo apache2ctl configtest
最后,重新加载 Apache 以使这些更改生效:
- sudo systemctl reload apache2
您的新网站现已激活,但网站根目录仍为空。在该位置创建一个文件,以便我们可以测试虚拟主机是否按预期工作:/var/www/your_domain
index.html
- nano /var/www/your_domain/index.html
在此文件中包含以下内容:
<html>
<head>
<title>your_domain website</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is the landing page of <strong>your_domain</strong>.</p>
</body>
</html>
现在转到您的浏览器并再次访问您服务器的域名或 IP 地址:
http://server_domain_or_IP
你会看到一个这样的页面:
第 5 步 – 使用 Apache 测试 PHP
我们现在将创建一个 PHP 测试脚本来确认 Apache 能够处理和处理对 PHP 文件的请求。
info.php
在您的自定义 Web 根文件夹中创建一个名为的新文件:
- nano /var/www/your_domain/info.php
这将打开一个空白文件。在文件中添加以下内容:
<?php
phpinfo();
完成后,保存并关闭文件。
转到您的 Web 浏览器并访问您服务器的域名或 IP 地址,后跟脚本名称,在本例中为info.php
:
http://server_domain_or_IP/info.php
你会看到一个类似这样的页面:
通过该页面检查有关您的 PHP 服务器的相关信息后,最好删除您创建的文件,因为它包含有关您的 PHP 环境和您的 Ubuntu 服务器的敏感信息。您可以使用rm
:
- sudo rm /var/www/your_domain/info.php
相关教程
以下是与本教程相关的更详细指南的链接: