本文流程来自https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-debian-7 ,并做了部分修改

LEMP安装的教程有很多,但是自己也做了一遍并纪录下来。

LEMP

LEMP指Linux(L),MySQL(M),PHP(P),Nginx(E,发音engine x).它和经典的LAMP不同的是把Apache替换成了Nignx.

这篇文章主要纪录了如何去安装LEMP,以及一些相关的配置。

1.update apt-get

开始之前,我们总要更新一下机器上的版本纪录,以获得最新的软件。

sudo apt-get update

2.apt-get install mysql-server

输入
sudo apt-get install mysql-server
,过程中会要求设置root密码;

mysql root password setting

当安装完成后,可以用这些命令来完成mysql启动向导。

sudo mysql_install_db

然后再用

sudo /usr/bin/mysql_secure_installation

这条命令进入的时候会要求输入root的密码,然后请仔细阅读每条说明(是否删除匿名帐号,是否删除test数据库等等),输入y/n以选择。

3. apt-get install nginx

安装nginx

sudo apt-get install nginx

启动nginx

sudo service nginx start

OK!现在在浏览器中输入IP地址,看到以下类似的界面就说明成功了

nginx

使用ifconfig eth0 | grep inet | awk ‘{ print $2 }’可以看到VPS的IP地址

配置nginx

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

更改配置参考到如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 [...]
server {
listen 80;

#root的地址页面文件所在位置
root /usr/share/nginx/www;
#不要忘记添加index.php
index index.php index.html index.htm;

#在这里定义IP或者自己的域名
server_name example.com;

location / {
try_files $uri $uri/ /index.html;
}

error_page 404 /404.html;

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

# pass the PHP scripts to FastCGI server listening on /var/run/php5-fpm.sock
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

}

}
[...]

4.apt-get install php5-fpm php5-mysql

安装php5 fpm
sudo apt-get install php5-fpm php5-mysql

配置

  1. 位置:/etc/php5/fpm/php.ini

    操作:将cgi.fix_pathinfo = 1 ,从1改成0

    说明:这一段代码可能是被注释的。cgi.fix_pathinfo=1 时会有安全隐患。比如网站中有http://xx.com/a.jpg这样一个文件,那么构造http://xx.com/a.jpg/foo.php可以查看这个文件的二进制内容,这意味着可以构造一个实际是php代码的图片,去执行一些用户自定义的操作。具体可以参考:http://www.laruence.com/2010/05/20/1495.html

  2. 位置:/etc/php5/fpm/pool.d/www.conf

    操作:将listen = 127.0.0.1:9000更改成listen = /var/run/php5-fpm.sock

    说明:新版本中默认就是listen = /var/run/php5-fpm.sock,所以那些不是这个值的情况下修改一下…

5.接近完成,测试一下

在html的目录下,创建一个info.php.写入:

1
2
<?php
phpinfo();

顺便一下nginx

sudo service nginx restart

现在在浏览器中键入 your.domain.com/info.php

看见phpinfo了!完成 : D