























这是一个创建于 4352 天前的主题,其中的信息可能已经有所发展或是发生改变。
接手了一个老项目用perl写的,修改tmpl模版文件在页面上能马上显示出变化,但是修改所有的pl或pm文件都不起作用,甚至把其他文件夹都改名了,只要css和template还在就没影响。
初步推断应该是打包过的,但是没找到打包后的代码和文件,也没找到相关的脚本或配置文件用于打包。目录里只有一个build.yml,不过貌似是安装第三方包用的。
有人遇到过这种状况吗
1 11138 2014 年 7 月 16 日这个项目是什么应用?web吗?那可能要重启一下相关的perl进程(fastcgi)。 |
2 tychio 2014 年 7 月 16 日@11138 是web,在virtualbox中,连virtualbox都重启了也没用。有2个服务器同时用,apache+mod_perl以及nginx+fastcgi。restart之后都还是没变化。 |
3 11138 2014 年 7 月 16 日那你看看apache和nginx的配置文件,看看pl或pm实际文件的位置是不是你所更改文件的位置。 “初步推断应该是打包过的”这是什么意思?例如看fastcgi的配置,它启动了哪些pl文件是很明确的啊,如果查看这些pl文件是源代码那就一定可以修改,如果是二进制文件那就是经过了加密那就麻烦些。 |
4 tychio 2014 年 7 月 16 日@11138 fastcgi.conf里面是一行行这样的东西,看不出是启动了哪些pl文件 fastcgi_param QUERY_STRING $query_string; |
5 11138 2014 年 7 月 16 日nginx+fastcgi 这个组合的话, 肯定还有一个独立启动pl的脚本(FastCGI服务器),而 nginx.conf 中的 fastcgi_pass 会指定 fastcgi 的主机和端口或者unix sock文件。 |
6 tychio 2014 年 7 月 16 日@11138 多谢你啊,但我还是没找到。在项目平级的app-modperl2-i686-el6文件夹有找到一个文件里写的fastcgi_pass,但是指向的sock文件并不存在,而且把这个文件夹整个改名了,重启服务器也没任何影响。还有个ltapp-nginx-i686-el6文件夹中只有一个sbin文件夹,里面有名为nginx的可执行文件,大小3M左右,但是同样改名后重启服务器没影响。 实在是找不到代码在哪,请问nginx的配置是全局的吗?会不会其他地方还有一份代码,也就是说有这种可能吗,我在A份代码中启了nginx,但nginx其实用的是B份代码? |
7 11138 2014 年 7 月 16 日你的是什么系统?如果是linux可以用“ps -ef”查一下当前系统的所有进程。FastCGI方式启动的perl进程是常驻内存的,进程里能看到pl文件的实际位置。 nginx启动的时候可以指定 nginx.conf 的位置,或者在默认的conf目录下面,这个配置文件是全局唯一的,但配置文件里也可以包含其它配置文件(这个比较容易找到了)。 |
8 tychio 2014 年 7 月 16 日@11138 哈找到conf了,里面有这么一行 |
9 11138 2014 年 7 月 16 日看看 upstream 的定义应该有 modperl 吧。 |
11 11138 2014 年 7 月 16 日那你查一下 12001 这个端口是哪个进程启动的啊,一步步查一下。 |
12 tychio 2014 年 7 月 16 日@11138 12001是apache的httpd,还有个8081是nginx,就是上面说到的sbin里的那个执行文件。这个项目是两个同时用的。从conf找进去似乎就是指向到看起来的那个文件夹了,但是修改后重启还是没用,把用来返回template的那句注释掉都没影响。 |
13 11138 2014 年 7 月 16 日还有 apache 的配置文件里 ModPerl::Registry 配置信息看过了吗? |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。