undefined symbol: Unixd_config after updating php from 5.3 to 7.1

Tom-

Verified User
Joined
Nov 14, 2014
Messages
21
I've updated my server's php version (and a bunch of other stuff) by running:

./build set php1_release 7.1
./build update
./build php d

after that, I also ran ./build update_versions.
./build versions now shows everything up to date, but httpd fails to start with the following message:

Starting httpd: httpd: Syntax error on line 50 of /etc/httpd/conf/httpd.conf: Syntax error on line 4 of /etc/httpd/conf/extra/httpd-phpmodules.conf: Cannot load /usr/lib/apache/libphp7.so into server: /usr/lib/apache/libphp7.so: undefined symbol: unixd_config

I've tried running rewrite_configs, but alas, no good. I've googled around and found that the unixd_config is no longer used in apache 2.4, but I dont know where to fix this command, or whether I should attempt to manually fix this by editing files or by maybe installing php.

I've tried the same update procedure with php 7.0 instead of 7.1, and that does work properly. I'm not hell-bent on getting 7.1, so this is actually fine, but I'm curious why this issue comes up in 7.1. Any ideas?
 
Please let us know the output of:
Code:
whereis httpd
httpd -v
 
Please let us know the output of:
Code:
whereis httpd
httpd -v

httpd: /usr/sbin/httpd /etc/httpd /usr/share/man/man8/httpd.8

Server version: Apache/2.4.27 (Unix)
Server built: Jul 27 2017 17:10:35
 
unixd_config was an Apache 2.2 API. In 2.4 it is ap_unixd_config.

I would do the following:

./build apache
./build rewrite_confs
./build php n

And one more thing - consider using php-fpm instead of mod_php if you are running a shared hosting.
 
Last edited:
I've decided to re-clone my VPS and start anew. The only thing I can think of that I did differently is run a few updates in a different order. First, I updated PHP to 7.1 before updating apache, now I swapped that around. I cant guarantee that I didnt do anything else differently, so not much certainty there, but its working fine now.
For completeness sake; I ran them like this:

./build set php1_release 7.1
./build apache
./build mod_ruid2
./build update
./build php d

Wattie - I'm not running shared hosting, but thanks for the tip!
 
mod_php is an apache module. Of course you must build apache first, then the module, if you are updating Apache too.
 
Back
Top