1
11138 2014-07-16 10:50:41 +08:00
这个项目是什么应用?web吗?那可能要重启一下相关的perl进程(fastcgi)。
|
2
tychio OP @11138 是web,在virtualbox中,连virtualbox都重启了也没用。有2个服务器同时用,apache+mod_perl以及nginx+fastcgi。restart之后都还是没变化。
|
3
11138 2014-07-16 12:00:34 +08:00 1
那你看看apache和nginx的配置文件,看看pl或pm实际文件的位置是不是你所更改文件的位置。
“初步推断应该是打包过的”这是什么意思?例如看fastcgi的配置,它启动了哪些pl文件是很明确的啊,如果查看这些pl文件是源代码那就一定可以修改,如果是二进制文件那就是经过了加密那就麻烦些。 |
4
tychio OP @11138 fastcgi.conf里面是一行行这样的东西,看不出是启动了哪些pl文件
fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; |
5
11138 2014-07-16 14:16:09 +08:00
nginx+fastcgi 这个组合的话, 肯定还有一个独立启动pl的脚本(FastCGI服务器),而 nginx.conf 中的 fastcgi_pass 会指定 fastcgi 的主机和端口或者unix sock文件。
|
6
tychio OP @11138 多谢你啊,但我还是没找到。在项目平级的app-modperl2-i686-el6文件夹有找到一个文件里写的fastcgi_pass,但是指向的sock文件并不存在,而且把这个文件夹整个改名了,重启服务器也没任何影响。还有个ltapp-nginx-i686-el6文件夹中只有一个sbin文件夹,里面有名为nginx的可执行文件,大小3M左右,但是同样改名后重启服务器没影响。
实在是找不到代码在哪,请问nginx的配置是全局的吗?会不会其他地方还有一份代码,也就是说有这种可能吗,我在A份代码中启了nginx,但nginx其实用的是B份代码? |
7
11138 2014-07-16 15:47:03 +08:00
你的是什么系统?如果是linux可以用“ps -ef”查一下当前系统的所有进程。FastCGI方式启动的perl进程是常驻内存的,进程里能看到pl文件的实际位置。
nginx启动的时候可以指定 nginx.conf 的位置,或者在默认的conf目录下面,这个配置文件是全局唯一的,但配置文件里也可以包含其它配置文件(这个比较容易找到了)。 |
8
tychio OP @11138 哈找到conf了,里面有这么一行
location ~ ^/(home|api|doc) { proxy_pass http://modperl; ... } 这个http://modperl代表的是什么,好像直接打不开 |
9
11138 2014-07-16 16:14:03 +08:00
看看 upstream 的定义应该有 modperl 吧。
|
10
tychio OP @11138 哦,看来这不是文件夹的路径,只是url,modperl 对应127.0.0.1:12001,还是不知道这个url调用的是哪里的文件
|
11
11138 2014-07-16 16:35:13 +08:00
那你查一下 12001 这个端口是哪个进程启动的啊,一步步查一下。
|
12
tychio OP @11138 12001是apache的httpd,还有个8081是nginx,就是上面说到的sbin里的那个执行文件。这个项目是两个同时用的。从conf找进去似乎就是指向到看起来的那个文件夹了,但是修改后重启还是没用,把用来返回template的那句注释掉都没影响。
|
13
11138 2014-07-16 17:16:20 +08:00 1
还有 apache 的配置文件里 ModPerl::Registry 配置信息看过了吗?
|