21

私は自分のPHPをコンパイルします。これは、PHPの組み合わせ方について学ぶためです。また、デフォルトでは使用できないモジュールが必要であることが常にわかっているため、これを制御できます。

私の問題は、PHPでJPEGサポートを取得できないことです。CentOS5.6の使用。PHP5.3.8をコンパイルするときの構成オプションは次のとおりです。

 './configure'  '--enable-fpm' '--enable-mbstring' '--with-mysql' '--with-mysqli' '--with-gd' '--with-curl' '--with-mcrypt' '--with-zlib' '--with-pear' '--with-gmp' '--with-xsl' '--enable-zip' '--disable-fileinfo' '--with-jpeg-dir=/usr/lib/'

./configure出力は次のようになります。

checking for GD support... yes
checking for the location of libjpeg... no
checking for the location of libpng... no
checking for the location of libXpm... no

そして、GDがインストールされていることがわかりますが、JPEGサポートはありません。

# php -r 'print_r(gd_info());'
Array
(
    [GD Version] => bundled (2.0.34 compatible)
    [FreeType Support] =>
    [T1Lib Support] =>
    [GIF Read Support] => 1
    [GIF Create Support] => 1
    [JPEG Support] =>
    [PNG Support] => 1
    [WBMP Support] => 1
    [XPM Support] =>
    [XBM Support] => 1
    [JIS-mapped Japanese Font Support] =>
)

PHPはlibjpegを見つけることができる必要があることを私は知っています、そしてそれは明らかにそれが満足しているバージョンを見つけることができません。私はそれが必要なものだと思ってい/usr/lib/libjpeg.so/usr/lib/libjpeg.so.62でしょうが、正しいlibディレクトリ(--with-jpeg-dir=/usr/lib/)を提供しましたが、それらを取得しないので、正しいバージョンにはなれないと思います。

rpmlibjpegがインストールされていると言います。私はyum removeそれを再インストールする必要がありますか、そしてそれはすべて依存パッケージですか?それで問題は解決するでしょうか?

これは、うまくいけば有用なシステム情報のコレクションを含むペーストビンです:http:
//pastebin.com/ied0kPR6

サーバーフォールト(https://serverfault.com/q/304310/92291)とのクロスポストについてお詫びしますが、クロスポストにおけるStack Exchangeの位置を調べようとしましたが、明確ではありませんでした:https://meta。 stackexchange.com/q/75326/167958

4

3 に答える 3

20

リクエストに応じて:

構成テストが単に内部的に提供されたパスではなく、提供されたパス + '/lib/' として記述されているため、configure スクリプトがばかげている場合があり、...=/usr/lib の代わりに --with-somelib=/usr を実行する必要があります。 . 本当に必要なものを見つけるために、構成テスト スイート内を掘り下げる必要がある場合があります。

于 2011-09-14T17:25:50.983 に答える
15

することを忘れないでください

make clean

構成した後。

他の構成を作成して前に作成しましたが、古いインストールにより、GD で jpeg サポートを有効にすることができません。

それはubuntu 12.04 64bitsで私を救います

これらのパッケージも使用しました:

aptitude install libjpeg62-dev libpng-dev libfreetype6-dev

この設定オプションで:

./configure \
  --with-config-file-path=/usr/local/apache2/conf \
  --with-jpeg-dir \
  --with-png-dir \
  --with-vpx-dir \
  --with-freetype-dir \
  --enable-apc \
  --enable-bcmath \
  --enable-calendar \
  --enable-dba \
  --enable-exif \
  --enable-ftp \
  --enable-mbstring \
  --enable-shmop \
  --enable-sigchild \
  --enable-soap \
  --enable-sockets \
  --enable-sysvmsg \
  --enable-zip \
  --enable-gd-native-ttf  \
  --with-gd \
  --with-apxs2=/usr/local/httpd/bin/apxs \
  --with-bz2 \
  --with-curl \
  --with-gettext \
  --with-mcrypt \
  --with-mysql-sock=/var/run/mysqld/mysqld.sock \
  --with-openssl \
  --with-pdo-mysql \
  --with-xmlrpc \
  --with-zlib

その後 :

make clean
make
make install

Apache 2.4.3 および PHP 5.4.11 で問題なく動作

于 2013-02-16T14:55:24.707 に答える
1

ほとんどの場合、libjpeg のランタイム バージョンではなく、開発バージョンをインストールする必要があります (もちろん、コンパイル後にはランタイム バージョンが必要になります)。

私自身はCentOSを使用していませんが、次のようなものが役立つはずです:

rpm install libjpeg-devel

-devパッケージ名が間違っているかもしれませんが、または接尾辞が付いているものを探してください-devel

于 2011-08-23T21:39:52.710 に答える