如何在Ubuntu 17.10上安装LEMP Stack(Nginx,MariaDB,PHP7.1)

本教程将向您展示如何在Ubuntu 17.10上安装Nginx,MariaDB和PHP7.1(LEMP)。 您可以在VPS(虚拟专用服务器)或本地Ubuntu 17.10计算机上遵循本教程。 PHP7.1包含在Ubuntu 17.10中,与PHP7.0相比,性能稍有提高。

步骤1:更新软件包

在安装LEMP堆栈之前,最好先更新存储库和软件包。 在Ubuntu 17.10操作系统上运行以下命令。

sudo apt update

sudo apt upgrade

步骤2:安装Nginx Web服务器

Nginx是一种高性能的Web服务器,如今非常流行。 它也可以用作反向代理。 输入此命令以安装Nginx Web服务器。

sudo apt install nginx

安装后,可以通过运行以下命令使Nginx在启动Ubuntu时自动启动。

sudo systemctl enable nginx

然后使用以下命令启动Nginx:

sudo systemctl start nginx

现在查看其状态。

systemctl status nginx

输出:

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
   Active: active (running) since Tue 2017-12-12 06:17:50 UTC; 51s ago
     Docs: man:nginx(8)
 Main PID: 15672 (nginx)
    Tasks: 2 (limit: 4915)
   Memory: 6.3M
      CPU: 37ms
   CGroup: /system.slice/nginx.service
           ├─15672 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
           └─15675 nginx: worker process

已启用”表示已启用启动时自动启动,并且我们可以看到Nginx正在运行。 请注意,上面的命令在运行后不会立即退出。 您需要按“q使其退出。

检查Nginx版本。

nginx -v

输出:

nginx version: nginx/1.12.1 (Ubuntu)

现在,在浏览器地址栏中输入您的Ubuntu 17.10服务器的公共IP地址。 您应该看到“欢迎使用Nginx”网页,这意味着Nginx Web服务器正在正常运行。 如果要在本地Ubuntu 17.10计算机上安装LEMP,请键入 127.0.0.1 要么 localhost 在浏览器地址栏中。

最后,我们需要 www-data (Nginx用户)作为Web根目录的所有者。 默认情况下,它由root用户拥有。

sudo chown www-data:www-data /usr/share/nginx/html -R

步骤3:安装MariaDB数据库服务器

MariaDB是MySQL的直接替代品。 它是由MySQL团队的前成员开发的,他们担心Oracle可能会将MySQL变成开源产品。 输入以下命令以在Ubuntu 17.10上安装MariaDB。

sudo apt install mariadb-server mariadb-client

安装后,MariaDB服务器应自动启动。 使用 系统控制 检查其状态。

systemctl status mariadb

输出:

● mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset:enabled) 
   Active: active (running) since Tue 2017-12-12 06:36:12 UTC; 6s ago
 Main PID: 17409 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 26 (limit: 4915)
   Memory: 59.9M
      CPU: 342ms
   CGroup: /system.slice/mariadb.service
           └─17409 /usr/sbin/mysqld

如果它没有运行,请使用以下命令启动它:

sudo systemctl start mariadb

要使MariaDB在启动时自动启动,请运行

sudo systemctl enable mariadb

现在运行安装后安全脚本。

sudo mysql_secure_installation

当要求您输入MariaDB根密码时,请按Enter键,因为尚未设置根密码。 然后输入 ÿ 设置MariaDB服务器的根密码。

Ubuntu 17.10安装LEMP堆栈

接下来,您可以按Enter回答所有剩余的问题,这将删除匿名用户,禁用远程root登录并删除测试数据库。 此步骤是MariaDB数据库安全性的基本要求。 (请注意,Y是大写字母,这意味着按Enter键与键入Y相同。)

如何在Ubuntu 17.10上安装Lemp

默认情况下,Ubuntu上的MaraiDB软件包使用unix_socket来验证用户登录名,这基本上意味着您可以使用操作系统的用户名和密码登录MariaDB控制台。 因此,您可以运行以下命令来登录,而无需提供MariaDB根密码。

sudo mariadb -u root

要退出,请运行

exit;

检查MariaDB服务器版本信息。

mariadb --version

如您所见,我们已经安装了MariaDB 10.1.25。

mariadb Ver 15.1 Distrib 10.1.25-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

步骤4:安装PHP7.1

PHP7.1包含在Ubuntu 17.10存储库中,与PHP7.0相比,性能略有提高。 输入以下命令以安装PHP7.1和一些常见扩展。

sudo apt install php7.1 php7.1-fpm php7.1-mysql php-common php7.1-cli php7.1-common php7.1-json php7.1-opcache php7.1-readline php7.1-mbstring php7.1-xml php7.1-gd php7.1-curl

WordPress等内容管理系统(CMS)通常需要PHP扩展。 例如,如果您的安装缺少 php7.1-xml,那么您的某些WordPress网站页面可能为空白,您可以在Nginx错误日志中找到错误,例如:

PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function xml_parser_create()

安装这些PHP扩展可确保CMS顺利运行。 现在启动php7.1-fpm。

sudo systemctl start php7.1-fpm

在启动时启用自动启动。

sudo systemctl enable php7.1-fpm

检查状态:

systemctl status php7.1-fpm

样本输出:

● php7.1-fpm.service - The PHP 7.1 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.1-fpm.service; enabled; vendor preset:enabled)
   Active: active (running) since Tue 2017-12-12 06:53:08 UTC; 4min 25s ago
     Docs: man:php-fpm7.1(8)
 Main PID: 27560 (php-fpm7.1)
   Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se
    Tasks: 3 (limit: 4915)
   Memory: 28.0M
      CPU: 58ms
   CGroup: /system.slice/php7.1-fpm.service
           ├─27560 php-fpm: master process (/etc/php/7.1/fpm/php-fpm.conf)
           ├─27580 php-fpm: pool www
           └─27583 php-fpm: pool www

步骤5:创建一个Nginx服务器块

Nginx服务器块就像Apache中的虚拟主机。 我们将不使用默认服务器块,因为它不足以运行PHP代码,并且如果我们对其进行修改,它将变得一团糟。 因此,删除 default 在符号链接 sites-enabled 通过运行以下命令创建目录。 (它仍然可以作为 /etc/nginx/sites-available/default

sudo rm /etc/nginx/sites-enabled/default

然后在下面创建一个全新的服务器阻止文件 /etc/nginx/conf.d/ 目录。

sudo nano /etc/nginx/conf.d/default.conf

将以下文本粘贴到文件中。 将12.34.56.78替换为您的实际服务器IP地址。

server {
  listen 80;
  listen [::]:80;
  server_name 12.34.56.78;
  root /usr/share/nginx/html/;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

  error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;

  location = /50x.html {
    root /usr/share/nginx/html;
  }

  location ~ .php$ {
    fastcgi_pass unix:/run/php/php7.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /.ht {
    deny all;
  }
}

保存并关闭文件。 然后测试Nginx配置。

sudo nginx -t

如果测试成功,请重新加载Nginx。

sudo systemctl reload nginx

步骤6:测试PHP

要使用Nginx Web服务器测试PHP-FPM,我们需要创建一个 info.php 文件根目录中的文件。

sudo nano /usr/share/nginx/html/info.php

将以下PHP代码粘贴到文件中。

<?php phpinfo(); ?>

保存并关闭文件。 现在,在浏览器地址栏中,输入 server-ip-address/info.php。 更换 sever-ip-address 与您的实际IP。 如果您在本地计算机上遵循本教程,请输入 127.0.0.1/info.php 要么 localhost/info.php

您应该看到服务器的PHP信息。 这意味着PHP脚本可以在Nginx Web服务器上正常运行。

Ubuntu 17.10 Nginx的PHP7.1-FPM

如何安装PHP7.2

PHP7.2是PHP的最新稳定版本,于2017年11月30日发布,与PHP7.1相比,性能稍有提升。 我们可以从Ondrej Sury添加PPA,以在Ubuntu 17.10上安装PHP7.2。 那家伙也是Certbot PPA的维护者。

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

然后,我们可以使用以下命令安装PHP7.2和通用扩展。

sudo apt install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

现在启动PHP7.2-FPM。

sudo systemctl start php7.2-fpm

在系统启动时启用自动启动。

sudo systemctl enable php7.2-fpm

检查其状态:

systemctl status php7.2-fpm

在Nginx上使用PHP7.2-FPM

为了使Nginx使用PHP7.2-FPM而不是PHP7.1-FPM,我们需要编辑Nginx服务器块文件。

sudo nano /etc/nginx/conf.d/default.conf

找到以下行。

fastcgi_pass unix:/run/php/php7.1-fpm.sock;

更改 php7.1-fpmphp7.2-fpm

fastcgi_pass unix:/run/php/php7.2-fpm.sock;

保存并关闭文件。 然后重新加载Nginx以使更改生效。

sudo systemctl reload nginx

如果刷新 server-ip-address/info.php 页面上,您将看到Nginx现在正在使用PHP7.2-FPM。

Ubuntu 17.10 php7.2

PHP7.1可以与PHP7.2共存。 如果您不想使用PHP7.1,则可以将其删除。 请注意,某些网络应用程序可能与NextCloud 12等PHP7.2不兼容。在我的测试中,WordPress与PHP7.2一起运行良好。

恭喜! 您已在Ubuntu 17.10上成功安装了Nginx,MariaDB和PHP7。 为了确保服务器的安全,您现在应该删除info.php文件以防止窥视。

sudo rm /usr/share/nginx/html/info.php

而已! 希望本教程对您有所帮助 在Ubuntu 17.10上安装LEMP堆栈。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。

Sidebar