在Debian系统下配置LNMP的教程
LNMP环境的配置是需要让我们的主机支持Nginx、MySQL、PHP、phpMyAdmin,这样配置好之后就可以直接使用此环境,并在上面运行网站了,下面我来配置方法。
我们先来看官方说明
LNMP一键安装包是一个用LinuxShell编写的可以为CentOS/RadHat、Debian/UbuntuVPS(VDS)或独立主机安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)生产环境的Shell程序
1,安装MySQL
执行命令:
apt-getinstall-ymysql-servermysql-client
即可安装MySQL,安装过程中会询问root密码,键入你需要的密码之后回车即可。
安装完成后,执行如下命令进行一步安全设置:
mysql_secure_installation
按照提示进行,过程中会询问是否更改root密码,是否移除匿名用户,是否禁止root远程登录等。
2,安装PHP
执行命令:
apt-getinstallphp5-fpmphp5-gdphp5-mysqlphp5-memcachephp5-curl
上面的命令安装了php5-memcache的扩展,于是继续安装Memcached。
apt-getinstallmemcached
安装完毕之后,使用php5-fpm-v查看一下PHP的版本:
root@ztbox:~#php5-fpm-v
PHP5.4.16-1~dotdeb.1(fpm-fcgi)(built:Jun 8201322:20:42)
Copyright(c)1997-2013ThePHPGroup
ZendEnginev2.4.0,Copyright(c)1998-2013ZendTechnologies
3,安装Nginx
这里我直接安装了Nginx的全部扩展功能(nginx-full),以应对以后可能出现的功能性增强。
apt-getinstall-ynginx-full
然后启动Nginx:
servicenginxstart
访问结果如上图,接下来配置Nginx。
vim/etc/nginx/sites-available/default
……
location~.php${
fastcgi_split_path_info^(.+.php)(/.+)$;
# #NOTE:Youshouldhave"cgi.fix_pathinfo=0;"inphp.ini
#
# #Withphp5-cgialone:
# fastcgi_pass127.0.0.1:9000;
# #Withphp5-fpm:
fastcgi_passunix:/var/run/php5-fpm.sock;
fastcgi_indexindex.php;
includefastcgi_params;
}
……
修改保存之后重启Nginx:
servicenginxrestart
接下来我们新建一个phpinfo,查看php的详细信息:
vim/usr/share/nginx/html/phpinfo.php <?phpphpinfo();?>
保存之后访问http://ip/phpinfo.php,如果出现phpinfo页面,则大功告成。
如何新建站点
和军哥的一键包不同,此方法所安装的LNMP需要手动添加站点配置文件。
cd/etc/nginx/conf.d
进入配置文件目录,新建一个站点配置文件,比如
videarroy.com.conf server{ listen80; #ipv6 #listen[::]:80default_server; root/usr/share/nginx/html/dearroy.com; #默认首页文件名 indexindex.phpindex.htmlindex.htm; #绑定域名 server_namelocalhost; #伪静态规则 includewordpress.conf; location/{ try_files$uri$uri//index.html; } #定义错误页面 #error_page404/404.html; location~.php${ fastcgi_split_path_info^(.+.php)(/.+)$; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; includefastcgi_params; } #PHP }
保存之后重启Nginx,添加及绑定网站即完成。
最后,附两个最常用的程序Nginx伪静态:
WordPress:
location/{ if(-f$request_filename/index.html){ rewrite(.*)$1/index.htmlbreak; } if(-f$request_filename/index.php){ rewrite(.*)$1/index.php; } if(!-f$request_filename){ rewrite(.*)/index.php; } }
DiscuzX:
rewrite^([^.]*)/topic-(.+).html$$1/portal.php?mod=topic&topic=$2last; rewrite^([^.]*)/article-([0-9]+)-([0-9]+).html$$1/portal.php?mod=view&aid=$2&page=$3last; rewrite^([^.]*)/forum-(w+)-([0-9]+).html$$1/forum.php?mod=forumdisplay&fid=$2&page=$3last; rewrite^([^.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$$1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3last; rewrite^([^.]*)/group-([0-9]+)-([0-9]+).html$$1/forum.php?mod=group&fid=$2&page=$3last; rewrite^([^.]*)/space-(username|uid)-(.+).html$$1/home.php?mod=space&$2=$3last; rewrite^([^.]*)/([a-z]+)-(.+).html$$1/$2.php?rewrite=$3last; if(!-e$request_filename){ return404;