首页 > 后台 > 如何在Ubuntu 14.04上搭建LNMP环境

如何在Ubuntu 14.04上搭建LNMP环境

本文翻译自Justin Ellingwood发布在DigitalOcean上的一篇文章:How To Install Linux, nginx, MySQL, PHP (LEMP) stack on Ubuntu 14.04,原文有些许冗长,我做了些改动。

 

引言

LNMP(也有人称为LEMP)指的是Linux系统下Nginx+MySQL+PHP这种网站服务器架构搭配,集性能、稳定性、可扩展性于一体,是目前流行的服务器环境,本文将介绍如何在Ubuntu 14.04 上搭建LNMP环境,在进行下文操作前,请确保你的Ubuntu是一个初始化状态正常的系统。

2016050313200088

 

步骤一、安装Nginx

为了向用户展示我们的网页,我们需要一个Web服务器,Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器,发音为 “Engine X”(记得一开始因为自己发音不准的问题还被后台的小伙伴嘲弄了一通…)。

Ubuntu默认的包管理器是apt,用其他包管理器的操作大同小异,安装Nginx之前先update更新一下源:

sudo apt-get update
sudo apt-get install nginx

在Ubuntu中,Nginx默认安装完成后自动启动,所以等安装完成后,我们就可以在浏览器里输入Ubuntu系统的所在IP,访问的效果应该是这样的:

2016050313320837

你如果看到这个页面,就说明Nginx已经在你的Ubuntu上安装成功了。

 

步骤二、安装MySQL

上面我们已经安装好Web服务器了,接下来安装的是数据管理系统——MySQL,终端输入以下命令:

sudo apt-get install mysql-server

安装过程会提示你输入MySQL的root密码,Tag键可以进行切换。

安装好MySQL后,我们还需要进行一些初始化配置——告诉MySQL它需要生成存放数据库和日志等信息的地方以及安全配置:

sudo mysql_install_db
sudo mysql_secure_installation

此过程会问你是不是要重置root密码、是否允许远程登录等等,按Y/N进行选择,直到完成MySQL的安装。

 

步骤三、安装PHP

现在我们已经装好了Nginx和MySQL,但是还缺一个东西把这Web服务器和数据库连接起来,这个东西就是PHP了。

这里选择的PHP版本为5:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
sudo apt-get install -y php5

命令执行完毕后,可以用”php -v”查询安装是否成功。

自从Nginx不在包含原生PHP之后,就像其它Web Service一样,我们需要安装php-fpm,这是一个只用于PHP的PHPFastCGI管理器,要连接数据库则用的是php-mysql,输入下面命令进行安装:

sudo apt-get install php5-fpm php5-mysql

安装好PHP后,接下来需要配置PHP处理器,我们打开php5-fpm配置文件php.ini:

sudo vim /etc/php5/fpm/php.ini

这里用到的文本编辑器是vim,系统没装vim的可以  sudo apt-get install vim 安装或者选择其他编辑器,操作方法大同小异。

我们需要寻找字段  cgi.fix_pathinfo  (查找方法:vim命令模式下按‘/’,然后输入要查找的字符回车)。这个参数用来对设置cgi模式下为php是否提供绝对路径信息或PATH_INFO信息,Nginx默认是不会设置PATH_INFO环境变量的的值,需要php使用cgi.fix_pathinfo=1来完成路径信息的获取,但同时会带来安全隐患,需要把cgi.fix_pathinfo=0设置为0,这样php就获取不到PATH_INFO信息。

默认为cgi.fix_pathinfo=1,我们需要把它改为cgi.fix_pathinfo=0:

2016050402381825

改好后记得保存退出,然后重启PHP处理器:

sudo service php5-fpm restart

 

步骤四、给Nginx适配我们的PHP处理器

现在我们已经把该安装的都安装完毕了,接下来还得告诉Nginx去如何使用PHP处理器,打开Nginx的默认服务配置:

sudo vim /etc/nginx/sites-available/default

它看起来应该是这样的:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
 
    root /usr/share/nginx/html;
    index index.html index.htm;
 
    server_name localhost;
 
    location / {
        try_files $uri $uri/ =404;
    }
    .......
}

 

我们要做如下改动:

1、添加index.php到server值index中,让Nginx识别index.php

2、添加你的域名或者IP到server值server_name中(如果没有域名这一步可以略过,Nginx会采用默认的localhost)

3、开启404错误页面,当访问出错时会给个页面提示

4、开启PHP服务,取消掉一些注释

 

改动后是这样的:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    server_name server_domain_name_or_IP;

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

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

改完后保存退出,然后重启Nginx:

sudo service nginx restart

 

步骤五、创建PHP文件,测试上面四个步骤是否成功

经过上面四个步骤之后,我们在Ubuntu上已经装好了LNMP环境,但我们仍需确认一下Nginx是否能够正确地操控.php文件给PHP处理器。

首先创建一个测试文件,我们把它命名为info.php:

sudo vim /usr/share/nginx/html/info.php

然后把以下内容输入到info.php里面:

<?php
phpinfo();
?>

保存并退出。

现在,你可以通过你的网页浏览器访问你搭建好的服务器了,按照下面格式输入访问的地址:

http://你的域名或IP/info.php

你将看到的是由PHP生成的关于你服务器信息的一个页面:

2016050313321118

如果你看到这个页面的话,就说明你的Nginx已经成功地操控.php文件给PHP处理器了。

最后为了隐私和安全起见,最好输入下面命令行吧刚才生成的info.php文件删除:

sudo rm /usr/share/nginx/html/info.php

 

总结

自此你已经成功地把LNMP环境安装在你的Ubuntu14.04服务器上了。

它将助你得以灵活、高效地向访问者展示你的页面!

 


本文标题:如何在Ubuntu 14.04上搭建LNMP环境
转载请注明出处,欢迎分享