Nginx配置文件的名称和位置(等同于htaccess)是什么?


30

关于如何编写Nginx重写规则以模仿Apache的.htaccess文件的教程很多,但我不能自信地说我知道这个所谓的Nginx配置文件的名称或位置实际上是什么。我专门在寻找Nginx配置文件,该文件可让您编写服务器路径和PHP指令。我使用Ubuntu 12 Linux和Codeigniter作为我的PHP框架。

到目前为止,这是我所知道的:

  1. 此文件:/etc/nginx/nginx.conf尽管名称很诱人,但显然不是服务器指令的位置。
  2. 这个文件:/etc/nginx/sites-available/default似乎是我所需要的(我能够生成特定于我的应用程序的php错误),但是我无法正确获取Codeigniter特定的路径路由。首先,这是每个人都在谈论的“ config”文件/.htaccess吗?

您的问题不是PHP 语言(即用PHP 编程),而是特定服务器上的PHP 配置,这说明了完全有效的关闭投票。我无法评论您文章的后半部分,因为它看起来非常主观且有偏见。
尼克

1
您可以找到nginx config所在的位置,nginx -V并可以在手册中找到它man nginx。该-V选项记录为“ -V打印nginx版本,编译器版本和配置脚本参数”。如果nginx不在您的路径中,请使用which nginx它将完整路径返回到nginx$(which nginx) -V
bucabay

Answers:


28

我在开发服务器上将PHP与nginx结合使用,配置如下:

  1. /etc/nginx/nginx.conf我补充说:include /etc/nginx/sites-enabled/*;在最后}

  2. 运行以下命令来创建站点配置:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. 编辑站点配置,一些可能的配置(这是我在设置中所指的):http : //kbeezie.com/view/nginx-configuration-examples/

  4. 链接到可用站点以启用它

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. 请记住,实际上您实际上可以在配置中的任何位置包含文件,当您要将类似的配置放在一起时,这使得创建多个站点变得容易。

是的,.htaccess可与server{}nginx中的块进行比较,但它们也有很大不同。nginx解析配置的方法要轻得多,并且不会扫描站点目录进行其他配置,只有nginx.conf可以看到任何内容。


-@ Andrew非常感谢您提供有用的信息!默认情况下,我的/etc/nginx/nginx.conf文件已经include /etc/nginx/sites-enabled/*;在最后了。看来这两个文件在我的服务器上正在互相通信,现在我正在处理特定于Codeigniter的问题。您在使用codeigniter吗?我需要处理一些路径时髦问题
蒂姆·彼得森(

我使用自己的框架,该框架与CodeIgniter十分相似(尽管更为原始)。目前,我正在尝试将我的mod_rewrite regexp规则转换为nginx的HttpRewrite模块。我的第一个主要突破是克服了我错误地配置root参数后nginx显示的403/404错误。如果您需要任何启发,请随时查看我的问题。
abestic9

感谢您提出问题的提示。我想我现在已经了解了更多,感谢您使我走上了正轨……
蒂姆·彼得森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.