【问题标题】:Compile PHP 7 from source从源代码编译 PHP 7
【发布时间】: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.hlib/ 我有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


【解决方案1】:

我自己完成了sudo apt-get install libjpeg-dev libjpeg-turbo8-dev libjpeg-progs,然后它在 Ubuntu 14.04 上运行。

我在我的两台电脑上做了这件事,而且都可以工作!

:-)

【讨论】:

    猜你喜欢
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    相关资源
    最近更新 更多