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 | sudo apt-get update |
如果你后台有运行 ufw 防火墙的话,就执行以下命令将 Nginx 服务加入到防火墙的允许列表中:
1 | sudo ufw allow 'Nginx HTTP' |
通过命令来确认结果:
1 | sudo ufw status |
结果应该是:
1 | Status: active |
然后在你的浏览器中输入你的服务器地址,就可以看到 Nginx 的初始界面了:
1 | http://server_domain_or_IP |
Step 2: Install MySQL to Manage Site Data
可以简单的通过 apt-get 命令安装:
1 | sudo apt-get install mysql-server |
你将会被询问,要求提供一个root账户的密码用来登录MySQL。
通过以下命令在服务器上进入MySQL服务界面:
1 | mysql -u root -p |
输入root账户的密码后,即可进入MySQL交互式界面。
此外,你还可以安装 VALIDATE PASSWORD PLUGIN 插件:
1 | sudo mysql_secure_installation |
在此就不做过多的介绍了。
Step 3: Install PHP for Processing
我们需要PHP的服务来处理动态内容,所以我们需要安装 php-fpm (fastCGI process manager) ,还是通过apt-get命令安装:
1 | sudo apt-get install php-fpm php-mysql |
Configure the PHP Processor
现在php模块已经安装了,我们需要修改一点点配置来保证php服务的安全。打开配置文件:
1 | sudo nano /etc/php/7.0/fpm/php.ini |
我们找到设置 cgi.fix_pathinfo 参数的那一行,去掉注释的分号,并将它的值设置为0:
1 | cgi.fix_pathinfo=0 |
关闭文件并保存。
现在,我们重启我们的PHP Processor:
1 | sudo systemctl restart php7.0-fpm |
这样我们的改动就会生效了。
Step 4: Configure Nginx to Use the PHP Processor
现在,我们已经安装了所有必须的模块,最后一项工作就是告诉 Nginx 使用 PHP processor 来处理动态内容。
打开默认的Nginx服务器配置文件:
1 | sudo nano /etc/nginx/sites-available/default |
除去所有的注释,这个文件的内容应是这样:
1 | server { |
我们需要针对我们的站点将其修改为如下内容:
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是否配置成功:
1 | sudo nginx -t |
如果没有Error,就说明你配置成功了,否则,就需要检测上一步是否有拼写错误之类的。
当你准备好了,就可以重新加载Nginx配置文件:
1 | sudo systemctl reload nginx |
Step 5: Create a PHP File to Test Configuration
你的 LEMP Stack 现在已经搭建完毕,我们可以做个简单的测试来看Nginx是否可以正确使用PHP processor来处理 .php 文件。
在我们的文件根目录(document root)下创建一个测试用的php文件,并命名为 info.php :
1 | sudo nano /var/www/html/info.php |
它的内容为:
1 |
|
保存并关闭文件,这段代码将会显示我们服务器的信息。
现在,你可以在浏览器中输入你的服务器IP + /info.php 来访问这个网页:
1 | http://server_domain_or_IP/info.php |
你将会看到如下网页,显示的是你服务器的信息:
这代表着你的测试成功了。
Conclusion
现在,你在你的 Ubuntu 16.04 的服务器上成功配置了 LEMP Stack,可以在它上面部署你自己的web应用啦~!
PS: 本文来自 reference 的第二篇 Digital Ocean tutorial,粗略地翻译了一下,感觉好蛋疼。。。这么好的英文教程不应该被翻译成中文的。。。下次争取自己写一些英文的博文...TAT