我听说在
linux上编译
PHP时设置–prefix = PREFIX选项将允许你一次安装多个PHP而不会发生冲突. (我认为如果没有设置默认值是/usr/local).但是,我不确定它究竟是做什么或者使用的好设置是什么.此外,我还听说将其设置为默认值以外的其他内容可能会使某些PHP扩展更难以安装.
./configure --prefix=PREFIX ...
我刚刚意识到–exec-prefix等其他一些选项可能仍需要设置为/usr/local,因为它们默认为–prefix的值.如果将前缀设置为类似web / PHPalt的东西,这会导致问题,因为像–sbindir这样的东西设置为“–exec-prefix / sbin`.
Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [same as prefix] --bindir=DIR user executables in DIR [EPREFIX/bin] --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] --libexecdir=DIR program executables in DIR [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data in DIR [PREFIX/share] --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data in DIR [PREFIX/com] --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] --libdir=DIR object code libraries in DIR [EPREFIX/lib] --includedir=DIR C header files in DIR [PREFIX/include] --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] --infodir=DIR info documentation in DIR [PREFIX/info] --mandir=DIR man documentation in DIR [PREFIX/man] --srcdir=DIR find the sources in DIR [configure dir or ..] --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names
根据PHP的说法,似乎您可以设置以下选项而不会产生任何副作用.
./configure --prefix=/custom/path --exec-prefix=/usr/local
但是,这只是猜测.
如果要在5.2和5.3之间切换,最好将源代码中的Apache和PHP编译到特殊目录中.
基本上,你可以将apache和PHP5.2编译到某个地方,比如/ web / PHP52(给出–prefix = / web / PHP52来配置apache和PHP.然后为apache / PHP53做同样的前缀,比如/ web / PHP53
你甚至可能会变得棘手并且做两个apache安装之间的符号链接以保持一致(所以唯一的区别是一个运行5.3而另一个运行5.2)
然后当你想启动5.2服务器时,你只需说:
$/web/PHP52/bin/apachectl start
然后切换到5.3
$/web/PHP52/bin/apachectl stop $/web/PHP53/bin/apachectl start
我有一些(旧的)build scripts可用或者可能不会为你节省一些痛苦,如果你在linux上进行编译(特别是CentOS,但你也可以很容易地在非redhat发行版上工作)