Что делает параметр конфигурации PHP “- prefix=PREFIX”, делают?

Я услышал ту установку --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

Однако это - просто предположение.

7
задан 4 revs, 2 users 95% 25 August 2015 в 02:20
поделиться

3 ответа

Если вы хотите переключаться между 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)

4
ответ дан 7 December 2019 в 01:17
поделиться

Все, что нужно сделать, это изменить папку, в которую будут установлены двоичные файлы PHP.

При его изменении изменится место установки, поэтому технически вы можете установить несколько копий ... но зачем вам это делать? Это будет просто головной болью для всего остального (вашего веб-сервера / cgi / cli)

В большинстве случаев путь / usr / local или / usr , который установит файлы в / usr / local / bin и / usr / bin` соответственно.

4
ответ дан 7 December 2019 в 01:17
поделиться

Хорошая настройка для , которую вы можете использовать, - это / usr / local . Упаковщик дистрибутива должен использовать / usr , а независимые поставщики программного обеспечения должны использовать / opt / .

Этот путь используется в качестве основы для исполняемого файла CLI ( $ PREFIX / bin ), библиотеки SAPI и расширений.

2
ответ дан 7 December 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: