Mac下使用MAMP配置Nginx

之前一直是使用MAMP作为Mac开发PHP的开发环境,也是一直用的是Apache,最近想换为Nginx,但是折腾了好久!以下为踩坑记录.如需看解决办法,请直接滑到最下方


首先我想的是将Apache关掉,打开Nginx不就完工了

image

然后刷新网页,哈哈,成功打开首页,正当我觉得这就完事了,点击了一下其他链接
image

WTF这是什么鬼
image

经查资料得知:原网站环境为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,一找,果然在这,把规则粘贴进去,高高兴兴打开网站刷新

image

为啥还是404?????
继续找吧!我想MAMP这么高级的集成环境,应该不会让用户去目录里找配置文件吧,在软件中翻了一下,发现这有俩框
image

粘贴规则进去,刷新,还是404
因为我使用的是TP5框架,索性去官网找找,在官网中找到这样一段代码

location / { // …..省略部分代码
   if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=/$1  last;
   break;
    }
 }

image

怎么和我转换出来的不一样???好像发现了问题所在,哗哗的将这段代码复制带nginx.conf中,跑起来,尼玛,为啥又是404
看来搜索引擎不靠谱,这次直接去了MAMP官网,看到一段话
image

尼玛,原来上面那个路径根本就不对啊,网友坑啊
然后将TP5官网的规则复制进这个目录下的nginx.conf里面
一刷新,卧槽,还是404,为毛为毛,官网明明说的这个路径啊


多次尝试无果,静下心来把官网的文档重头看了一遍,文档开头这样写道

image

image

image

image

然后将代码复制到这个位置,然后重启Nginx
image

成功了,成功了,成功了,所以啊,有时候还是要相信这些环境肯定会给你提供简单办法!自己非得2B一样到处去改!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。