Quoting [email protected]: > Quoting Mik J <[email protected]>: > > > > De : "[email protected]" > <[email protected]> > > > > > > > OpenBSD 3.9? Or 4.9? > > My mistake, yes it's OpenBSD 4.9 > > > > > > Have you tried connecting to 127.0.0.1 rather than localhost? >
I suggest this because ... http://openbsd.org/faq/faq10.html#httpdchroot <quote>Name Resolution: httpd(8) inside the chroot(2) will NOT be able to use the system /etc/hosts or /etc/resolv.conf. Therefore, if you have applications which require name resolution, you will need to populate /var/www/etc/hosts and/or /var/www/etc/resolv.conf in the chroot(2) environment. Note that some applications expect the resolution of "localhost" to work. </unquote> > (That won't be why you are getting the Fatal error: Call to undefined > function > mysql_pconnect(), though.) > > Why don't you remove ADODB from the equation? Strip it down to the > smallest > example of it not working, and then build up from there. > > Does ... > > <?php mysql_pconnect('127.0.0.1','username','pwd') or die('Cannot > connect'); ?> > > ... work? > > > > Quoting Mik J > > <[email protected]>: > > > > > >> Hello everyone, > > >> > > >> My problem is that I > > cannot execute a php script in CLI. This > > >> test script is supposed to > > connect to mysql and retrieve some simple > > >> results > > >> Systeme: OpenBSD 3.9 > > >> Packages installed: php5-core-5.2.17, > > >> php5-extensions-5.2.17, > > >> > > php5-gd-5.2.17, php5-mysql-5.2.17, php5-snmp-5.2.17, > > >> > > mysql-server-5.1.54p3, mysql-client-5.1.54p0 > > >> > > >> Preparation > > >> > > ----------------- > > >> mysqld is started like this > > >> # > > /usr/local/bin/mysqld_safe --user=_mysql > > >> --pid-file=/var/mysql/mysql.pid & > > >> > > >> I have configured /etc/my.cnf in my base > > >> system like this > > >> > > [mysqld] > > >> socket = /var/www/var/run/mysql/mysql.sock > > >> Once mysqld is > > started I have the mysql.sock created in > > >> /var/www/var/run/mysql > > >> # ls > > /var/www/var/run/mysql/ > > >> mysql.sock > > >> > > >> I hard linked it to > > /var/run/mysql/ > > >> # > > >> ln /var/www/var/run/mysql/mysql.sock > > /var/run/mysql/mysql.sock > > >> > > >> I have > > >> downloaded adodb5 and placed it > > in /var/www, then adapted this code for > > >> test > > >> purpose > > >> <?php > > >> > > include('../adodb5/adodb.inc.php'); > > >> $conn = > > >> > > &ADONewConnection('mysql'); > > >> $conn->PConnect('localhost','cacti','cac > > > > > tipw','cactidb'); > > >> $sql = 'select > > >> hostname,description from host;'; > > >> > > $recordSet = &$conn->Execute($sql); > > >> if > > >> (!$recordSet) > > >> print > > $conn->ErrorMsg(); > > >> else > > >> while (!$recordSet->EOF) { > > >> print > > $recordSet->fields[0].' > > > '.$recordSet->fields[1].'<BR>'; > > >> > > >> > > $recordSet->MoveNext(); > > >> } > > >> $recordSet->Close(); > > >> $conn->Close(); > > >> > > ?> > > > > > >> > > >> > > >> I also > > >> copied /etc/my.cnf in /var/www/etc but changed > > the path for the client > > >> [client] > > >> socket = /var/run/mysql/mysql.sock > > >> > > >> > > >> The tests > > >> ------------- > > >> Case 1: The script is ran without any > > chroot consideration => Works > > >> # > > >> /usr/local/bin/php > > /var/www/htdocs/adotest.php > > >> 127.0.0.1 System1<BR>1.1.1.1 > > >> System2<BR> > > >> > > >> Case 2: The script is ran through the apache chrooted server > > >> using > > the url http://localhost/adotest.php => Works > > >> 127.0.0.1 System1 > > >> > > 1.1.1.1 > > >> System2 > > >> > > >> Case 3: The script is ran in command line and > > simulates a user > > >> running it in the chroot (/var/www) => Fails > > >> # > > /usr/sbin/chroot /var/www > > >> /bin/php /htdocs/adotest.php > > >> PHP Fatal > > error: Call to undefined function > > >> mysql_pconnect() in > > /adodb5/drivers/adodb-mysql.inc.php on line 383 > > >> Fatal > > >> error: Call to > > undefined function mysql_pconnect() in > > >> /adodb5/drivers/adodb-mysql.inc.php > > on line 383 > > >> Note that: the adotest.php > > >> script was able to include > > /adodb5/drivers/adodb-mysql.inc.php > > >> > > >> > > >> I thought > > >> that maybe there > > is something wrong with connecting to mysql > > >> inside the > > >> chroot so I > > copied the mysql client inside the chroot > > >> (/var/www) and the > > >> > > associated dynamic libraries. > > >> > > >> But everything worked when I tried to > > connect > > >> to the database > > >> # /bin/mysql -u cacti -p > > >> Enter password: > > >> Welcome to the MySQL > > >> monitor. Commands end with ; or \g. > > >> Your > > MySQL connection id is 6 > > >> > > >> > > >> I've > > >> searched for a long time and I > > have no clue why it's working when the > > >> script > > >> is executed by Apache > > and not working when executed in cli inside > > >> chroot > > >> /var/www. Does > > anyone have an idea on how to solve this ? > > >> > > >> If you want to test > > >> > > just download adodb5 and place it in /var/www > > >> > > > > > > http://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-514-for-php > > >> 5/adodb514.zip/download > > >> Place the php script adotest.php in > > /var/www/htdocs > > >> Thank you

