【发布时间】:2015-08-12 16:45:25
【问题描述】:
我正在尝试从源代码编译 PHP7。此外,PHP 所依赖的所有其他库都是从源代码构建的,它们位于自定义目录中。(这很重要,不建议下载开发包!!!)我使用的是 Ubunti 14.04。
所以基本上配置很简单
sudo ldconfig $HOME/programs/pcre/lib \
$HOME/programs/zlib/lib \
$HOME/programs/bzip2/lib \
$HOME/programs/libpng/lib \
$HOME/programs/libjpeg/lib \
$HOME/programs/libmcrypt/lib \
$HOME/programs/mhash/lib \
$HOME/programs/libxslt/lib \
$HOME/programs/libxml2/lib \
$HOME/programs/gettext/lib \
$HOME/programs/zlib/lib \
$HOME/programs/iconv/lib \
$HOME/programs/postgresql/lib \
$HOME/programs/curl/lib \
$HOME/programs/zlib/lib
CPPFLAGS="-I$HOME/programs/zlib/include \
-I$HOME/programs/bzip2/include \
-I$HOME/programs/libpng/include \
-I$HOME/programs/libjpeg/include \
-I$HOME/programs/libmcrypt/include \
-I$HOME/programs/mhash/include \
-I$HOME/programs/libxslt/include \
-I$HOME/programs/libxml2/include \
-I$HOME/programs/gettext/include \
-I$HOME/programs/zlib/include \
-I$HOME/programs/iconv/include \
-I$HOME/programs/postgresql/include \
-I$HOME/programs/curl/include \
-I$HOME/programs/zlib/include"
./configure --prefix=$HOME/programs/php \
--enable-fpm \
--with-fpm-user=fpmu \
--with-fpm-group=fpmg \
--with-libxml-dir=shared,$HOME/programs/libxml2 \
--with-pcre-regex=$HOME/programs/pcre \
--with-zlib=$HOME/programs/zlib \
--with-config-file-path=$HOME/programs/php/config \
--with-openssl=$HOME/programs/openssl \
--enable-bcmath \
--with-bz2=$HOME/programs/bzip2 \
--enable-calendar \
--enable-exif \
--enable-ftp \
--with-gd \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-png-dir=$HOME/programs/libpng \
--with-jpeg-dir=shared,$HOME/programs/libjpeg \
--with-mcrypt=shared,$HOME/programs/libmcrypt \
--with-mhash=shared,$HOME/programs/mhash \
--with-xsl=shared,$HOME/programs/libxslt \
--with-sqlite3=no \
--with-pdo-sqlite=no \
--with-gettext=shared,$HOME/programs/gettext \
--with-iconv-dir=shared,$HOME/programs/iconv \
--with-pgsql=shared,$HOME/programs/postgresql \
--with-pdo-pgsql=$HOME/programs/postgresql/bin \
--with-curl=$HOME/programs/curl \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mbstring \
--enable-opcache-file \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--enable-zip \
--enable-phar \
--enable-re2c-cgoto \
--enable-pcntl \
--enable-shmop
当我运行 config 命令时,发生的第一个错误是找不到 xml2-config 文件(但它就在他的位置上,对我健康且微笑)。我尝试了令人印象深刻的各种组合,但错误并没有消失。最后我禁用了 libxml。但随后发生了另一个错误。 jpeglib.h not found. 所以基本上我认为编译器没有收到我提供的正确库和头文件。
我会感谢有人解释为什么会发生这种情况以及如何解决问题。我也尝试构建 PHP5.6.12。同样的“成功”。
附:我尝试将 xml2-config 复制到默认库之一或 /usr/local/bin 中,并且不再发生 xml 错误,但随后我又被 libjpeg.h 卡住了 ....
【问题讨论】:
-
我从源代码构建 libjpeg 并尝试配置 PHP,但没有遇到与您相同的错误。
$HOME/programs/libjpeg中的目录结构是什么? -
你好,draw010。结构为:bin/include/lib/share/
-
Alkso @drew010 如果重要的话,版本是 9a (jpegsrs.v9a.tar.gz)
-
我也有。我构建了 jpeg 9a。在
include/我有jconfig.h jerror.h jmorecfg.h jpeglib.h在lib/我有libjpeg.a libjpeg.la libjpeg.so libjpeg.so.9 libjpeg.so.9.1.0我的PHP 配置开关包括--with-jpeg=shared,/opt/php7/programs/libjpeg我正在构建PHP 7 beta3 -
@drew010 对于您的构建,您是否使用了一些环境变量。像 CPPFLAGS LDFLAGS 或其他任何东西。对于构建期间的动态链接,我使用 ldconfig 和 CPPFLAGS 来包含标题。就是这样。
标签: php ubuntu compilation