php: add opcache extension to PACKAGECONFIG

OPcache improves PHP performance by storing precompiled script bytecode
in shared memory, thereby removing the need for PHP to load and parse
scripts on each request [1].

Add an option to enable opcache in php. AC_CHECK_FUNC isn't suitable for a
cross-compile environment, so pass the configure options instead to force
dlopen detection that is necessary to have extension support enabled.

On a standard phpbench test, I see a performance improvement of > 40%.

[1] http://php.net/manual/en/book.opcache.php

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
Anuj Mittal authored and Armin Kuster committed 2018-04-08 17:00:06 -07:00
1 parent 1816eb7779
commit 0d052a48c9
7 files changed
+822 -26

No files matched your search

+9 -5
View File
@@ -21,7 +21,7 @@ SRC_URI_append_class-target = " \
file://php_exec_native.patch \
file://php-fpm.conf \
file://php-fpm-apache.conf \
file://configure.patch \
file://0001-acinclude.m4-don-t-unset-cache-variables.patch \
file://70_mod_php${PHP_MAJOR_VERSION}.conf \
file://php-fpm.service \
"
@@ -40,7 +40,6 @@ PHP_LIBDIR = "${libdir}/php${PHP_MAJOR_VERSION}"
COMMON_EXTRA_OECONF = "--enable-sockets \
--enable-pcntl \
--enable-shared \
--disable-opcache \
--disable-rpath \
--with-pic \
--libdir=${PHP_LIBDIR} \
@@ -59,6 +58,9 @@ EXTRA_OECONF = "--enable-mbstring \
${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \
${COMMON_EXTRA_OECONF} \
"
CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=yes ac_cv_lib_dl_dlopen=yes"
EXTRA_OECONF_class-native = " \
--with-zlib=${STAGING_LIBDIR_NATIVE}/.. \
--without-iconv \
@@ -89,7 +91,7 @@ PACKAGECONFIG[imap] = "--with-imap=${STAGING_DIR_HOST} \
,--without-imap --without-imap-ssl \
,uw-imap"
PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
PACKAGECONFIG[opcache] = ",--disable-opcache"
export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
@@ -196,14 +198,14 @@ php_sysroot_preprocess () {
MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp', '', d)}"
PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}"
PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}-opcache ${PN}"
RDEPENDS_${PN} += "libgcc"
RDEPENDS_${PN}-pear = "${PN}"
RDEPENDS_${PN}-phar = "${PN}-cli"
RDEPENDS_${PN}-cli = "${PN}"
RDEPENDS_${PN}-modphp = "${PN} apache2"
RDEPENDS_${PN}-dev = "${PN}"
RDEPENDS_${PN}-opcache = "${PN}"
INITSCRIPT_PACKAGES = "${PN}-fpm"
inherit update-rc.d
@@ -232,6 +234,8 @@ FILES_${PN}-dev = "${includedir}/php ${PHP_LIBDIR}/build ${bindir}/phpize \
${bindir}/php-config ${PHP_LIBDIR}/php/.depdb \
${PHP_LIBDIR}/php/.depdblock ${PHP_LIBDIR}/php/.filemap \
${PHP_LIBDIR}/php/.lock ${PHP_LIBDIR}/php/test"
FILES_${PN}-staticdev += "${PHP_LIBDIR}/extensions/*/*.a"
FILES_${PN}-opcache = "${PHP_LIBDIR}/extensions/*/opcache${SOLIBSDEV}"
FILES_${PN} = "${PHP_LIBDIR}/php"
FILES_${PN} += "${bindir}"