在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 相关文章推荐
php生成随机数或者字符串的代码
Sep 05 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
php使用filter过滤器验证邮箱 ipv6地址 url验证
Dec 25 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
PHP输入输出流学习笔记
May 12 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
Dec 31 PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 PHP
php高清晰度无损图片压缩功能的实现代码
Dec 09 PHP
PHP html_entity_decode()函数讲解
Feb 25 PHP
php session_decode函数用法讲解
May 26 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
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
php 设计模式之 工厂模式
2008/12/19 PHP
php adodb分页实现代码
2009/03/19 PHP
php 读取shell管道传输过来的内容
2010/03/01 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
php生成扇形比例图实例
2013/11/06 PHP
Javascript MD4
2006/12/20 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
layer 刷新某个页面的实现方法
2019/09/05 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
2019/12/21 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
python如何实现异步调用函数执行
2019/07/08 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
2019/08/17 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
Python如何读取文件中图片格式
2020/01/13 Python
HTML5的postMessage的使用手册
2018/12/19 HTML / CSS
《陈涉世家》教学反思
2014/04/12 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
文艺晚会开场白
2015/05/29 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
企业法律事务工作总结
2015/08/11 职场文书
vue判断按钮是否可以点击
2022/04/09 Vue.js