介绍
在本快速入门指南中,我们将在 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 地址或域名来测试服务器是否已启动并正在运行。你会看到一个这样的页面:
第 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-fpm
和php-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
这将创建一个新的空白文件。粘贴以下基本配置:
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
、 然后y
和ENTER
进行确认。
通过链接到 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_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 地址,如server_name
服务器块配置文件中的指令中所列:
http://server_domain_or_IP
你会看到一个这样的页面:
步骤 5 — 使用 Nginx 测试 PHP
我们现在将创建一个 PHP 测试脚本来确认 Nginx 能够处理和处理对 PHP 文件的请求。
info.php
在您的自定义 Web 根文件夹中创建一个名为的新文件:
- nano /var/www/your_domain/info.php
这将打开一个空白文件。在文件中添加以下内容:
<?php
phpinfo();
完成后,保存并关闭文件。
现在,您可以通过访问您在 Nginx 配置文件中设置的域名或公共 IP 地址,在 Web 浏览器中访问此页面,后跟/info.php
:
http://server_domain_or_IP/info.php
您将看到一个包含有关您的服务器的详细信息的网页:
通过该页面检查有关您的 PHP 服务器的相关信息后,最好删除您创建的文件,因为它包含有关您的 PHP 环境和您的 Ubuntu 服务器的敏感信息。您可以使用rm
删除该文件:
- sudo rm /var/www/your_domain/info.php
相关教程
以下是与本教程相关的更详细指南的链接: