ubuntu 16.04 php nginx mysql_如何在 Ubuntu 16.04 上安装 LEMP Stack(Linux, Nginx, MySQL, PHP)

Introduction

LEMP Stack 是一组用来运行动态网站或者服务器的开源软件。它们是 Linux 操作系统,Nginx web服务器,后端数据存储在 MySQL 数据库,动态处理则是由 PHP 来完成。

这篇文章就是来说明如何在 Ubuntu 16.04 的服务器上安装 LEMP Stack。首先你需要有一个Ubuntu操作系统,然后我们来说明后面的部分如何完成。

Prerequisite

在完成这篇教程之前,你需要在你的服务器上有一个普通的、有sodu权限的非root用户账户。如果没有的话,就去看文末参考文献的第一篇教程吧。

然后,用此账户登陆你的服务器,就可以开始配置啦!

Step 1: Install the Nginx Web Server

首先通过 apt-get 命令安装Nginx:1

2sudo apt-get update

sudo apt-get install nginx

如果你后台有运行 ufw 防火墙的话,就执行以下命令将 Nginx 服务加入到防火墙的允许列表中:1sudo ufw allow 'Nginx HTTP'

通过命令来确认结果:1sudo ufw status

结果应该是:1

2

3

4

5

6

7

8Status: active

To Action From

-- ------ ----

OpenSSH ALLOW Anywhere

Nginx HTTP ALLOW Anywhere

OpenSSH (v6) ALLOW Anywhere (v6)

Nginx HTTP (v6) ALLOW Anywhere (v6)

然后在你的浏览器中输入你的服务器地址,就可以看到 Nginx 的初始界面了:1http://server_domain_or_IP

nginx.png

Step 2: Install MySQL to Manage Site Data

可以简单的通过 apt-get 命令安装:1sudo apt-get install mysql-server

你将会被询问,要求提供一个root账户的密码用来登录MySQL。

通过以下命令在服务器上进入MySQL服务界面:1mysql -u root -p

输入root账户的密码后,即可进入MySQL交互式界面。

此外,你还可以安装 VALIDATE PASSWORD PLUGIN 插件:1sudo mysql_secure_installation

在此就不做过多的介绍了。

Step 3: Install PHP for Processing

我们需要PHP的服务来处理动态内容,所以我们需要安装 php-fpm (fastCGI process manager) ,还是通过apt-get命令安装:1sudo apt-get install php-fpm php-mysql

Configure the PHP Processor

现在php模块已经安装了,我们需要修改一点点配置来保证php服务的安全。打开配置文件:1sudo nano /etc/php/7.0/fpm/php.ini

我们找到设置 cgi.fix_pathinfo 参数的那一行,去掉注释的分号,并将它的值设置为0:1cgi.fix_pathinfo=0

关闭文件并保存。

现在,我们重启我们的PHP Processor:1sudo systemctl restart php7.0-fpm

这样我们的改动就会生效了。

Step 4: Configure Nginx to Use the PHP Processor

现在,我们已经安装了所有必须的模块,最后一项工作就是告诉 Nginx 使用 PHP processor 来处理动态内容。

打开默认的Nginx服务器配置文件:1sudo nano /etc/nginx/sites-available/default

除去所有的注释,这个文件的内容应是这样:1

2

3

4

5

6

7

8

9

10

11

12

13server {

listen 80 default_server;

listen [::]:80 default_server;

root /var/www/html;

index index.html index.htm index.nginx-debian.html;

server_name _;

location / {

try_files $uri $uri/ =404;

}

}

我们需要针对我们的站点将其修改为如下内容:server {

listen 80 default_server;

listen [::]:80 default_server;

root /var/www/html;

index index.php index.html index.htm index.nginx-debian.html;

server_name server_domain_or_IP;

location / {

try_files $uri $uri/ =404;

}

location ~ .php$ {

include snippets/fastcgi-php.conf;

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

}

location ~ /.ht {

deny all;

}

}

保存并关闭文件。

可以通过命令来测试你的Nginx是否配置成功:1sudo nginx -t

如果没有Error,就说明你配置成功了,否则,就需要检测上一步是否有拼写错误之类的。

当你准备好了,就可以重新加载Nginx配置文件:1sudo systemctl reload nginx

Step 5: Create a PHP File to Test Configuration

你的 LEMP Stack 现在已经搭建完毕,我们可以做个简单的测试来看Nginx是否可以正确使用PHP processor来处理 .php 文件。

在我们的文件根目录(document root)下创建一个测试用的php文件,并命名为 info.php :1sudo nano /var/www/html/info.php

它的内容为:1

2phpinfo();

保存并关闭文件,这段代码将会显示我们服务器的信息。

现在,你可以在浏览器中输入你的服务器IP + /info.php 来访问这个网页:1http://server_domain_or_IP/info.php

你将会看到如下网页,显示的是你服务器的信息:

php_info.png

这代表着你的测试成功了。

Conclusion

现在,你在你的 Ubuntu 16.04 的服务器上成功配置了 LEMP Stack,可以在它上面部署你自己的web应用啦~!

PS: 本文来自 reference 的第二篇 Digital Ocean tutorial,粗略地翻译了一下,感觉好蛋疼。。。这么好的英文教程不应该被翻译成中文的。。。下次争取自己写一些英文的博文…TAT

Reference

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值