Apache 2.4.17 released

Try building PHP with openssl from /usr/local/lib_http2.
 
Just to check myself here:

./build used_configs
...
PHP (default) configuration file: /usr/local/directadmin/custombuild/configure/ap2/configure.php55
...

I'd replace:

--with-openssl \

with:
--with-openssl \
--with-openssl-dir=/usr/local/lib_http2 \

Am I missing anything?

Thank you =)
 
--with-openssl \
--with-openssl-dir=/usr/local/lib_http2 \

did not change anything... I'm still seeing the discrepancy :/

# php -i | grep -i ssl
Configure Command => './configure' '--with-apxs2' '--with-config-file-scan-dir=/usr/local/lib/php.conf.d' '--with-curl=/usr/local/lib' '--with-gd' '--enable-gd-native-ttf' '--with-gettext' '--with-jpeg-dir=/usr/local/lib' '--with-freetype-dir=/usr/local/lib' '--with-libxml-dir=/usr/local/lib' '--with-kerberos' '--with-openssl' '--with-openssl-dir=/usr/local/lib_http2' '--with-mcrypt' '--with-mhash' '--with-mysql=mysqlnd' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=mysqlnd' '--with-pcre-regex=/usr/local' '--with-pdo-mysql=mysqlnd' '--with-pear' '--with-png-dir=/usr/local/lib' '--with-xsl' '--with-zlib' '--with-zlib-dir=/usr/local/lib' '--enable-zip' '--with-iconv=/usr/local' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-sockets' '--enable-soap' '--enable-mbstring' '--with-icu-dir=/usr/local/icu' '--enable-intl'
Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
SSL => Yes
SSL Version => OpenSSL/0.9.8b
core SSL => supported
extended SSL => supported
openssl
OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
OpenSSL Header Version => OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
Native OpenSSL support => enabled

phpini() said:
openssl

OpenSSL support enabled
OpenSSL Library Version OpenSSL 1.0.2d 9 Jul 2015
OpenSSL Header Version OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
 
I'm not sure if PHP has a special flag to use OpenSSL static libraries, so it must be still using the dynamic (OS) ones:
Code:
ldd /usr/local/bin/php | grep ssl

Try installing PHP not as an apache module (for example, fastcgi or php-fpm) and see if it loads correct library then.
 
Turn mod_ruid2 off temporary:
Code:
cd /usr/local/directadmin/custombuild
./build set mod_ruid2 no
 
This got it:

--with-openssl=/usr/local/lib_http2 \
--with-openssl-dir=/usr/local/lib_http2 \

You may want to update your steps on page 1 to reflect this to avoid users' experiencing segfaults due to mismatches between the header and library versions =)
 
Hrm, worked good on my 32bit boxes, but my 64bit box doesn't like it:

/usr/bin/ld: /usr/local/lib_http2/lib/libcrypto.a(cversion.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib_http2/lib/libcrypto.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1
make: *** Waiting for unfinished jobs....
 
Just add -fPIC to the end of the "./config" line for OpenSSL installation, that should solve the problem.
 
same sort of error (different .o file indicated) after recompiling openssl with -fPIC

/usr/bin/ld: /usr/local/lib_http2/lib/libcrypto.a(x86_64-gcc.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib_http2/lib/libcrypto.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libphp5.la] Error 1
make: *** Waiting for unfinished jobs....
 
So in configure.php55 I added

--disable-shared \
--without-pic

...and that got me as far as Zend Optimizer

/usr/bin/ld: ext/opcache/.libs/ZendAccelerator.o: relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC
ext/opcache/.libs/ZendAccelerator.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [ext/opcache/opcache.la] Error 1
make: *** Waiting for unfinished jobs....

Very, very strange

Even more so that this is only an issue on 64bit installs... 32bit I had no issues
 
Last edited:
It's zend opcache failing, not zend optimizer (zend guard loader). Try disabling it temporary and see if you have no other issues.
 
I don't get this. Apache config is fine, yet I'm unable to get h2 indicator for http:// requests while https:// are fine. So when you access site via http://www.domain.com there is no h2 indication (both in Chrome and Firefox) when you access same domain over via https://www.domain.com indicators in both are fine.

Testing domain with https://tools.keycdn.com/http2-test says HTTP/2 Support: supported

Any ideas? Or just wait for apache 2.4.18?
 
Even tough your apache has h2c enabled (http:// for HTTP/2), none of the current browsers support support h2c (HTTP/2 over TCP). Only h2 (HTTP/2 over TLS) is supported at the moment. Why? Quote:
Reasons for choosing TLS-only include respect for user's privacy and early measurements showing that new protocols have a higher success rate when done with TLS. This because of the widespread assumption that anything that goes over port 80 is HTTP 1.1 makes some middle-boxes interfere and destroy traffic when instead other protocols are communicated there.
 
nghttp2 doesn't build on FreeBSD 9.

First Zlib is not found, so it seems the path has to be given

Code:
configure: summary of build options:

    Version:        1.3.4 shared 15:4:1
    Host type:      x86_64-unknown-freebsd9.3
    Install prefix: /usr/local
    C compiler:     gcc49
    CFLAGS:         -fdiagnostics-color -fstack-protector-strong --param ssp-buffer-size=4 -Wl,-z,relro,-z,now -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -O2 -pipe -march=native -fno-strict-aliasing -ftracer -floop-interchange -floop-strip-mine -floop-block -fuse-linker-plugin -flto=6 -ffat-lto-objects
    WARNCFLAGS:
    LDFLAGS:        -fdiagnostics-color -fstack-protector-strong --param ssp-buffer-size=4 -Wl,-z,relro,-z,now -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -O2 -pipe -march=native -fno-strict-aliasing -ftracer -floop-interchange -floop-strip-mine -floop-block -fuse-linker-plugin -flto=6 -ffat-lto-objects -Wl,-rpath=/usr/local/lib/gcc49
    LIBS:
    CPPFLAGS:
    C preprocessor: cpp49
    C++ compiler:   g++49
    CXXFLAGS:       -g -O2 -std=c++11
    CXXCPP:         g++49 -E
    Library types:  Shared=yes, Static=yes
    Python:
      Python:         /usr/local/bin/python
      PYTHON_VERSION: 2.7
      pyexecdir:      ${exec_prefix}/lib/python2.7/site-packages
      Python-dev:     yes
      PYTHON_CPPFLAGS:-I/usr/local/include/python2.7
      PYTHON_LDFLAGS: -L/usr/local/lib -lpython2.7
      Cython:
    Test:
      CUnit:          yes
      Failmalloc:     yes
    Libs:
      OpenSSL:        yes
      Libxml2:        yes
      Libev:          yes
      Libevent(SSL):  yes
      Spdylay:        no
      MRuby:          no
      Jansson:        yes
      Jemalloc:       no
      Zlib:           no
      Boost CPPFLAGS:
      Boost LDFLAGS:
      Boost::ASIO:
      Boost::System:
      Boost::Thread:
    Features:
      Applications:   no
      HPACK tools:    yes
      Libnghttp2_asio:no
      Examples:       yes
      Python bindings:no
      Threading:      yes
      Third-party:    yes

But then, compilation fails

Making all in python
Making all in tests
Making all in testdata
Making all in integration-tests
Making all in doc
Making all in contrib
make: don't know how to make %:. Stop
*** [all-recursive] Error code 1
1 error
*** [all] Error code 2
1 error

*** The make has failed, would you like to try to make again? (y,n):
 
Last edited:
Back
Top