Я услышал ту установку --prefix=PREFIX
опция при компиляции PHP на Linux позволит Вам иметь больше чем одну установку PHP за один раз без них столкновение. (Я думаю значение по умолчанию, если это не установлено, /usr/local
). Однако я не уверен, что точно это делает или какова хорошая установка на использование. Кроме того, я также услышал, что установка его к чему-то другому, чем значение по умолчанию могла бы сделать некоторые расширения PHP тяжелее для установки.
./configure --prefix=PREFIX ...
Я просто понял что некоторые из других опций такой как --exec-prefix
возможно, все еще должен был бы быть установлен на /usr/local
так как они принимают значение по умолчанию к значению --prefix
. Это вызвало бы проблемы, если бы префикс был установлен на что-то как web/phpalt
потому что вещи как --sbindir
установлен на ''-исполнительный префикс +/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 для configure
как для 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
У меня есть несколько (старых) сценариев сборки , что может или не может избавить вас от боли, если вы компилируете на Linux (в частности, CentOS, но вы можете легко заставить его работать и в дистрибутивах, отличных от Redhat)
Все, что нужно сделать, это изменить папку, в которую будут установлены двоичные файлы PHP.
При его изменении изменится место установки, поэтому технически вы можете установить несколько копий ... но зачем вам это делать? Это будет просто головной болью для всего остального (вашего веб-сервера / cgi / cli)
В большинстве случаев путь / usr / local
или / usr
, который установит файлы в / usr / local / bin
и / usr / bin` соответственно.
Хорошая настройка для , которую вы можете использовать, - это / usr / local
. Упаковщик дистрибутива должен использовать / usr
, а независимые поставщики программного обеспечения должны использовать / opt /
.
Этот путь используется в качестве основы для исполняемого файла CLI ( $ PREFIX / bin
), библиотеки SAPI и расширений.