Apache (httpd) won't restart after installing the latest ebuild (1.3.24-r6). I get the following error when IO try to start it: * Starting apache... Syntax error on line 236 of /etc/httpd/httpd.conf: Cannot load /usr/lib/apache/libproxy.so into server: /usr/lib/apache/libproxy.so : undefined symbol: ap_getline The libproxy.so file IS in the correct directory.
I've just updated two servers from -r2 to -r6 and have not experienced this. Also, - Apache in Gentoo uses /etc/apache/conf/apache.conf as it's base config file, not /etc/httpd/httpd.conf. Through all installed versions of Apache on Gentoo I can't recall it using /etc/httpd/httpd.conf in recent history. - My (edited and slightly longer) apache.conf file is 228 lines long, not to mention libraries are loaded much earlier. It seems like the original install is either a *very* early emerged version, or it was a hand compiled install and then Apache was emerged over top of it, causing the config file descrepencies. This is all merely observation.
Alright. I have a solution for this problem. It appears after Apache has been installed in the past with a very old ebuild originally. The cause for this problem is that the latest HTTP 1.1 Proxy patch removes the export symbol ap_getline(). Here are the following steps to upgrade. rc-update del httpd default copy /etc/httpd/httpd.conf and any other files in the /etc/httpd directory to your personal directory edit /etc/passwd and change the Apache users home directory to your proper DocumentRoot rm -rf /etc/httpd emerge unmerge apache && emerge clean emerge apache (which should give you Apache 1.3.24-r6 or higher) modify your /etc/apache/conf/apache.conf && commonapache.conf files according to your httpd.conf file you saved. Optionally you could replace apache.conf with your httpd.conf but depending on certain settings in that file you will have limited success with that. Best bet is to just modify the two files to your liking. Remember to change any .htaccess files that might have referenced files you stored in /etc/httpd/ And lastly run rc-update add apache default Please note the init.d script is now called "apache" instead of "httpd". Much of the files named "httpd" have changed to "apache"
Michael (original bug reporter) pointed out that the old DocumentRoot directory is /usr/local/httpd/htdocs/ and the new directory used by Apache is /home/httpd/htdocs/ That is however a default and can be changed by modifying /etc/passwd and changing the Apache user's home directory.