Quoting Mik J <mikyde...@yahoo.fr>: > > De : "richardtoo...@paradise.net.nz" <richardtoo...@paradise.net.nz> > > > > 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? (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 > <mikyde...@yahoo.fr>: > > > >> 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