之前一直是使用MAMP作为Mac开发PHP的开发环境,也是一直用的是Apache,最近想换为Nginx,但是折腾了好久!以下为踩坑记录.如需看解决办法,请直接滑到最下方
首先我想的是将Apache关掉,打开Nginx不就完工了
然后刷新网页,哈哈,成功打开首页,正当我觉得这就完事了,点击了一下其他链接
WTF这是什么鬼
经查资料得知:原网站环境为wamp使用了伪静态,伪静态规则写在网站根目录的.htaccess文件中,Apache下默认识别此文件内容,而Nginx服务器不识别.htaccess文件,导致伪静态规则无效,自然无法解析url地址,导致404错误(文件不存在)
开始找解决办法
然后开始搜索解决办法,网上有说把.htaccess
转成Nginx
规则的,我找到项目目录下的.htaccess
文件,在网上找了个Apache转Nginx的网站,粘贴进去获得如下代码
if (!-d $request_filename){
set $rule_0 1$rule_0;
}
if (!-f $request_filename){
set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
setenv PATH_INFO:$1;
rewrite ^/(.*)$ /index.php last;
}
然后开始找nginx.conf
文件
网上有说路径在/Applications/MAMP/conf/nginx/nginx.conf
,一找,果然在这,把规则粘贴进去,高高兴兴打开网站刷新
为啥还是404?????
继续找吧!我想MAMP这么高级的集成环境,应该不会让用户去目录里找配置文件吧,在软件中翻了一下,发现这有俩框
粘贴规则进去,刷新,还是404
因为我使用的是TP5框架,索性去官网找找,在官网中找到这样一段代码
location / { // …..省略部分代码
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
怎么和我转换出来的不一样???好像发现了问题所在,哗哗的将这段代码复制带
nginx.conf
中,跑起来,尼玛,为啥又是404看来搜索引擎不靠谱,这次直接去了MAMP官网,看到一段话
尼玛,原来上面那个路径根本就不对啊,网友坑啊
然后将TP5官网的规则复制进这个目录下的
nginx.conf
里面一刷新,卧槽,还是404,为毛为毛,官网明明说的这个路径啊
多次尝试无果,静下心来把官网的文档重头看了一遍,文档开头这样写道
然后将代码复制到这个位置,然后重启
Nginx