在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版(2)
Oct 09 PHP
PHP-MySQL教程归纳总结
Jun 07 PHP
php程序之die调试法 快速解决错误
Sep 17 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
php短域名转换为实际域名函数
Jan 17 PHP
PHP中使用crypt()实现用户身份验证的代码
Sep 05 PHP
深入Memcache的Session数据的多服务器共享详解
Jun 13 PHP
PHP获取MAC地址的具体实例
Dec 13 PHP
如何使用PHP对网站验证码进行破解
Sep 17 PHP
php使用curl代理实现抓取数据的方法
Feb 03 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
PHP中的访问修饰符简单比较
Feb 02 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
百度实时推送api接口应用示例
2014/10/21 PHP
AJAX的使用方法详解
2017/04/29 PHP
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
JQuery datepicker 使用方法
2011/05/20 Javascript
基于js disabled=&quot;false&quot;不起作用的解决办法
2013/06/26 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
jQuery链使用指南
2015/01/20 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
Javascript中弹窗confirm与prompt的区别
2018/10/26 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
js实现星星打分效果
2020/07/05 Javascript
Vue清除定时器setInterval优化方案分享
2020/07/21 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
Python基于plotly模块实现的画图操作示例
2019/01/23 Python
详解python中的模块及包导入
2019/08/30 Python
欧舒丹比利时官网:L’OCCITANE比利时
2017/04/25 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
服务标语口号
2014/07/01 职场文书
少先队活动总结
2014/08/29 职场文书
大学生党员个人总结
2015/02/13 职场文书
百万英镑观后感
2015/06/09 职场文书
房产证明范本
2015/06/19 职场文书
2019数学教师下学期工作总结
2019/06/27 职场文书
承诺书应该怎么写?
2019/09/10 职场文书