php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #17255 httpd won't start , pth_mutex_release is undefined
Submitted: 2002-05-15 13:07 UTC Modified: 2002-06-24 13:25 UTC
Votes:2
Avg. Score:5.0 ± 0.0
Reproduced:2 of 2 (100.0%)
Same Version:2 (100.0%)
Same OS:2 (100.0%)
From: dsp at edu dot physics dot uoc dot gr Assigned:
Status: Closed Package: Apache2 related
PHP Version: 4.2.1 OS: FreeBSD 4.5
Private report: No CVE-ID: None
 [2002-05-15 13:07 UTC] dsp at edu dot physics dot uoc dot gr
hi and thanks for reading , 
i am using a freebsd 4.5 on an i386 , running php 4.2.1 , apache 2.0.36 ,pth 1.4.1(as requested from php).
When i try to start httpd i get the following error message

"Cannot load /usr/share/apache2/modules/libphp4.so into server: /usr/share/apache2/modules/libphp4.so :Undefined symbol "pth_mutex_release""

 i found out that pth_mutex_release is a synchronization function ...(?!?)
anybody has any idea?
thanks again
DsP

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-06-13 09:46 UTC] sniper@php.net
See bug: http://bugs.php.net/?id=14594 which has good
explanation what the problem is. 

 [2002-06-22 18:46 UTC] FullyArticulate at yahoo dot com
Your response to his error is incorrect.

When I do not correctly specify --with-tsrm-pth, Iget the error "Undefined symbol 'pthread_getspecific'". If I *DO* specify the --with-tsrm-pth correctly, I get, "Undefined symbol 'pthread_mutex_release'".

These are two different errors which are dependent upon whether --with-tsrm-pth was specified correctly or not.

Regardless, I still cannot get PHP-4.2.1 to work with Apache 2.0.
 [2002-06-24 13:20 UTC] bpopp at midsouth dot rr dot com
I was having this same problem on Redhat 7.1 trying to install 2.0.36 and PHP 4.2.1. Through a myriad of different installation procedures, I ended up making a change to my sapi/apache2filter/php_functions.c file, installing GNU pth, and adding a lib directory to the root php directory before running 'make install'. After doing all this I got a successful build, but I ended up getting the pth_mutex_release error when trying to start apache. 

My original config line looked like : 

./configure --with-mysql --with-tsrm-pth=/usr/local/libs/pth --with-apxs2=/usr/local/apache2/bin/apx
s --with-xml --enable-track-vars

The --with-tsrm-pth=/usr/local/libs/pth part was recommended in a google search. It was apparently invalid for my install and ultimately the part that caused the pth_mutex_release problem (despite a successful build). After removing the path (and allowing it to use the default), Apache ran fine and PHP works perfectly.

I'm guessing my /usr/local/libs/pth directory is an old version of pth which doesn't handle the 
pth_mutex_release() function in the same way as newer versions. 

Hope this helps..
 [2002-06-24 13:25 UTC] rasmus@php.net
Try the latest CVS version of PHP.  Since threads are completely broken on FreeBSD, Apache2 defaults to the prefork MPM which is a non-threaded MPM.  So all this stuff is not necessary.  Simply build PHP non-threaded and it will work.  In the latest CVS I added a check for the prefork MPM and turned off threading in PHP.
 [2002-09-22 22:15 UTC] cn_star at 21cn dot com
FreeBsd4.6.2+mysql-3.23.52+httpd-2.0.40+php-4.2.3

1??INSTALL mysql:
tar vxzf mysql-3.23.52.tar.gz
cd mysql-2.23.52
./configure 
--prefix=/path/to/mysql
./make
./make install


2??INSTALL pth-1.4.1:
tar vxzf pth-1.4.1.tar.gz
cd pth-1.4.1
./configure 
(You cann't use "./configure --prefix=/path/to/" !!!)
make
make test
make install

3??INSTALL httpd-2.0.40:
tar vxfz httpd-2.0.40.tar.gz 
cd httpd-2.0.40
./configure ?Cprefix=/path/to/httpd --enable-module=so
make 
make install

4??INSTALL php-4.2.3:
tar vxfz php-4.2.3.tar.gz 
cd ../php-4.2.3
./configure --with-mysql=/path/to/mysql --with-apxs2=/path/to/httpd/bin/apxs
--with-tsrm-pth --with-gd=/usr/local --enable-trans-sid
--enable-track-vars

// ---------if you have't gd ,remove --with-gd=/usr/local

make 
make install 
cp php.ini-dist /usr/local/lib/php.ini

add  httpd.conf :
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php-source .phps

//_________ finish all of above,you will phpinfo();....
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Dec 21 13:01:31 2024 UTC