在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 相关文章推荐
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
Apr 25 PHP
php array_intersect比array_diff快(附详细的使用说明)
Jul 03 PHP
CodeIgniter模板引擎使用实例
Jul 15 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
Symfony控制层深入详解
Mar 17 PHP
CodeIgniter生成静态页的方法
May 17 PHP
php PDO异常处理详解
Nov 20 PHP
PHP命令Command模式用法实例分析
Aug 08 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 PHP
PHP数组遍历的几种常见方式总结
Feb 15 PHP
laravel添加前台跳转成功页面示例
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扩展ZF――Validate扩展
2008/01/10 PHP
解析php如何将日志写进syslog
2013/06/28 PHP
php获取bing每日壁纸示例分享
2014/02/25 PHP
一个显示效果非常不错的PHP错误、异常处理类
2014/03/21 PHP
PHP获取photoshop写入图片文字信息的方法
2015/03/31 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Linux上使用Python统计每天的键盘输入次数
2019/04/17 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
Python实现像awk一样分割字符串
2020/09/15 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
2020/11/15 Python
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
什么是设计模式
2012/06/17 面试题
物理研修随笔感言
2014/02/14 职场文书
2014年纳税评估工作总结
2014/12/23 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
入党转正申请书范文
2019/05/20 职场文书
HttpClient实现表单提交上传文件
2022/08/14 Java/Android