如何在 Ubuntu 20.04 上安装 Linux、Nginx、MySQL、PHP(LEMP 堆栈)[快速入门]

介绍

在本快速入门指南中,我们将在 Ubuntu 20.04 服务器上安装 LEMP 堆栈。

有关本教程的更详细版本以及每个步骤的更多解释,请参阅如何在 Ubuntu 20.0 上安装 Linux、Nginx、MySQL、PHP(LEMP 堆栈)

先决条件

要遵循本指南,您需要以sudo用户身份访问 Ubuntu 20.04 服务器

第 1 步 — 安装 Nginx

更新您的包管理器缓存,然后使用以下命令安装 Nginx:

  • sudo apt update
  • sudo apt install nginx

安装完成后,您需要调整防火墙设置以允许服务器上的 HTTP 流量。运行以下命令以允许端口80(HTTP)上的外部访问

  • sudo ufw allow in "Nginx"

添加新的防火墙规则后,您可以通过从 Web 浏览器访问服务器的公共 IP 地址或域名来测试服务器是否已启动并正在运行。你会看到一个这样的页面:

Nginx 默认页面

第 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请参阅我们在 Ubuntu 20.04 上的详细 LEMP指南的第 6 步以了解如何执行此操作。

第 3 步 – 安装 PHP

要安装php-fpmphp-mysql软件包,请运行:

  • sudo apt install php-fpm php-mysql

第 4 步 – 为 PHP 配置 Nginx

在本指南中,我们将设置一个名为your_domain的域,但您应该将其替换为您自己的域名

在 Ubuntu 20.04 上,Nginx 默认启用一个服务器块,并配置为从/var/www/html. 虽然这适用于单个站点,但如果您托管多个站点,则可能会变得难以管理。而不是修改的/var/www/html,我们将创建一个内部目录结构/var/www您的网域网站,留下/var/www/html的地方,就好像客户端的请求不符合任何其他网站要服务的默认目录。

your_domain创建根 Web 目录,如下所示:

  • sudo mkdir /var/www/your_domain

接下来,使用 $USER 环境变量分配目录的所有权,该变量将引用您当前的系统用户:

  • sudo chown -R $USER:$USER /var/www/your_domain

然后,sites-available使用您喜欢的命令行编辑器在 Nginx 的目录中打开一个新的配置文件在这里,我们将使用nano

  • sudo nano /etc/nginx/sites-available/your_domain

这将创建一个新的空白文件。粘贴以下基本配置:

/etc/nginx/sites-available/your_domain
server {
    listen 80;
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.html index.htm index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     }

    location ~ /\.ht {
        deny all;
    }

}


完成编辑后,保存并关闭文件。如果您正在使用nano,则可以通过键入CTRL+X、 然后yENTER进行确认。

通过链接到 Nginxsites-enabled目录中的配置文件来激活您的配置

  • sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

这将告诉 Nginx 在下次重新加载时使用该配置。您可以通过键入以下内容来测试您的配置是否存在语法错误:

  • sudo nginx -t

如果报告了任何错误,请在继续之前返回到您的配置文件查看其内容。

准备好后,重新加载 Nginx 以应用更改:

  • sudo systemctl reload nginx

您的新网站现已激活,但网站根目录仍为空。在该位置创建一个文件,以便我们可以测试您的新服务器块是否按预期工作:/var/www/your_domainindex.html

  • nano /var/www/your_domain/index.html

在此文件中包含以下内容:

/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 地址,如server_name服务器块配置文件中指令中所列

http://server_domain_or_IP

你会看到一个这样的页面:

Nginx 服务器块

步骤 5 — 使用 Nginx 测试 PHP

我们现在将创建一个 PHP 测试脚本来确认 Nginx 能够处理和处理对 PHP 文件的请求。

info.php在您的自定义 Web 根文件夹中创建一个名为的新文件

  • nano /var/www/your_domain/info.php

这将打开一个空白文件。在文件中添加以下内容:

/var/www/your_domain/info.php
<?php
phpinfo();

完成后,保存并关闭文件。

现在,您可以通过访问您在 Nginx 配置文件中设置的域名或公共 IP 地址,在 Web 浏览器中访问此页面,后跟/info.php

http://server_domain_or_IP/info.php

您将看到一个包含有关您的服务器的详细信息的网页:

PHPInfo Ubuntu 20.04

通过该页面检查有关您的 PHP 服务器的相关信息后,最好删除您创建的文件,因为它包含有关您的 PHP 环境和您的 Ubuntu 服务器的敏感信息。您可以使用rm删除该文件:

  • sudo rm /var/www/your_domain/info.php

以下是与本教程相关的更详细指南的链接:

觉得文章有用?

点个广告表达一下你的爱意吧 !😁