如何搭建 LNMP 网站服务环境

LNMP指的是一个基于/编写的Nginx、PHP、MySQL一键安装包 。可以在VPS、独立主机上轻松的安装LNMP生产环境 。LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构 。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统 。本文将教你在新睿云云服务器上搭建LNMP网站服务环境 。分为四大部分,第一部分为安装Nginx,第二部分为安装MySQL数据库服务,第三部分为搭建PHP运行环境,第四部分配置使用Nginx代理转发PHP数据 。想学习的同学可以在新睿云官网领取现金券,获取免费云服务器动手搭建;如果打算长期使用,也可以购买一台服务器 。
安装Nginx环境
【如何搭建 LNMP 网站服务环境】安装Nginx有两种方法,分别为使用apt包管理工具安装和使用编译方式进行安装 。如果你使用的是系统,则可以按照本教程使用apt包管理工具进行安装 。
首先,我们需要使用sudo apt-get 更新当前系统下apt包管理器的列表 。然后使用sudo apt-getnginx命令安装Nginx软件 。
sudo apt-get updatesudo apt-get install nginx
输入后你会看到如下输出
ubuntu@VM-0-7-ubuntu:~$ sudo apt-get install nginxReading package lists... DoneBuilding dependency treeReading state information... DoneThe following additional packages will be installed:........Need to get 2,857 kB of archives.After this operation, 9,307 kB of additional disk space will be used.Do you want to continue? [Y/n]
这里询问我们是否安装,我们按下键盘上的Y,然后按下回车键,之后,你会看到类似如下输出:
Get:1 http://mirrors.tencentyun.com/ubuntu xenial-security/main amd64 libjpeg-tu.........Processing triggers for ufw (0.35-0ubuntu2) ...ubuntu@VM-0-7-ubuntu:~$
这时,你已经安装好了Nginx服务,尝试通过浏览器访问下你的服务器 , 在新睿云控制台找到你服务器的公网IP,然后复制到浏览器打开,如果你看到如下输出,证明你已经成功安装Nginx 。
安装MySQL数据库服务
我们已经安装了基础的Web服务软件Nginx了,接下来我们将要安装数据库服务,数据库有很多种选择,这里我们选择最常用的MySQL服务 。和安装Nginx一样,我们只需输入sudo apt-getmysql-来安装MySQL服务 。这里安装的MySQL版本是5.7版本 。
sudo apt-get install mysql-server
输入完成后你会看到如下输出
ubuntu@VM-0-7-ubuntu:~$ sudo apt install mysql-serverReading package lists... DoneBuilding dependency treeReading state information... DoneThe following additional packages will be installed:........0 upgraded, 21 newly installed, 0 to remove and 205 not upgraded.Need to get 19.4 MB of archives.After this operation, 162 MB of additional disk space will be used.Do you want to continue? [Y/n] y
请按下键盘上的Y然后回车继续 。接下来,安装程序将要求你输入你的数据库root用户的密码,如图 。
这里请输入你想为root用户设定的密码,我这里输入为例 。自己设置的时候请设置较复杂的密码 。输入完成后按下回车,系统将要求你再次输入一遍刚才设定的密码,同样,输入完成后我们按下回车 。接下来将进入漫长的安装过程,你会看到类似如下输出 。
Do you want to continue? [Y/n] yGet:1 http://mirrors.tencentyun.com/ubuntu xenial-security/main amd64 mysql-common all 5.7.23-0ubuntu0.16.04.1 [15.4 kB]Get:2 http://mirrors.tencentyun.com/ubuntu xenial/main amd64 libaio1 amd64 0.3.110-2 [6,356 B]..........Setting up mysql-server (5.7.23-0ubuntu0.16.04.1) ...Processing triggers for libc-bin (2.23-0ubuntu9) ...Processing triggers for systemd (229-4ubuntu21.2) ...Processing triggers for ureadahead (0.100.0-19) ...ubuntu@VM-0-7-ubuntu:~$
接下来 , 我们将安装php环境 。
安装PHP环境
同样简单,我们依然可以使用apt包管理器进行php的安装,不过这次我们不只要安装php本身,还要安装php-fpm,它是一个管理器 , 可以有效控制内存和进程、可以平滑重载PHP配置 。同样,为了连接数据库,我们还需要安装php-mysql插件 。使用下面的命令即可快速安装 。
sudo apt-get install phpsudo apt-get install php-fpmsudo apt-get install php-mysql
输入完这三个命令后,系统同样会输出一大堆内容 , 我们只需要耐心等待即可 。值得注意的是,我的系统版本是16.04.1 LTS,默认安装的是PHP 7.0版本 。PHP-FPM 默认监听 9000 端口 。
配置Nginx代理PHP程序
我们已经安装完了Nginx、PHP及MySQL,但是这套服务暂时还不能使用,我们需要将Nginx和PHP通过配置链接起来 。具体操作如下 , 首先我们需要进入Nginx配置目录 。在/etc/nginx/conf.d/这个目录下 。
ubuntu@VM-0-7-ubuntu:~$ cd /etc/nginx/conf.d/ubuntu@VM-0-7-ubuntu:/etc/nginx/conf.d$
接下来我们要新建一个名为.conf的配置文件 , 你可以使用任意编辑器来编写,这里我使用nano编辑器进行编写,可以使用下面的命令 。
sudo nano default.conf

如何搭建 LNMP 网站服务环境

文章插图
然后复制下面的配置到编辑器
server {listen80;root/usr/share/nginx/html;location ~ .php$ {fastcgi_passunix:/run/php/php7.0-fpm.sock;# 如果你的php版本低于7.0 , 请将unix:/run/php/php7.0-fpm.sock;替换为127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;includefastcgi_params;}}
然后按下键盘上的Ctrl+O键然后按下回车保存,然后按下Ctrl+W退出 。接下来我们需要删除nginx默认的配置文件,不然我们定义的这个文件运行会报错 。首先打开/etc/nginx/sites-目录,然后删除默认的的文件 。具体操作如下:
cd /etc/nginx/sites-availablesudo rm default
然后我们需要重启nginx以确保其正常运行,可以使用sudonginx 这个命令 。
sudo service nginx restart
没有报错证明系统一切正常 , 我们可以测试我们的php是否正常运行了 。测试之前我们需要准备测试脚本,这里我们新建一个名为info.php的文件,这个文件一定要放在我们上面写的.conf里面的root行后面指向的目录,本文配置是/usr/share/nginx/html目录,具体操作如下 。
cd /usr/share/nginx/htmlsudo nano info.php
然后在编辑器里面写下如下代码

然后按下键盘上的Ctrl+O键然后按下回车保存,然后按下Ctrl+W退出 。接下来,通过浏览器访问 你的服务器的公网IP地址/info.php ,如果你看到如图结果,证明一切正常 , 赶快开始部署你喜爱的程序吧!
总结
这篇文章中 , 我们学会了搭建LNMP网站服务环境 。通过这个环境,你可以部署很多基于PHP语言的网站,如果你想搭建博客,可以参个人博客搭建指南这篇文章 。
当然,搭建LNMP过程中难免会遇到一些莫名其妙的问题,在这里我总结几点,希望对你有帮助 。
Q:启动Nginx过程中总是报“Job for nginx.thewith error code. See "nginx." and " -xe" for .”错误 。A:请检查Nginx配置文件 , 确保其格式正确,如果太长,请分离开一段一段检查 。Q:配置完成并重启Nginx无效 , 访问服务器IP还是默认的页面 。A:请检查/etc/nginx/sites-和/etc/nginx/conf.d是否有其他文件冲突,若有冲突请删除多余文件 。Q:访问info.php文件报502错误A:首先检查php-fpm服务是否启动,可以使用sudophp-fpm start命令启动,若还是报错 , 请检查你的php版本,低于7.0版本请将nginx配置文件中的行改为127.0.0.1:9000;Q:php版本是7.0,已经启动php-fpm服务 , 还是报错502 。A:打开/run/php/目录 , 寻找以.sock结尾的文件,并以绝对路径方式替换配置中的/run/php/php7.0-fpm.sock