LNMP(也有人称为LEMP)指的是Linux系统下Nginx+MySQL+PHP这种网站服务器架构搭配,集性能、稳定性、可扩展性于一体,是目前流行的服务器环境,本文将介绍如何在Ubuntu 14.04 上搭建LNMP环境,在进行下文操作前,请确保你的Ubuntu是一个初始化状态正常的系统。
为了向用户展示我们的网页,我们需要一个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,访问的效果应该是这样的:
你如果看到这个页面,就说明Nginx已经在你的Ubuntu上安装成功了。
上面我们已经安装好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的安装。
现在我们已经装好了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:
改好后记得保存退出,然后重启PHP处理器:
sudo service php5-fpm restart
现在我们已经把该安装的都安装完毕了,接下来还得告诉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
经过上面四个步骤之后,我们在Ubuntu上已经装好了LNMP环境,但我们仍需确认一下Nginx是否能够正确地操控.php文件给PHP处理器。
首先创建一个测试文件,我们把它命名为info.php:
sudo vim /usr/share/nginx/html/info.php
然后把以下内容输入到info.php里面:
<?php
phpinfo();
?>
保存并退出。
现在,你可以通过你的网页浏览器访问你搭建好的服务器了,按照下面格式输入访问的地址:
http://你的域名或IP/info.php
你将看到的是由PHP生成的关于你服务器信息的一个页面:
如果你看到这个页面的话,就说明你的Nginx已经成功地操控.php文件给PHP处理器了。
最后为了隐私和安全起见,最好输入下面命令行吧刚才生成的info.php文件删除:
sudo rm /usr/share/nginx/html/info.php
自此你已经成功地把LNMP环境安装在你的Ubuntu14.04服务器上了。
它将助你得以灵活、高效地向访问者展示你的页面!