eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« 稳定的风险 | Blog首页 | DBA警世录:有些习惯DBA需要养成 »

配置Apache2支持FastCGI 升级到MT3.34
modb.pro

看到很多朋友已经将MT升级到了MT3.34,今天也忍不住升级一下。

首先要安装FastCGI支持,从fastcgi网站下载:

[root@eygle tmp]# wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz
--13:41:43-- http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz
=> `mod_fastcgi-2.4.2.tar.gz'
正在解析主机 www.fastcgi.com... 209.212.66.200
Connecting to www.fastcgi.com|209.212.66.200|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:98,295 (96K) [application/x-tar]

100%[======================================================>] 98,295 95.38K/s

13:41:47 (95.19 KB/s) - `mod_fastcgi-2.4.2.tar.gz' saved [98295/98295]

我的Apache用的是2.2.0版本,安装参考INSTALL.AP2文件,遵循如下步骤:

*NIX
====

$ cd
$ cp Makefile.AP2 Makefile
$ make
$ make install

If your Apache2 installation isn't in /usr/local/apache2, then
set the top_dir variable when running make (or edit the
Makefile), e.g.

$ make top_dir=/opt/httpd/2.0.40

Add an entry to httpd.conf like this:

LoadModule fastcgi_module modules/mod_fastcgi.so

可是不幸得是,Make的时候就遇到一堆的错误:

[root@eygle mod_fastcgi-2.4.2]# make top_dir=/opt/httpd-2.2.0/
/opt/httpd-2.2.0/srclib/apr/libtool --silent --mode=compile gcc -g -O2 -pthread -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/opt/httpd-2.2.0//srclib/pcre -I. -I/opt/httpd-2.2.0//os/unix -I/opt/httpd-2.2.0//server/mpm/prefork -I/opt/httpd-2.2.0//modules/http -I/opt/httpd-2.2.0//modules/filters -I/opt/httpd-2.2.0//modules/proxy -I/opt/httpd-2.2.0//include -I/opt/httpd-2.2.0//modules/generators -I/opt/httpd-2.2.0//modules/mappers -I/opt/httpd-2.2.0//modules/database -I/opt/httpd-2.2.0/srclib/apr/include -I/opt/httpd-2.2.0/srclib/apr-util/include -I/opt/httpd-2.2.0//modules/proxy/../generators -I/opt/httpd-2.2.0//modules/ssl -I/opt/httpd-2.2.0//modules/dav/main -prefer-pic -c mod_fastcgi.c && touch mod_fastcgi.slo
mod_fastcgi.c: In function `init_module':
mod_fastcgi.c:270: error: `ap_null_cleanup' undeclared (first use in this function)
mod_fastcgi.c:270: error: (Each undeclared identifier is reported only once
mod_fastcgi.c:270: error: for each function it appears in.)
mod_fastcgi.c: In function `process_headers':
mod_fastcgi.c:725: warning: return makes pointer from integer without a cast
mod_fastcgi.c:729: warning: assignment makes pointer from integer without a cast
mod_fastcgi.c:739: warning: assignment makes pointer from integer without a cast
mod_fastcgi.c:768: warning: initialization makes pointer from integer without a cast
mod_fastcgi.c:838: warning: return makes pointer from integer without a cast
mod_fastcgi.c:842: warning: return makes pointer from integer without a cast
mod_fastcgi.c: In function `set_uid_n_gid':
mod_fastcgi.c:1022: warning: passing arg 1 of `memcpy' makes pointer from integer without a cast
mod_fastcgi.c:1024: warning: assignment makes pointer from integer without a cast
mod_fastcgi.c:1033: warning: assignment makes pointer from integer without a cast
mod_fastcgi.c:1034: warning: assignment makes pointer from integer without a cast
mod_fastcgi.c: In function `do_work':
mod_fastcgi.c:2321: error: `ap_null_cleanup' undeclared (first use in this function)
mod_fastcgi.c: In function `create_fcgi_request':
mod_fastcgi.c:2479: warning: assignment makes pointer from integer without a cast
mod_fastcgi.c:2492: warning: assignment makes pointer from integer without a cast
mod_fastcgi.c: In function `apache_is_scriptaliased':
mod_fastcgi.c:2534: warning: initialization makes pointer from integer without a cast
mod_fastcgi.c: In function `post_process_for_redirects':
mod_fastcgi.c:2559: warning: passing arg 1 of `ap_internal_redirect_handler' makes pointer from integer without a cast
mod_fastcgi.c: In function `check_user_authentication':
mod_fastcgi.c:2682: warning: assignment makes pointer from integer without a cast
mod_fastcgi.c:2700: warning: comparison between pointer and integer
mod_fastcgi.c: In function `check_user_authorization':
mod_fastcgi.c:2749: warning: assignment makes pointer from integer without a cast
mod_fastcgi.c:2765: warning: comparison between pointer and integer
mod_fastcgi.c: In function `check_access':
mod_fastcgi.c:2809: warning: assignment makes pointer from integer without a cast
mod_fastcgi.c:2826: warning: comparison between pointer and integer
make: *** [mod_fastcgi.slo] 错误 1

这个错误通过网上的一个帖子得到了解决,首先创建一个Patch文件:

[root@eygle mod_fastcgi-2.4.2]# vi a

@@ -73,6 +73,36 @@
#define ap_reset_timeout(a)
#define ap_unblock_alarms()

+/* starting with apache 2.2 the backward-compatibility defines for
+ * 1.3 APIs are not available anymore. Define them ourselves here.
+ */
+#ifndef ap_copy_table
+
+#define ap_copy_table apr_table_copy
+#define ap_cpystrn apr_cpystrn
@@ -73,6 +73,36 @@
#define ap_reset_timeout(a)
#define ap_unblock_alarms()

+/* starting with apache 2.2 the backward-compatibility defines for
+ * 1.3 APIs are not available anymore. Define them ourselves here.
+ */
+#ifndef ap_copy_table
+
+#define ap_copy_table apr_table_copy
+#define ap_cpystrn apr_cpystrn
+#define ap_destroy_pool apr_pool_destroy
+#define ap_isspace apr_isspace
+#define ap_make_array apr_array_make
+#define ap_make_table apr_table_make
+#define ap_null_cleanup apr_pool_cleanup_null
+#define ap_palloc apr_palloc
+#define ap_pcalloc apr_pcalloc
+#define ap_psprintf apr_psprintf
+#define ap_pstrcat apr_pstrcat
+#define ap_pstrdup apr_pstrdup
+#define ap_pstrndup apr_pstrndup
+#define ap_push_array apr_array_push
+#define ap_register_cleanup apr_pool_cleanup_register
+#define ap_snprintf apr_snprintf
+#define ap_table_add apr_table_add
+#define ap_table_do apr_table_do
"a" [新] 38L, 1207C 已写入

然后应用这个patch文件:

[root@eygle mod_fastcgi-2.4.2]# patch -fcgi.h < a
File to patch: fcgi.h
patching file fcgi.h

再次编译错误得到解决:

[root@eygle mod_fastcgi-2.4.2]# make
/opt/httpd-2.2.0/srclib/apr/libtool --silent --mode=compile gcc -g -O2 -pthread -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/opt/httpd-2.2.0/srclib/pcre -I. -I/opt/httpd-2.2.0/os/unix -I/opt/httpd-2.2.0/server/mpm/prefork -I/opt/httpd-2.2.0/modules/http -I/opt/httpd-2.2.0/modules/filters -I/opt/httpd-2.2.0/modules/proxy -I/opt/httpd-2.2.0/include -I/opt/httpd-2.2.0/modules/generators -I/opt/httpd-2.2.0/modules/mappers -I/opt/httpd-2.2.0/modules/database -I/opt/httpd-2.2.0/srclib/apr/include -I/opt/httpd-2.2.0/srclib/apr-util/include -I/opt/httpd-2.2.0/modules/proxy/../generators -I/opt/httpd-2.2.0/modules/ssl -I/opt/httpd-2.2.0/modules/dav/main -prefer-pic -c mod_fastcgi.c && touch mod_fastcgi.slo
/opt/httpd-2.2.0/srclib/apr/libtool --silent --mode=compile gcc -g -O2 -pthread -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/opt/httpd-2.2.0/srclib/pcre -I. -I/opt/httpd-2.2.0/os/unix -I/opt/httpd-2.2.0/server/mpm/prefork -I/opt/httpd-2.2.0/modules/http -I/opt/httpd-2.2.0/modules/filters -I/opt/httpd-2.2.0/modules/proxy -I/opt/httpd-2.2.0/include -I/opt/httpd-2.2.0/modules/generators -I/opt/httpd-2.2.0/modules/mappers -I/opt/httpd-2.2.0/modules/database -I/opt/httpd-2.2.0/srclib/apr/include -I/opt/httpd-2.2.0/srclib/apr-util/include -I/opt/httpd-2.2.0/modules/proxy/../generators -I/opt/httpd-2.2.0/modules/ssl -I/opt/httpd-2.2.0/modules/dav/main -prefer-pic -c fcgi_pm.c && touch fcgi_pm.slo
/opt/httpd-2.2.0/srclib/apr/libtool --silent --mode=compile gcc -g -O2 -pthread -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/opt/httpd-2.2.0/srclib/pcre -I. -I/opt/httpd-2.2.0/os/unix -I/opt/httpd-2.2.0/server/mpm/prefork -I/opt/httpd-2.2.0/modules/http -I/opt/httpd-2.2.0/modules/filters -I/opt/httpd-2.2.0/modules/proxy -I/opt/httpd-2.2.0/include -I/opt/httpd-2.2.0/modules/generators -I/opt/httpd-2.2.0/modules/mappers -I/opt/httpd-2.2.0/modules/database -I/opt/httpd-2.2.0/srclib/apr/include -I/opt/httpd-2.2.0/srclib/apr-util/include -I/opt/httpd-2.2.0/modules/proxy/../generators -I/opt/httpd-2.2.0/modules/ssl -I/opt/httpd-2.2.0/modules/dav/main -prefer-pic -c fcgi_util.c && touch fcgi_util.slo
/opt/httpd-2.2.0/srclib/apr/libtool --silent --mode=compile gcc -g -O2 -pthread -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/opt/httpd-2.2.0/srclib/pcre -I. -I/opt/httpd-2.2.0/os/unix -I/opt/httpd-2.2.0/server/mpm/prefork -I/opt/httpd-2.2.0/modules/http -I/opt/httpd-2.2.0/modules/filters -I/opt/httpd-2.2.0/modules/proxy -I/opt/httpd-2.2.0/include -I/opt/httpd-2.2.0/modules/generators -I/opt/httpd-2.2.0/modules/mappers -I/opt/httpd-2.2.0/modules/database -I/opt/httpd-2.2.0/srclib/apr/include -I/opt/httpd-2.2.0/srclib/apr-util/include -I/opt/httpd-2.2.0/modules/proxy/../generators -I/opt/httpd-2.2.0/modules/ssl -I/opt/httpd-2.2.0/modules/dav/main -prefer-pic -c fcgi_protocol.c && touch fcgi_protocol.slo
/opt/httpd-2.2.0/srclib/apr/libtool --silent --mode=compile gcc -g -O2 -pthread -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/opt/httpd-2.2.0/srclib/pcre -I. -I/opt/httpd-2.2.0/os/unix -I/opt/httpd-2.2.0/server/mpm/prefork -I/opt/httpd-2.2.0/modules/http -I/opt/httpd-2.2.0/modules/filters -I/opt/httpd-2.2.0/modules/proxy -I/opt/httpd-2.2.0/include -I/opt/httpd-2.2.0/modules/generators -I/opt/httpd-2.2.0/modules/mappers -I/opt/httpd-2.2.0/modules/database -I/opt/httpd-2.2.0/srclib/apr/include -I/opt/httpd-2.2.0/srclib/apr-util/include -I/opt/httpd-2.2.0/modules/proxy/../generators -I/opt/httpd-2.2.0/modules/ssl -I/opt/httpd-2.2.0/modules/dav/main -prefer-pic -c fcgi_buf.c && touch fcgi_buf.slo
/opt/httpd-2.2.0/srclib/apr/libtool --silent --mode=compile gcc -g -O2 -pthread -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/opt/httpd-2.2.0/srclib/pcre -I. -I/opt/httpd-2.2.0/os/unix -I/opt/httpd-2.2.0/server/mpm/prefork -I/opt/httpd-2.2.0/modules/http -I/opt/httpd-2.2.0/modules/filters -I/opt/httpd-2.2.0/modules/proxy -I/opt/httpd-2.2.0/include -I/opt/httpd-2.2.0/modules/generators -I/opt/httpd-2.2.0/modules/mappers -I/opt/httpd-2.2.0/modules/database -I/opt/httpd-2.2.0/srclib/apr/include -I/opt/httpd-2.2.0/srclib/apr-util/include -I/opt/httpd-2.2.0/modules/proxy/../generators -I/opt/httpd-2.2.0/modules/ssl -I/opt/httpd-2.2.0/modules/dav/main -prefer-pic -c fcgi_config.c && touch fcgi_config.slo
/opt/httpd-2.2.0/srclib/apr/libtool --silent --mode=link gcc -g -O2 -pthread -o mod_fastcgi.la -rpath /opt/apache/modules -module -avoid-version mod_fastcgi.lo fcgi_pm.lo fcgi_util.lo fcgi_protocol.lo fcgi_buf.lo fcgi_config.lo
[root@eygle mod_fastcgi-2.4.2]# make install
make[1]: Entering directory `/opt/mod_fastcgi-2.4.2'
/opt/httpd-2.2.0/srclib/apr/libtool --silent --mode=install cp mod_fastcgi.la /opt/apache/modules/
make[1]: Leaving directory `/opt/mod_fastcgi-2.4.2'
make: *** 没有规则可以创建“install”需要的目标“install-modules”。 停止。

之后修改Apache的配置文件,增加一行:

LoadModule fastcgi_module modules/mod_fastcgi.so

再更改mt目录下相应的文件:

mv mt.cgi mt.fcgi
mv mt-comments.cgi mt-comments.fcgi
mv mt-tb.cgi mt-tb.fcgi
mv mt-view.cgi mt-view.fcgi
mv mt-search.cgi mt-search.fcgi

最后更改一下mt-config.cgi文件:
AdminScript mt.fcgi
CommentScript mt-comments.fcgi
TrackbackScript mt-tb.fcgi
SearchScript mt-search.fcgi
ViewScript mt-view.fcgi

现在重起Apache,服务器就应该运行在fastcgi模式下了,可是没那么简单,发现日志里面报错:

[Thu Feb 01 14:55:49 2007] [warn] FastCGI: (dynamic) server "/opt/apache/www.eygle.com/cgi-bin/mt/mt.fpl" restarted (pid 31719)
Can't locate FCGI.pm in @INC (@INC contains: /opt/apache/www.eygle.com/cgi-bin/mt/extlib lib /usr/lib/perl5/5.8.5/i386-linux-thread-multi
/usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4
/usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1

fastcgi不能定位FCGI.pm,原来perl还没装fcgi模块,赶快再装一个:

[root@eygle logs]# cpan
Terminal does not support AddHistory.

cpan shell -- CPAN exploration and modules installation (v1.7601)
ReadLine support available (try 'install Bundle::CPAN')

cpan> d /FCGI/
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
Database was generated on Wed, 17 Jan 2007 23:26:48 GMT
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
ftp://mirrors.hknet.com/CPAN/authors/01mailrc.txt.gz
Going to read /root/.cpan/sources/authors/01mailrc.txt.gz
CPAN: Compress::Zlib loaded ok
Fetching with LWP:
ftp://mirrors.hknet.com/CPAN/modules/02packages.details.txt.gz
Going to read /root/.cpan/sources/modules/02packages.details.txt.gz
Database was generated on Wed, 31 Jan 2007 23:28:14 GMT

There's a new CPAN.pm version (v1.8802) available!
[Current version is v1.7601]
You might want to try
install Bundle::CPAN
reload cpan
without quitting the current session. It should be a seamless upgrade
while we are running...

Fetching with LWP:
ftp://mirrors.hknet.com/CPAN/modules/03modlist.data.gz
Going to read /root/.cpan/sources/modules/03modlist.data.gz
Going to write /root/.cpan/Metadata
Distribution J/JU/JURACH/FCGI-ProcManager-0.17.tar.gz
Distribution P/PE/PEVANS/FCGI-Async-0.07.tar.gz
Distribution S/SK/SKIMO/FCGI-0.67.tar.gz
3 items found

cpan> install S/SK/SKIMO/FCGI-0.67.tar.gz
Running make for S/SK/SKIMO/FCGI-0.67.tar.gz
Fetching with LWP:
ftp://mirrors.hknet.com/CPAN/authors/id/S/SK/SKIMO/FCGI-0.67.tar.gz
CPAN: Digest::MD5 loaded ok
Fetching with LWP:
ftp://mirrors.hknet.com/CPAN/authors/id/S/SK/SKIMO/CHECKSUMS
Checksum for /root/.cpan/sources/authors/id/S/SK/SKIMO/FCGI-0.67.tar.gz ok
Scanning cache /root/.cpan/build for sizes
FCGI-0.67/
FCGI-0.67/configure.in
FCGI-0.67/threaded.PL
FCGI-0.67/test.pl
FCGI-0.67/FCGI.XL
FCGI-0.67/remote.PL
FCGI-0.67/configure.readme
FCGI-0.67/version.pm
FCGI-0.67/echo.PL
FCGI-0.67/MANIFEST
FCGI-0.67/typemap
FCGI-0.67/fcgi_config.h.in
FCGI-0.67/ChangeLog
FCGI-0.67/FCGI.PL
FCGI-0.67/configure
FCGI-0.67/Makefile.PL
FCGI-0.67/README
FCGI-0.67/LICENSE.TERMS
FCGI-0.67/fcgiapp.c
FCGI-0.67/os_unix.c
FCGI-0.67/os_win32.c
FCGI-0.67/fastcgi.h
FCGI-0.67/fcgiapp.h
FCGI-0.67/fcgimisc.h
FCGI-0.67/fcgios.h
FCGI-0.67/fcgi_config_x86.h

CPAN.pm: Going to build S/SK/SKIMO/FCGI-0.67.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for FCGI
Running ./configure for you
Please read configure.readme for information on how to run it yourself
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -E
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for ssize_t... yes
checking for sun_len in sys/un.h... no
checking for fpos_t in stdio.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking for unistd.h... (cached) yes
checking for a fileno() prototype in stdio.h... yes
checking whether cross-process locking is required by accept()... no
checking whether va_arg(arg, long double) crashes the compiler... no
checking for an ANSI C-conforming const... yes
configure: creating ./config.status
config.status: creating fcgi_config.h
/usr/bin/perl "-Iblib/arch" "-Iblib/lib" FCGI.PL FCGI.pm
Generating FCGI.pm
cp FCGI.pm blib/arch/FCGI.pm
/usr/bin/perl "-Iblib/arch" "-Iblib/lib" FCGI.XL FCGI.xs
Generating FCGI.xs for Perl version 5.008005
/usr/bin/perl /usr/lib/perl5/5.8.5/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.8.5/ExtUtils/typemap -typemap typemap FCGI.xs > FCGI.xsc && mv FCGI.xsc FCGI.c
gcc -c -I. -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -DVERSION=\"0.67\" -DXS_VERSION=\"0.67\" -fPIC "-I/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE" FCGI.c
gcc -c -I. -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -DVERSION=\"0.67\" -DXS_VERSION=\"0.67\" -fPIC "-I/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE" fcgiapp.c
gcc -c -I. -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm -O2 -g -pipe -m32 -march=i386 -mtune=pentium4 -DVERSION=\"0.67\" -DXS_VERSION=\"0.67\" -fPIC "-I/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE" os_unix.c
Running Mkbootstrap for FCGI ()
chmod 644 FCGI.bs
rm -f blib/arch/auto/FCGI/FCGI.so
gcc -shared -L/usr/local/lib FCGI.o fcgiapp.o os_unix.o -o blib/arch/auto/FCGI/FCGI.so
chmod 755 blib/arch/auto/FCGI/FCGI.so
cp FCGI.bs blib/arch/auto/FCGI/FCGI.bs
chmod 644 blib/arch/auto/FCGI/FCGI.bs
Manifying blib/man3/FCGI.3pm
/usr/bin/perl "-Iblib/arch" "-Iblib/lib" echo.PL echo.fpl
/usr/bin/perl "-Iblib/arch" "-Iblib/lib" remote.PL remote.fpl
/usr/bin/perl "-Iblib/arch" "-Iblib/lib" threaded.PL threaded.fpl
/usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-Iblib/lib" "-Iblib/arch" test.pl
1..1
# Running under perl version 5.008005 for linux
# Current time local: Thu Feb 1 14:59:37 2007
# Current time GMT: Thu Feb 1 06:59:37 2007
# Using Test.pm version 1.25
ok 1
/usr/bin/make test -- OK
Running make install
Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/FCGI.pm
Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/FCGI/FCGI.bs
Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/FCGI/FCGI.so
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /usr/share/man/man3/FCGI.3pm
Writing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/FCGI/.packlist
Appending installation info to /usr/lib/perl5/5.8.5/i386-linux-thread-multi/perllocal.pod
/usr/bin/make install -- OK

cpan> quit
Terminal does not support GetHistory.
Lockfile removed.

现在Fastcgi终于生效了,不过没感觉有什么改善,有待进一步的观察!
参考文档:
http://www.lifewiki.net/sixapart/HostingMTUnderFastCGI
http://easun.org/archives/mt334_fastcgi.html
http://www.anysql.net/weblog/mt_fastcgi_scode.html
http://www.fastcgi.com/archives/fastcgi-developers/2005-December/004060.html

-The End-


历史上的今天...
    >> 2010-02-01文章:
    >> 2008-02-01文章:
    >> 2006-02-01文章:
           2005 我的年终总结

By eygle on 2007-02-01 15:11 | Comments (3) | Web | 1341 |

3 Comments

晕,我很想看懂。。。

正在傷腦筋時 !
無意間搜尋到您的這篇文章 . .
就這樣順利的在 Solaris 10 上配置好 Ruby on Rails
真是感謝 !

,
Gracias

SuperSonic


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com