安装和配置LEMP堆栈用于开发和部署Web应用程序。本指南将帮助您在Ubuntu 18.04上安装NGINX,MYSQL和PHP。

在Ubuntu上安装LEMP堆栈

概述

在本指南中,我们将安装NGINX,MySQL和PHP(LEMP堆栈)进行开发和部署Web应用程序。我们还将在Ubuntu Server上配置Web服务器与Server PHP应用程序18.04。我们将介绍本教程中的以下各节。

先决条件

在安装软件之前,您应该满足以下要求。

  • 带有Ubuntu操作系统的服务器
  • sudo 特权的非根本用户

什么是LEMP堆栈?

LEMP堆栈 是一个软件集合,可用于运行基于PHP的Web应用程序。 LEMP代表Linux,Nginx,MySQL和PHP。 LEMP堆栈是灯泡的变体。 LAMP和LEMP都是用于开发和部署Web应用程序的流行软件堆栈。这两个软件堆栈之间有一个区别。 LAMP利用Apache Web服务器,而LEMP服务器则利用Nginx Web服务器。

LEMP安装

在本节中,我们将重点介绍如何在Ubuntu 18.04上安装NGINX,MySQL和PHP。首先,我们需要通过运行以下命令来更新服务器软件包。

$ sudo apt update

安装Nginx Web服务器

  • 将下面的命令运行到 在Ubuntu 上安装nginx。
$ sudo apt install nginx
  • 完成NGINX安装后,打开Web浏览器并输入服务器IP地址。它将向您显示NGINX Web服务器默认的欢迎页面。
Nginx Web服务器默认页面

安装mysql

现在,您需要安装MySQL数据库服务器来管理应用程序数据。

  • 将下面的命令运行 在Ubuntu 上安装mysql。
$ sudo apt install mysql-server
  • 要保护MySQL安装,请运行以下命令。
$ sudo mysql_secure_installation
  • 您将被要求您要启用 验证密码插件 是否。最好不要启用它,然后键入n并按Enter以行驶下一步。
  • 接下来,它将问您几个问题,如下所示。您需要回答所有问题。
Enter current password for root (enter for none):
Set root password? [Y/n]: N
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y
  • 现在,MySQL Server正在启动并运行。您可以使用以下命令对其进行测试。输入您的Ubuntu root帐户密码,而不是MySQL,以防该密码提示密码。
$ sudo mysql
  • 输入下面的命令以从MySQL退出。
mysql> exit

安装PHP

我们将介绍用于处理PHP的PHP-FPM的安装。 PHP-FPM代表FastCGI Process Manager。 NGINX Web服务器没有任何用于处理PHP的内置功能,因此,我们将使用PHP-FPM。此外,我们将安装用于与MySQL通信数据管理的PHP-MYSQL。

  • 将下面的命令运行到 在Ubuntu 上安装PHP。
$ sudo apt install php-fpm php-mysql
  • 现在,您已经完成了PHP安装和LEMP堆栈的所有所需软件以运行Web应用程序。
  • 在此步骤中,我们将创建NGINX配置文件,以告诉NGINX将PHP处理器用于动态内容。运行下面的命令以创建nginx配置文件。
$ sudo nano /etc/nginx/sites-available/example.com
  • 将代码复制到Nginx配置文件中并保存。
server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name example.com;

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

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

        location ~ /\.ht {
                deny all;
        }
}
  • 让我们简要介绍一下这些指令和位置块,以便您可以获取基本信息。
  • :您可以定义nginx的端口。使用HTTP的端口80,将443用于HTTPS协议。
  • root :为项目定义根目录。 Nginx将使用它为网站或Web应用程序服务。
  • 索引 :定义应提供文件的顺序。当调用索引文件时,NGINX将提供index.php文件。
  • server_name :定义服务器的域名或公共IP。
  • 位置 / :此位置块具有 try_block 指令,并与请求的URI匹配。 nginx返回404错误,如果找不到请求的文件。
  • 位置〜.php $ :此位置块处理PHP处理。
  • 位置〜 /.htxy:nginx不处理 。htaccess 文件,此位置阻止与之处理。 nginx通过定义 所有**指令不使用.htaccess文件。
  • 为新创建的Nginx配置文件创建SYMLINK以启用它。
$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  • 运行以下命令来测试语法错误的NGINX配置文件。
$ sudo nginx -t
  • 重新启动NGINX Web服务器。
$ sudo systemctl restart nginx

测试PHP

  • 为了确保NGINX正确提供PHP页面,我们将创建用于测试配置的PHP文件。
  • 通过运行以下命令,在NGINX Web服务器的根目录中创建info.php文件。
$ sudo nano /var/www/html/info.php
  • 将以下代码添加到其中并保存文件。
<?php
phpinfo();
  • 打开您的Web浏览器和键入域名或服务器公共IP,然后是php文件名,例如http:// server \ _ip \ _or_domain/info.php。您将看到以下页面。
PHP信息页面

结论

在本教程中,我们讨论了如何安装和配置 LEMP堆栈 。如您所见,配置软件堆栈组件真的很容易。此外,您可以在几分钟内开始创建和服务Web应用程序。 最后, containerize.com 正在始终如一地编写有关更多最新开源产品的博客文章。因此,与此 Web服务器解决方案堆栈 类别保持联系以进行最新更新。

探索

您可能会发现以下链接相关: