在Debian系统下配置LNMP的教程


Posted in PHP onJuly 09, 2015

LNMP环境的配置是需要让我们的主机支持Nginx、MySQL、PHP、phpMyAdmin,这样配置好之后就可以直接使用此环境,并在上面运行网站了,下面我来配置方法。

我们先来看官方说明

LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat、Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)生产环境的Shell程序

1,安装MySQL
执行命令:

apt-get install -y mysql-server mysql-client

即可安装MySQL,安装过程中会询问 root密码 ,键入你需要的密码之后回车即可。

安装完成后,执行如下命令进行一步安全设置:

mysql_secure_installation

按照提示进行,过程中会询问是否更改 root密码,是否移除匿名用户,是否禁止root远程登录等。
2,安装PHP
执行命令:

apt-get install php5-fpm php5-gd php5-mysql php5-memcache php5-curl

上面的命令安装了php5-memcache的扩展,于是继续安装 Memcached 。

apt-get install memcached

安装完毕之后,使用 php5-fpm -v 查看一下PHP的版本:

root@ztbox:~# php5-fpm -v

PHP 5.4.16-1~dotdeb.1 (fpm-fcgi) (built: Jun  8 2013 22:20:42)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

3,安装Nginx

这里我直接安装了Nginx的全部扩展功能(nginx-full),以应对以后可能出现的功能性增强。

apt-get install -y nginx-full

然后启动Nginx:

service nginx start

访问结果如上图,接下来配置Nginx。

vim /etc/nginx/sites-available/default

……
    location ~ .php$ {
        fastcgi_split_path_info ^(.+.php)(/.+)$;
    #    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #    # With php5-cgi alone:
    #   fastcgi_pass 127.0.0.1:9000;
    #    # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
……

修改保存之后重启Nginx:

service nginx restart

接下来我们新建一个phpinfo,查看php的详细信息:

vim /usr/share/nginx/html/phpinfo.php

<?php phpinfo(); ?>

保存之后访问 http://ip/phpinfo.php , 如果出现 phpinfo 页面,则大功告成。

如何新建站点
和军哥的一键包不同,此方法所安装的 LNMP 需要手动添加站点配置文件。

cd /etc/nginx/conf.d

 进入配置文件目录,新建一个站点配置文件,比如

vi dearroy.com.conf


server {
  listen 80;

 #ipv6
  #listen [::]:80 default_server;

  root /usr/share/nginx/html/dearroy.com;

 #默认首页文件名
  index index.php index.html index.htm;

 #绑定域名
  server_name localhost;

 #伪静态规则
 include wordpress.conf;

  location / {
    try_files $uri $uri/ /index.html;    
  }
 #定义错误页面
  #error_page 404 /404.html; 

  location ~ .php$ {
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    fastcgi_pass 127.0.0.1:9000;
     fastcgi_index index.php;
     include fastcgi_params;
   }
   #PHP
}

保存之后重启Nginx,添加及绑定网站即完成。

最后,附两个最常用的程序Nginx伪静态:

WordPress:
 

location / {

if (-f $request_filename/index.html){

                rewrite (.*) $1/index.html break;

        }

if (-f $request_filename/index.php){

                rewrite (.*) $1/index.php;

        }

if (!-f $request_filename){

                rewrite (.*) /index.php;

        }

}

Discuz X:

rewrite ^([^.]*)/topic-(.+).html$ $1/portal.php?mod=topic&topic=$2 last;

rewrite ^([^.]*)/article-([0-9]+)-([0-9]+).html$ $1/portal.php?mod=view&aid=$2&page=$3 last;

rewrite ^([^.]*)/forum-(w+)-([0-9]+).html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;

rewrite ^([^.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;

rewrite ^([^.]*)/group-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=group&fid=$2&page=$3 last;

rewrite ^([^.]*)/space-(username|uid)-(.+).html$ $1/home.php?mod=space&$2=$3 last;

rewrite ^([^.]*)/([a-z]+)-(.+).html$ $1/$2.php?rewrite=$3 last;

if (!-e $request_filename) {

        return 404;

PHP 相关文章推荐
数据库的日期格式转换
Oct 09 PHP
一个php导出oracle库的php代码
Apr 20 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
PHP date函数常用时间处理方法
May 11 PHP
PHP的中使用非缓冲模式查询数据库的方法
Feb 05 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
Apr 09 PHP
php框架CodeIgniter主从数据库配置方法分析
May 25 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
PHP如何通过带尾指针的链表实现'队列'
Oct 22 PHP
PHP+Mysql基于事务处理实现转账功能的方法
Jul 08 #PHP
php将html转成wml的WAP标记语言实例
Jul 08 #PHP
php实现数组中索引关联数据转换成json对象的方法
Jul 08 #PHP
PHP使用pear自带的mail类库发邮件的方法
Jul 08 #PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
Jul 08 #PHP
PHP实现多文件上传的方法
Jul 08 #PHP
PHP实现图片自动清理的方法
Jul 08 #PHP
You might like
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
table标签的结构与合并单元格的实现方法
2013/07/24 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
YUI Compressor压缩JavaScript原理及微优化
2013/01/07 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
跟我学习javascript的最新标准ES6
2015/11/20 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
2017/02/20 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
微信小程序 自定义消息提示框
2017/08/06 Javascript
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
Python新手实现2048小游戏
2015/03/31 Python
用Python脚本来删除指定容量以上的文件的教程
2015/05/04 Python
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
django实现用户登陆功能详解
2017/12/11 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
几个数据库方面的面试题
2016/07/01 面试题
岗位职责定义及内容
2013/11/08 职场文书
搬家公司的创业计划书
2014/01/01 职场文书
马智宇结婚主持词
2014/04/01 职场文书
婚庆答谢词
2015/01/04 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
施工安全保证书
2015/05/09 职场文书