共计 6806 个字符,预计需要花费 18 分钟才能阅读完成。
本教程将向您展示如何在 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 是一款高性能的网络服务器,近来非常流行。它也可以用作反向代理。输入此命令来安装 Nginx Web 服务器。
sudo apt install nginx
安装之后,我们可以通过运行以下命令来启动 Ubuntu 时自动启动 Nginx。…
sudo systemctl enable nginx
然后用这个命令启动 Nginx:
sudo systemctl start nginx
现在检查它的状态。
systemctl status nginx
输出:
linuxidc@linuxidc:~$ 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 Sat 2017-12-16 13:10:08 CST; 1min 6s ago
Docs: man:nginx(8)
Main PID: 23788 (nginx)
Tasks: 5 (limit: 4915)
CGroup: /system.slice/nginx.service
├─23788 nginx: master process /usr/sbin/nginx -g daemon on; master_pr
├─23789 nginx: worker process
├─23790 nginx: worker process
├─23791 nginx: worker process
└─23792 nginx: worker process
“enabled”表示启动时自动启动已启用,我们可以看到 Nginx 正在运行。注意上面的命令运行后不会立即退出。您需要按“q”使其退出。
检查 Nginx 版本。
nginx -v
输出:
nginx version: nginx/1.12.1 (Ubuntu)
现在在浏览器地址栏中输入你的 Ubuntu 17.10 服务器的公共 IP 地址。您应该看到“Welcome to 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 来检查它的状态。
systemctl status mariadb
输出:
● mariadb.service – MariaDB database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset:
Active: active (running) since Sat 2017-12-16 13:18:04 CST; 1min 51s ago
Main PID: 26260 (mysqld)
Status: “Taking your SQL requests now…”
Tasks: 26 (limit: 4915)
CGroup: /system.slice/mariadb.service
└─26260 /usr/sbin/mysqld
12 月 16 13:18:02 linuxidc systemd[1]: Starting MariaDB database server…
12 月 16 13:18:03 linuxidc mysqld[26260]: 2017-12-16 13:18:03 139963505346816 [No
12 月 16 13:18:04 linuxidc systemd[1]: Started MariaDB database server.
linuxidc@linuxidc:~$ sudo systemctl start mariadb
如果没有运行,请使用以下命令启动它:
sudo systemctl start mariadb
要启用 MariaDB 在引导时自动启动,请运行
sudo systemctl enable mariadb
现在运行安装安全脚本。
sudo mysql_secure_installation
当它要求您输入 MariaDB root 密码时,请按下 Enter 键,因为根密码尚未设置。然后输入 y 以设置 MariaDB 服务器的 root 密码。
接下来,您可以按 Enter 回答所有剩余的问题,这些问题将删除匿名用户,禁用远程 root 登录并删除测试数据库。这一步是 MariaDB 数据库安全的基本要求。(请注意,Y 是大写,这意味着按 Enter 键和输入 Y 是一样的。)
默认情况下,Ubuntu 上的 MaraiDB 软件包使用 unix_socket 对用户登录进行身份验证,这意味着您可以使用操作系统的用户名和密码登录到 MariaDB 控制台。所以你可以运行以下命令来登录而不提供 MariaDB 的 root 密码。
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
内容管理系统(CMS)通常需要 PHP 扩展,比如 WordPress。例如,如果你的安装缺少 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 prese
Active: active (running) since Sat 2017-12-16 13:28:21 CST; 2min 54s ago
Docs: man:php-fpm7.1(8)
Main PID: 5275 (php-fpm7.1)
Status: “Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/se
Tasks: 3 (limit: 4915)
CGroup: /system.slice/php7.1-fpm.service
├─5275 php-fpm: master process (/etc/php/7.1/fpm/php-fpm.conf)
├─5276 php-fpm: pool www
└─5277 php-fpm: pool www
12 月 16 13:28:21 linuxidc systemd[1]: Starting The PHP 7.1 FastCGI Process Manag
12 月 16 13:28:21 linuxidc systemd[1]: Started The PHP 7.1 FastCGI Process Manage
第 5 步:创建一个 Nginx 虚拟主机
Nginx 服务器就像 Apache 中的一个虚拟主机。我们不会使用默认的服务器块,因为它不足以运行 PHP 代码,如果我们修改它,它变得一团糟。因此,通过运行以下命令来删除启用了站点的目录中的默认符号链接。(它仍然是可用的/etc/nginx/sites-available/default
)
sudo rm /etc/nginx/sites-enabled/default
然后在 /etc/nginx/conf.d/ 目录下创建一个全新的服务器文件。
sudo nano /etc/nginx/conf.d/default.conf
将以下文本粘贴到文件中。将 192.168.1.108 替换为您的实际服务器 IP 地址。
server {
listen 80;
listen [::]:80;
server_name 192.168.1.108;
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。用您的实际 IP 替换 sever-ip-address。如果您在本地计算机上按照本教程进行操作,请输入 127.0.0.1/info.php 或 localhost/info.php。
你应该看到你的服务器的 PHP 信息。这意味着 PHP 脚本可以使用 Nginx Web 服务器正常运行。
如何安装 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-fpm 更改为 php7.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。
PHP7.1 可以和 PHP7.2 共存。如果你不想使用 PHP7.1,那么你可以删除它。请注意,某些 Web 应用程序可能与 NextCloud 12 等 PHP7.2 不兼容。在我的测试中,PHP7.2 下 WordPress 运行良好。
恭喜!您已经在 Ubuntu 17.10 上成功安装了 Nginx,MariaDB 和 PHP7。为了您的服务器的安全性,您应该立即删除 info.php 文件以防止窥探。
sudo rm /usr/share/nginx/html/info.php
使用 Nginx,MariaDB,PHP7.1(LEMP)在 Ubuntu 17.10 上安装 WordPress 见 http://www.linuxidc.com/Linux/2017-12/149582.htm
OK!我希望这个教程帮助你在 Ubuntu 17.10 上安装 LEMP 环境。与往常一样,如果你发现这篇文章有用,请分享给更多的朋友。
完整 PDF 文档可以到 Linux 公社资源站下载:
—————————————— 分割线 ——————————————
免费下载地址在 http://linux.linuxidc.com/
用户名与密码都是www.linuxidc.com
具体下载目录在 /2017 年资料 /12 月 /18 日 /Ubuntu 17.10 上安装 LEMP 环境(Nginx,MariaDB,PHP7.1)/
下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm
—————————————— 分割线 ——————————————
更多 Ubuntu 相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149581.htm