当前位置: 首页>>技术教程>>正文


如何在Ubuntu 18.04 Bionic Beaver Linux上安装Nginx,MariaDB,PHP(LEMP堆栈)

, ,

目的

在Ubuntu 18.04上安装Nginx Web服务器(LEMP)。特别是,该Linux Web服务器安装指南向您展示了如何安装Nginx,如何安装MariaDB以及如何安装PHP。

发行版

Ubuntu 18.04仿生海狸

要求

具有root特权的Ubuntu 18.04的有效安装

困难

介质

约定

  • -要求linux命令可以直接以root用户身份或通过使用root特权以root特权执行sudo命令
  • $-要求linux命令以普通非特权用户身份执行

介绍

如果您想在Linux上运行基于PHP的网站,则不是Apache的唯一选择。 Nginx是一种速度更快,重量更轻的Web服务器,非常易于配置和运行。此外,它在处理其他任务(如负载平衡,服务器优化以及充当反向代理)方面也非常出色。实际上,Nginx是托管其Web应用程序的新兴公司中的首选。将Nginx设置为在Ubuntu 18.04上托管PHP非常简单,您只需要安装几个软件包即可上手。

安装

在执行任何操作之前,应首先安装所需的所有内容。您只需要几个软件包。另外,Ubuntu 18.04在其默认存储库中具有所有版本的最新版本,因此您不必担心跟踪外部存储库。

$ sudo apt install mariadb-server nginx php-fpm php-mysql

在安装过程中,系统会要求您为MariaDB /MySQL设置一个管理员帐户。选择一个安全且令人难忘的密码短语。您还应该花一点时间立即启动并启用PHP-FPM。

注意:使用已安装的PHP版本更新以下命令!要检查您的PHP版本,请执行php --version命令。
$ sudo systemctl start php7.1-fpm
$ sudo systemctl enable php7.1-fpm



设置您的数据库

现在,您可以登录到新创建的数据库。

$ mysql -u root -p

输入在安装过程中设置的密码。您将进入MySQL控制台。您可以在那里完成所需的一切。首先,创建您的实际数据库。

mysql> CREATE DATABASE `bionic_lemp`;

然后,定期使用它来运行数据库。

mysql> CREATE USER `site_admin`@`localhost` IDENTIFIED BY 'your_password';

最后,为新用户授予实际使用数据库的权限。

mysql> GRANT ALL ON bionic_lemp.* TO `site_admin`@`localhost`;

完成后,刷新特权并退出控制台。

mysql> FLUSH PRIVILEGES;
mysql> exit;

配置Nginx

所有Nginx配置都位于/etc/nginx。将它们分解以简化配置过程。您需要担心的两个是主要nginx.conf文件和将为网站创建的site-specific文件。那一个,你会把sites-available目录。

在中为您的网站创建一个新文件/etc/nginx/sites-available。完整路径应类似于/etc/nginx/sites-available/your-site

通过创建一个开始文件server块。 Nginx的用途server块指定一个新的Web应用程序实例供其侦听。

server {
}

您应该放入的第一件事server块是listen线。他们告诉Nginx监听哪个端口。

listen 80 default;
listen [::]:80 default;

这些将涵盖IPv4和IPv6连接。去除default指定这是默认服务器。你只能有默认设置,因此,如果您要托管多个站点,请确保选择正确的站点。

接下来,告诉Nginx要与该站点关联的域名。如果您只是在本地进行此操作,请使用localhost。否则,请使用您的域名。

server_name your-site.com;

如果您希望Nginx使用以下命令自动重定向请求:www到同一服务器块。在当前服务器块的开头之前添加以下块。

server {
    listen       80;
    server_name  www.your-site.com;
    return       301 http://your-site.com$request_uri;
}


接下来,指定站点的根目录以及站点索引文件的名称。这些行告诉Nginx在以下位置查找网站/var/www/your-site并以任何名为index.php要么index.html

root /var/www/your-site/;
index index.php index.html;

为每个站点设置单独的错误日志也是一个好主意。在此处也指定它们。

access_log /var/log/nginx/your-site.access_log;
error_log/var/log/nginx/your-site.error_log;

创建一个location阻止告诉Nginx在找不到文件时引发404错误。location块进入服务器块,并告诉Nginx如何在特定位置处理特定文件类型。

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

您需要做的最后一件事是告诉Nginx如何处理您的PHP文件。建立另一个location阻止。

注意:使用已安装的PHP版本更新以下配置!要检查您的PHP版本,请执行php --version命令。
location ~ \.php$ {
	include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
}

Ubuntu Bionic Nginx Configuration LEMP
这就是您所需要的。保存并退出文件。现在创建该站点目录也是一个好主意。

$ sudo /var/www/your-site

也给Nginx所有权。

$ sudo chown -R www-data:www-data /var/www/your-site

现在,删除默认配置中的符号链接/etc/nginx/sites-enabled

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

然后,为您的站点配置创建一个新的符号链接。

$ sudo ln -s /etc/nginx/sites-available/your-site /etc/nginx/sites-enabled/

重新启动Nginx以使更改生效。

$ sudo systemctl restart nginx


测试出来

测试一切正常的最佳方法是在站点目录中放置一个简单的PHP脚本,并将其连接到数据库。在以下位置创建以下文件/var/www/your-site/index.php

<?php echo '<h1>Page loaded with PHP!</h1>';
$conn = mysqli_connect('localhost', 'site_admin', 'your_password');

if(!$conn){
	die('<h2>Error: </h2>' . mysqli_connect_error());
}else{
	echo '<h2>Successfully Connected to MySQL Database!</h2>';
}
?>

Ubuntu Bionic Running LEMP
使用网络浏览器导航到您的站点。如果看到成功消息,说明您已成功连接到MySQL,则表明服务器已正确配置。

总结思想

配置Nginx需要一些时间,但这是值得的。它不仅比其他Web服务器要快,而且还为您提供大量选项和fine-grained控件。配置Nginx来承载以其他语言(例如Python和Ruby)编写的Web应用程序以及与PHP一起使用也很容易。 Nginx无疑是现代Web应用程序的最佳选择之一。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8237.html,未经允许,请勿转载。