WNMP——PHP集成环境快速搭建(六)
作者:admin 发布于:2013-12-6 10:45 Friday 分类:网络转载
一、安装WNMP
很久没折腾过windows本地php环境了,以前都是用apache,当时在本机win系统上搭建php环境用的WampServer:
但是现在的环境基本都是Nginx了,现在手里除了一个虚拟主机无奈用的apache,其他几个vps基本都是自己装的LNMP。最近在看php框
架想本地搭建个环境,准备用Nginx,随便搜了一圈试用了几个,感觉用下来“Windows, Nginx, MariaDB &
PHP(Wnmp)”这个比较给力,完全可以说秒杀其他:
1.php版本新,貌似新php源码很多不支持php5.3以前版本了。
2.有图形界面,使用非常方便。
3.最近一次更新在半个月前。
作者网站和软件介绍:
https://www.x64architecture.com/
http://wnmp.x64architecture.com/
下载地址:
https://bitbucket.org/x64architecture/windows-nginx-mysql-php/downloads
http://sourceforge.net/projects/wnmp-env/
最新文件版本:
Wnmp 2.0.2.9.exe
组件版本:
Nginx 1.5.6
MariaDB 5.5.33a
PHP 5.4.20 (Non Thread Safe + FastCGI)
phpMyAdmin 4.0.7
安装过程略。
我选的安装位置是C:\Wnmp,安装结束后运行C:\Wnmp\Wnmp.exe打开控制台:
单击Start all启动所有服务。
如果启动后Nginx状态又变为X则单击Nginx右边的Logs-error.log,查看错误日志,一般是端口80或 443被占用,用netstat -aon|findstr “80″或netstat -aon|findstr “443″查看占用端口程序的pid,然后打开任务管理器,查看-选择列-勾选PID,找到占用端口程序后,到该程序设置里面修改端口或者直接结束进程。
现在可以打开默认网站http://localhost了,文件位于:C:\Wnmp\html
数据库root用户默认密码“password”,修改密码方法:
cd C:\Wnmp\mariadb\bin
mysqladmin -u root -p password newpassword
#然后输入原来密码password即可修改root密码
二、Nginx多站点配置:
在C:\Wnmp\conf文件夹下新建两个文件夹:rewrite和vhost,分别放每个站点的rewrite规则和Nginx站点配置文件。
如现在要添加一个网站使用test.local和www.test.local域名及C:\Wnmp\html\wnmp.local文件夹,并且 子域名(除www)自动关联子文件夹,如a.test.local对应C:\Wnmp\html\wnmp.local\a文件夹。
1.域名解析,由于是本地测试,直接修改hosts,添加下面三行。
127.0.0.1 test.local
127.0.0.1 www.test.local
127.0.0.1 a.test.local
2.新建文件夹和文件,建立C:\Wnmp\html\wnmp.local和C:\Wnmp\html\wnmp.local\a两个文件夹,分别新建内容为test.local和a.test.local的index.htm首页文件进行测试。
3.修改nginx全局配置文件C:\Wnmp\conf\nginx.conf,在# http server下面加一行:
- include vhost/*.conf;
4.在rewrite文件夹下新建wnmp.local.rewrite.conf文件。内容可以为空或者nginx的rewrite规则,如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; } }
5.在vhost文件夹下新建wnmp.local.conf,参考内容如下:
server { listen 80; server_name wnmp.local www.wnmp.local; index index.html index.htm index.php; access_log off; error_log nul; set $subdomain ''; if ( $host ~* "(?:(\w+\.){0,})(\b(?!www\b)\w+)\.\b(?!(com|org|gov|net|cn)\b)\w+\.[a-zA-Z]+" ) { set $subdomain "/$2"; } root html/wnmp.local$subdomain; include rewrite/wnmp.local.rewrite.conf; location ~ \.php$ { root html/wnmp.local$subdomain; try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
有点疑问就是server_name是否要改成server_name wnmp.local www.wnmp.local *.wnmp.local;
因为测试貌似没啥问题所以没改。。。
子域名部分用了http://amysql.com/AMH.htm中的代码,不需要子域名绑定注释掉if ( $host ~* “(?:(\w+\.){0,})(\b(?!www\b)\w+)\.\b(?!(com|org|gov|net|cn)\b)\w+\.[a-zA-Z]+” ) { set $subdomain “/$2″; }一行即可。
6.重启Nginx,查看是否报错。
现在可以打开http://localhost,http://www.test.local,http://test.local,http://a.test.local测试了。
转载于:http://nufeng.net/build-wnmp-multi-site-environments/
标签: WNMP