Ne yapar PHP yapılandırma seçeneği "- prefix = ÖNEK"

3 Cevap php

Ben linux üzerinde PHP'yi derlerken --prefix=PREFIX seçeneği ayarlayarak onları çatışmaya girmeden bir anda PHP bir yüklemeniz daha var sağlayacak duydum. (I think the default if this isn't set is /usr/local ). Ancak, kullanmak için iyi bir ayardır tam olarak ne yapar ya da ne emin değilim. Ayrıca, ben de varsayılan değer dışında bir şeye ayarı yüklemek için bazı PHP uzantıları zorlaştırabilir duydum.

./configure --prefix=PREFIX ...

update

Sadece onlar --prefix değerine varsayılan beri gibi bazı diğer seçenekler --exec-prefix hala /usr/local için ayarlanması gerekebilir fark etti. Gibi şeyler --sbindir `--exec-prefix + /sbin ayarlandığı için prefix web/phpalt gibi bir şey ayarlanmış ise bu sorunlara neden olur.

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

Eğer herhangi bir yan etkiler olmaksızın aşağıdaki seçenekleri ayarlayabilirsiniz gibi PHP yazanlara dayanarak o gibi görünüyor.

./configure --prefix=/custom/path --exec-prefix=/usr/local

Ancak bu sadece bir tahmin. ;)

3 Cevap

Eğer 5.2 ve 5.3 arasında geçiş yapmak istiyorsanız, muhtemelen özel dizinlere, kaynak Apache ve PHP hem derlerken daha iyiyiz.

Temelde, (vererek / web/php52 gibi bazı yerde apache ve PHP5.2 derlemek olabilir -. Prefix = / web/php52 configure apache ve php hem de Sonra apache/php53 için aynı şeyi / web/php53 gibi bir önek ile

Hatta zor almak ve iki apache kurulumları arasındaki sembolik çeşitli yapılandırmaları gibi şeyler tutarlı (yani only fark biri 5.3 ve diğer 5.2 çalışıyor olmasıdır) şeyleri tutmak için yapabileceği

Eğer 5.2 sunucu kurmak istediğinizde o zaman, sadece söylemek:

$ /web/php52/bin/apachectl start

ve sonra 5.3 üzerinden geçmek için

$ /web/php52/bin/apachectl stop
$ /web/php53/bin/apachectl start

Ben bazı (eski) build scripts mevcut olduğunu olabilir veya linux (özellikle CentOS üzerinde derleme eğer size bazı ağrı kurtarmak değil, ama bunu çok olmayan redhat dağıtımlarda oldukça kolay çalışması yapabilir )

you kullanmak için iyi bir ayardır /usr/local. Dağıtımımın paketleyicisine /usr kullanmak gerekir ve ISV /opt/<appname> kullanmalısınız.

Bu yol CLI yürütülebilir için üs olarak kullanılan ($PREFIX/bin), SAPI kütüphane ve uzantıları.

Yaptığı tüm PHP ikili kurulacaktır klasörü değiştirmek olduğunu.

Eğer kuruyorsanız nerede değişecek, bu nedenle teknik olarak birden fazla kopya yükleyebilirsiniz değiştirme ... ama neden bunu yaptın? Bu sadece her şey için bir baş ağrısı yapmak (sizin webserver / cgi / cli) olur

Çoğu zaman, yol /usr/local veya /usr, sırasıyla /usr/local/bin / usr / bin `in dosyalarını yüklemek istiyorum hangi.