Instalação da extensão PHP do CentOS6: Não é possível encontrar o php-config. Por favor use --with-php-config = PATH

1

Isso pode parecer trivial para alguns, mas eu tenho desenvolvido no Windows toda a minha vida e só mudei para o Linux esta semana - tudo é novo para mim.

Estou acompanhando O guia a seguir sobre como instalar extensões php no Linux. Ele funcionou perfeitamente para a extensão mbstring, no entanto, quando eu tentei fazer exatamente o mesmo para bz2 e curl, eu iria receber o erro: configure: error: Cannot find php-config. Please use --with-php-config=PATH

Alguém já encontrou esse erro antes e poderia lançar alguma luz em termos que um novato pudesse entender? Ambas as extensões vieram com a fonte do PHP 5.5. Meus comandos usados e suas saídas são os seguintes:

Encontre o php-config:

[Art@art ~]$ sudo find -name php-config
./php/scripts/php-config

Confirme se o php-config existe:

[Art@art bz2]$ cd ~/php/scripts
[Art@art scripts]$ ls -ltr
total 48
-rw-r--r--. 1 Art  Art  4690 May 28 09:06 phpize.m4
-rw-r--r--. 1 Art  Art  4499 May 28 09:06 phpize.in
-rw-r--r--. 1 Art  Art  2070 May 28 09:06 php-config.in
-rw-r--r--. 1 Art  Art  1744 May 28 09:06 Makefile.frag
drwxr-xr-x. 3 Art  Art  4096 May 28 09:06 dev
drwxr-xr-x. 2 Art  Art  4096 May 28 09:06 apache
-rw-r--r--. 1 root root 4522 Jun 25 09:16 phpize
-rw-r--r--. 1 root root 2260 Jun 25 09:16 php-config
drwxr-xr-x. 2 Art  Art  4096 Jun 25 09:16 man1

phpize bz2

[Art@art scripts]$ cd ~/php/ext/bz2
[Art@art bz2]$ phpize
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212

configuração e erro

[Art@art bz2]$ sudo ./configure --with-php-config=~/php/scripts/php-config
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking for C compiler default output file name... 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 cc accepts -g... yes
checking for cc option to accept ISO C89... none needed
checking how to run the C preprocessor... cc -E
checking for icc... no
checking for suncc... no
checking whether cc understands -c and -o together... yes
checking for system library directory... lib
checking if compiler supports -R... no
checking if compiler supports -Wl,-rpath,... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
configure: error: Cannot find php-config. Please use --with-php-config=PATH

Executando o php-config:

Usage: /usr/local/bin/php-config [OPTION]
Options:
  --prefix            [/usr/local]
  --includes          [-I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local
/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib]
  --ldflags           []
  --libs              [-lcrypt   -lresolv -lcrypt -lrt -lrt -lm -ldl -lnsl  -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm
 -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt ]
  --extension-dir     [/usr/local/lib/php/extensions/no-debug-zts-20121212]
  --include-dir       [/usr/local/include/php]
  --man-dir           [/usr/local/php/man]
  --php-binary        [/usr/local/bin/php]
  --php-sapis         [ apache2handler cli cgi]
  --configure-options [--with-apxs2=/usr/local/apache2/bin/apxs --with-mysql]
  --version           [5.5.13]
  --vernum            [50513]
    
por AM- 26.06.2014 / 11:16

2 respostas

2

Você precisa do pacote de devel instalado:

# yum install php-devel

qual pacote inclui /usr/bin/php-config . Isso geralmente é verdade para os componentes RH / CentOS quando você planeja sair da pista e compilar suas próprias coisas; o pacote foo-devel contém o material necessário para permitir que você compile com foo . A separação é feita para que os administradores que não quiserem criar coisas manualmente não precisem ter todos os ganchos instalados.

Editar : não estou dizendo que você não deve criar extensões a partir do código-fonte; Só que, se você quiser, precisará de php-devel . Mas o que você diz no seu comentário sugere que você está tentando reconstruir todo o PHP - nesse caso, você não pode começar com as extensões, você precisará construir o PHP inteiro, começando com o PHP.

Se você puder esclarecer qual é a versão mínima do PHP com a qual você pode conviver, pode haver melhores rotas para obtê-la do que criá-la.

    
por 26.06.2014 / 12:42
1

Eu acho que você é incompatível phpize e php-config. Certifique-se de usar ambos da mesma instalação. Então, se você configurar o php com algum prefixo $A , use:

$A/bin/phpize
./configure --with-php-config=$A/bin/php-config

BTW, você não deve criar extensões integradas com phpize . Ele funcionará principalmente, mas não é garantido (tentei as extensões curl e bz2 e essas duas parecem funcionar). Em vez disso, você deve reconstruir o php com --enable-<extension>=shared ou --with-<extension>=shared (passar --help para configurar para verificar qual deles).

Além disso, geralmente é uma boa ideia usar pacotes, por várias razões (remoções fáceis, possibilidade de lidar com atualizações, nenhuma compilação necessária após o pacote ter sido construído e assim por diante). Também evitaria o tipo de erros que você obtém ao ter várias versões instaladas. Isso é relativamente fácil de fazer com fpm :

sudo yum install ruby-devel rubygems; sudo gem install fpm
curl -L http://ca1.php.net/get/php-5.5.13.tar.bz2/from/this/mirror | tar xjf -
cd php-5.5.13/
./configure --prefix=/usr --disable-all --enable-mbstring=shared # edit config line to your taste
make -j8
make install INSTALL_ROOT=root
# you can optionally strip the binaries at this point
# a simple would be find root | xargs strip
cd root
# add dependencies with -d foo if necessary, for instance -d libcurl
fpm -s dir -t rpm -n php -v 5.5.13 .
sudo yum localinstall php-5.5.13-1.x86_64.rpm
    
por 26.06.2014 / 16:21