Home >Backend Development >PHP Tutorial >nginx deploys things made by thinkphp, configures Pathinfo mode, and finally configures it.

nginx deploys things made by thinkphp, configures Pathinfo mode, and finally configures it.

WBOY
WBOYOriginal
2016-07-29 09:13:38885browse

  用thinkphp做了一个网站,部署到ubuntu上的时候需要,服务器用的是nginx,本身不支持pathinfo模式,需要修改配置文件,使其能够用pathinfo。

  我用的是虚拟主机的方式。之前配置了好久,总是出现各种各样的问题,最后实在不行,直接用rewrite模式,配置还比较简单。后来不知道改了什么,rewrite也不能用了,这回打算把

pathinfo 配出来, 所以查了各种资料,一点一点的改。终于改成了。

  发现很多网上的东西,其实和自己用的经常会有一点差别,需要根据自己的东西进行修改才行

<span>server {
        listen   </span>8082<span>;

        root </span>/usr/share/nginx/www/<span>ssdf;
        index index.php index.html index.htm;

        error_page </span>404 /404<span>.html;                            //404和后面的“/” 需要有一个空格隔开

        </span><span>#</span><span> pass the PHP scripts to FastCGI server listening on the php-fpm socket</span>        location /<span> {                                         //这里是rewrite规则,可以单独使用,thinkphp中模式也要改成rewrite,
         </span><span>if</span> (!-e <span>$request_filename</span><span>) {              //之前配置好了,不知道后来改了那不能用了。
           rewrite  ^</span>/(.*)$  /index.php/<span>$1</span><span>   last;
           </span><span>break</span><span>;
            }
        }

        location ~ ^(.</span>+\.php)(.*<span>) {
</span><span>#</span><span>               try_files $uri =404;         这句只是尝试注释掉了,后来也没再尝试不注释能不能用</span><span>#</span><span>               fastcgi_pass 127.0.0.1:9000;       这里一开始写的词句,后来修改成default文件中的下面那一句,这句不知道这两句怎么用</span>                fastcgi_pass unix:/run/php5-<span>fpm.sock;
                fastcgi_index index.php;
</span><span>#</span><span>               <strong>include</strong> fastcgi_params;            这里面fastcgi_params和 fcgi.conf内容是相同的,网上两种命名都有人用</span><span>                <strong>include</strong> fcgi.conf;

                set </span><span>$real_script_name</span><span>$fastcgi_script_name</span><span>;
                set </span><span>$path_info</span><span>""</span><span>;
                </span><span>if</span> (<span>$fastcgi_script_name</span> ~ <span>"</span><span>^(.+?\.php)(/.+)$</span><span>"</span><span>){     //if语句后面一定要有个空格,要和别的区分开,属于语法规定
                        set </span><span>$real_script_name</span><span>$1</span><span>;
                        set </span><span>$path_info</span><span>$2</span><span>;
                }
                fastcgi_param SCRIPT_FILENAME </span><span>$document_root$real_script_name</span><span>;
                fastcgi_param SCRIPT_NAME </span><span>$real_script_name</span><span>;
                fastcgi_param   PATH_INFO </span><span>$path_info</span><span>;
        }


}</span>

以上就介绍了nginx 部署thinkphp 做的东西, 配置 Pathinfo 模式,终于配好了,包括了include方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:CI 框架中 AR 操作Next article:php的整数类型及转换