如何在 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:

1sudo apt update
2sudo apt install nginx

安装完成后,您需要调整防火墙设置,以便在您的服务器上允许 HTTP 流量。

1sudo ufw allow in "Nginx"

随着新增的防火墙规则,您可以通过从您的 Web 浏览器访问服务器的公共 IP 地址或域名来测试服务器是否正在运行。

Nginx default page

第2步:安装MySQL

我们现在将安装MySQL,这是一个流行的PHP环境中使用的数据库管理系统。

再次,使用apt来获取和安装此软件:

1sudo apt install mysql-server

当安装完成后,建议您运行一个安全脚本,该脚本是预先安装的MySQL。

1sudo mysql_secure_installation

这将询问您是否要配置验证密码插件。回答Y,或其他任何事情,以继续而不启用。

接下来,您的服务器将要求您选择并确认MySQL root**用户的密码,尽管MySQL root用户的默认身份验证方法不允许使用密码,即使设置了密码,您也应该在这里定义一个强大的密码作为额外的安全措施。

对于其他问题,按Y并在每个提示键中按ENTER键。

<$>[note] 注: 在本文写作时,原始MySQL PHP库 mysqlnd 不支持 caching_sha2_authentication,是MySQL 8的默认身份验证方法。因此,在创建MySQL 8上的PHP应用程序的数据库用户时,您需要确保它们配置为使用‘mysql_native_password’而不是。请参阅我们在Ubuntu 20.04上的详细LEMP的第6步(https://andsky.com/tech/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-20-04# step-6-%E2%80%94-testing-database-connection-from-php-(optional)指南,了解如何做到这一点。

步骤三:安装PHP

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

1sudo apt install php-fpm php-mysql

步骤 4 — 配置 Nginx for PHP

在本指南中,我们将设置一个名为 your_domain 的域名,但您应该 ** 用自己的域名代替它。

在Ubuntu 20.04上,Nginx默认允许一个服务器块,并配置为在/var/www/html的目录中服务文档。虽然这对单个网站来说很好,但如果您托管多个网站,则很难管理。

创建 your_domain 的根网页目录如下:

1sudo mkdir /var/www/your_domain

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

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

然后,在 Nginx 的可用网站目录中使用您偏好的命令行编辑器打开一个新的配置文件。

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

这将创建一个新的空格文件. 粘贴到以下裸骨配置:

 1[label /etc/nginx/sites-available/your_domain]
 2server {
 3    listen 80;
 4    server_name your_domain www.your_domain;
 5    root /var/www/your_domain;
 6
 7    index index.html index.htm index.php;
 8
 9    location / {
10        try_files $uri $uri/ =404;
11    }
12
13    location ~ \.php$ {
14        include snippets/fastcgi-php.conf;
15        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
16     }
17
18    location ~ /\.ht {
19        deny all;
20    }
21
22}

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

通过从 Nginx 的网站启用目录链接到配置文件来激活您的配置:

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

这将告诉 Nginx下次重新加载时使用配置,您可以通过键入测试您的配置语法错误:

1sudo nginx -t

如果报告了任何错误,请返回配置文件,查看其内容,然后继续。

当您准备好时,重新加载 Nginx 以应用更改:

1sudo systemctl reload nginx

您的新网站现在正在运行,但网页根 /var/www/your_domain 仍然是空的. 在该位置创建一个 index.html 文件,以便我们可以测试您的新服务器块是否按预期工作:

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

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

 1[label /var/www/your_domain/index.html]
 2<html>
 3  <head>
 4    <title>your_domain website</title>
 5  </head>
 6  <body>
 7    <h1>Hello World!</h1>
 8
 9    <p>This is the landing page of <strong>your_domain</strong>.</p>
10  </body>
11</html>

现在,进入您的浏览器并访问您的服务器的域名或IP地址,如您的服务器封锁配置文件中的server_name指令中列出的:

1http://server_domain_or_IP

你会看到这样的页面:

Nginx server block

步骤 5 – 使用 Nginx 测试 PHP

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

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

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

这将打开一个空的文件. 将下列内容添加到文件中:

1[label /var/www/your_domain/info.php]
2<?php
3phpinfo();

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

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

1http://server_domain_or_IP/info.php

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

PHPInfo Ubuntu 20.04

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

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

相关教程

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

Published At
Categories with 技术
comments powered by Disqus