これは些細なことのように思えるかもしれませんが、私は一生Windowsで開発を続けており、今週はLinuxに移行しただけです。
私はLinuxにPHP拡張機能をインストールする方法について 次のガイド に従っています。これはmbstring拡張に対して完全に機能しましたが、bz2とcurlに対してまったく同じことを実行しようとすると、エラーが発生します:configure: error: Cannot find php-config. Please use --with-php-config=PATH
誰かが以前にこのエラーに遭遇し、新人が理解できる言葉でいくつかの光を当てることができましたか?どちらの拡張機能にもPHP 5.5ソースが付属しています。使用したコマンドとその出力は次のとおりです。
Php-configを見つけます。
[Art@art ~]$ Sudo find -name php-config
./php/scripts/php-config
Php-configが存在することを確認します。
[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
構成とエラー
[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
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]
Develパッケージをインストールする必要があります:
# yum install php-devel
どのパッケージに/usr/bin/php-config
。これは一般に、ピストルを外して独自のものをコンパイルすることを計画している場合、RH/CentOSコンポーネントに当てはまります。 foo-devel
パッケージには、foo
に対してコンパイルできるようにするために必要なものが含まれています。分離は、ものを手動で作成したくない管理者がすべてのフックをインストールする必要がないように行われます。
編集:ソースから拡張機能を作成してはいけないと言っているのではありません。必要な場合は、php-devel
。しかし、コメントであなたが言うことは、PHPの全体を再構築しようとしていることを示唆しています-この場合、拡張機能から始めることはできません。 PHPの、PHPから始めます。
PHPと共存できる最小バージョンが何であるかを明確にできる場合、ビルドするよりも入手するためのより良いルートがあるかもしれません。