在Yocto构建中添加php-curl

时间:2017-12-13 20:55:41

标签: php curl yocto php-curl

我一直在使用Yocto和wpewebkit构建自定义映像,以便在docker中使用。我需要用php运行本地Web服务器,我没有遇到任何问题。我需要在我的项目中使用curl并且我安装了apache2,php,modphp和curl。我需要的只是php-curl但我找不到如何安装它。有谁知道我是怎么做的?我已经在谷歌搜索多个短语,但我只找到如何使用apt-get或yum安装php-curl,或者我获得了我在构建文件中可以访问的meta- *目录的链接反正。

如果它有帮助,这个自定义图像基于GitHub上的以下项目提供的图像:https://github.com/resin-io-playground/resin-wpe/tree/master/base-image。我已经与开发人员交谈,他们对PHP的了解有限。

编辑#1:目前为止的进展,必须更新curl.bb文件以正确包含libcurl-dev,然后使用@pmod的建议将curl合并到php构建中。一切似乎运行正常,直到我收到以下错误:

| ../php-7.1.9/configure: line 386: test: please: integer expression expected
| configure: error: reinstall
| ../php-7.1.9/configure: line 275: return: please: numeric argument required
| ../php-7.1.9/configure: line 285: exit: please: numeric argument required
| NOTE: The following config.log files may provide further information.
| NOTE: /base-image/build/tmp-glibc/work/x86_64-linux/php-native/7.1.9-r0/build/config.log
| ERROR: configure failed
| WARNING: /base-image/build/tmp-glibc/work/x86_64-linux/php-native/7.1.9-r0/temp/run.do_configure.29590:1 exit 1 from 'exit 1'
| ERROR: Function failed: do_configure (log file is located at /base-image/build/tmp-glibc/work/x86_64-linux/php-native/7.1.9-r0/temp/log.do_configure.29590)
ERROR: Task (virtual:native:/base-image/build/../meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb:do_configure) failed with exit code '1'

编辑#2:我已经开始并添加了我所缺少的一切。我在上面得到了同样的错误,php构建期间函数do_configure失败了。我在我的curl.bb文件(我不得不添加这个),我在php.inc文件中的内容以及位于staging目录的curl文件中发布了以下内容。

curl.bb:

PACKAGES =+ "lib${BPN} lib${BPN}-native lib${BPN}-dev lib${BPN}-dev-native"

FILES_lib${BPN} = "${libdir}/lib*.so.*"

FILES_lib${BPN}-dev = "${includedir} \
                       ${libdir}/lib*.so \
                       ${libdir}/lib*.a \
                       ${libdir}/lib*.la \
                       ${libdir}/pkgconfig \
                       ${datadir}/aclocal \
                       ${bindir}/*-config"

php.inc:

EXTRA_OECONF_append = " --with-curl=${libdir}/.."
DEPENDS_${PN} += "libcurl-dev libcurl-dev-native"

PHP暂存目录:

/installeddeps/curl-native
/installeddeps/curl-native.b77f37db31cf2391919a12c5c9774bff
/installeddeps/curl-native.complete
/usr/share/aclocal/libcurl.m4
/usr/bin/curl-config
/usr/bin/crossscripts/curl-config
/usr/bin/curl
/usr/lib/pkgconfig/libcurl.pc
/usr/lib/libcurl.so
/usr/lib/libcurl.a
/usr/lib/libcurl.so.4.4.0
/usr/lib/libcurl.so.4
/usr/include/curl
/usr/include/curl/curl.h
/usr/include/curl/curlrules.h
/usr/include/curl/curlbuild.h
/usr/include/curl/curlver.h
/usr/include/curl/easy.h

1 个答案:

答案 0 :(得分:1)

根据php manual,PHP配置阶段启用了PHP / cURL功能 --with-curl = [dir] 选项。

我检查了主要食谱包含文件php.inc,但无法找到此类配置选项。因此,尝试在您的工作层 php _%。bbappend 文件中创建(或直接将其添加到 php.inc 的底部进行测试):

EXTRA_OECONF_append_class-target = " --with-curl=${STAGING_LIBDIR}/.."
DEPENDS_append_class-target = " curl"

请注意, curl 包在 DEPENDS 中,因为在构建阶段需要它。

我认为您不需要使用PACKAGES和FILES更新curl配方,pkg_config应该小心