#16591: php5 > 5.2.0_0 snmpget error via apache2 ok via cli ----------------------------------+----------------------------------------- Reporter: news@braendle-net.de | Owner: macports-tickets@lists.macosforge.org Type: defect | Status: new Priority: Normal | Milestone: Port Bugs Component: ports | Version: 1.6.0 Keywords: php5 snmpget | Port: php5 > 5.2.0_0 ----------------------------------+----------------------------------------- Hi there, just stepped into a strange problem with snmpget in php5 build on OSX 10.4.11. If i try to do something like that (examples from the nedi port): {{{ <?php //=============================== // SNMPget utility. //=============================== session_start(); require_once ('libmisc.php'); require_once ("../languages/$_SESSION[lang]/gui.php"); if( !preg_match("/net/",$_SESSION['group']) ){ echo $nokmsg; die; } $_GET = sanitize($_GET); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=<?=$charset?>"> <link href="../themes/<?=$_SESSION[theme]?>.css" type="text/css" rel="stylesheet"> </head> <body> <h1><?=$_GET['ip']?> (<?=$_GET['c']?>)</h1> <div class="net1"> <h2><img src="../img/32/brgt.png" hspace="10"> <?=$_GET['oid']?></h2> </div> <div class="net2 code"> <? if($_GET['ip'] and $_GET['c'] and $_GET['oid']){ echo snmpget($_GET['ip'],$_GET['c'],".$_GET[oid]"); }else{ echo "<h4>No IP, community or OID?</h4>"; } ?> </div> </body> </html> }}} via apache2 i get an error So i googled a bit and found two similar problems in: [http://bugs.php.net/bug.php?id=32680] and [http://bugs.php.net/bug.php?id=38613&edit=1] Then I tried to get any results by checking the same funktion in the cli: {{{ <?php //=============================== // SNMPget utility. //=============================== session_start(); require_once ('libmisc.php'); require_once ("../languages/deutsch/gui.php"); #if( !preg_match("/net/",$_SESSION['group']) ){ # echo $nokmsg; # die; #} $_GET['ip']=$argv[1]; $_GET['c']=$argv[2]; $_GET[oid]=$argv[3]; $_GET = sanitize($_GET); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=<?=$charset?>"> <link href="../themes/<?=$_SESSION[theme]?>.css" type="text/css" rel="stylesheet"> </head> <body> <h1><?=$_GET['ip']?> (<?=$_GET['c']?>)</h1> <div class="net1"> <h2><img src="../img/32/brgt.png" hspace="10"> <?=$_GET['oid']?></h2> </div> <div class="net2 code"> <? if($_GET['ip'] and $_GET['c'] and $_GET['oid']){ echo snmpget($_GET['ip'],$_GET['c'],".$_GET[oid]"); }else{ echo "<h4>No IP, community or OID?</h4>"; } ?> </div> </body> </html> }}} And if I call it like that: php snmpget2.php 172.16.xxx.xxx ******** 1.3.6.1.2.1.47.1.1.1.1.11.1 i get a valid output: {{{ <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <link href="../themes/.css" type="text/css" rel="stylesheet"> </head> <body> <h1>172.16.xxx.xxx (******)</h1> <div class="net1"> <h2><img src="../img/32/brgt.png" hspace="10"> 1.3.6.1.2.1.47.1.1.1.1.11.1</h2> </div> <div class="net2 code"> STRING: "SAL0803SYDB"</div> </body> </html> }}} So I thinks this proofs, that the snmpget is ok but fails via apache. So i tried to get rid of that problem and found a dirty solution. {{{ ################################################################################ 1. get the actual php5 source: medianet@intermac1:/opt/local/var/macports/build$ sudo port -v fetch php5 medianet@intermac1:/opt/local/var/macports/build$ sudo port -v checksum php5 ---> Verifying checksum(s) for php5 ---> Checksumming php-5.2.6.tar.bz2 ################################################################################ 2. patch snmp.c : ! Could lead into another problem!! see : [http://bugs.php.net/bug.php?id=38613&edit=1] pwd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_www_php5/work/php-5.2.6/ext/snmp diff snmp.c snmp.c.orig 223c223 < /* snmp_shutdown("snmpapp"); */ ---
snmp_shutdown("snmpapp");
################################################################################ 3. compile php5 : medianet@intermac1:~$ sudo port clean php5 ---> Cleaning php5 medianet@intermac1:~$ sudo port -v patch php5 +apache2+macosx+mysql5+snmp medianet@intermac1:~$ sudo port -v configure php5 +apache2+macosx+mysql5+snmp medianet@intermac1:~$ sudo port -v build php5 +apache2+macosx+mysql5+snmp ################################################################################ 4. ! install only works after deaktivating the old version manually: medianet@intermac1:~$ sudo port -v install php5 +apache2+macosx+mysql5+snmp ---> Activating php5 5.2.6_1+apache2+macosx+mysql5+snmp Error: Target org.macports.activate returned: Image error: Another version of this port (php5 @5.2.0_0+apache2+darwin_8+macosx+mysql5+snmp) is already active. Warning: the following items did not execute (for php5): org.macports.activate Error: Status 1 encountered during processing. medianet@intermac1:~$ sudo port deactivate php5 @5.2.0_0+apache2+darwin_8+macosx+mysql5+snmp ---> Deactivating php5 5.2.0_0+apache2+darwin_8+macosx+mysql5+snmp medianet@intermac1:~$ sudo port -v install php5 +apache2+macosx+mysql5+snmp ---> Activating php5 5.2.6_1+apache2+macosx+mysql5+snmp ---> Cleaning php5 ---> Removing build directory for php5 medianet@intermac1:~$ port installed php5 The following ports are currently installed: php5 @5.2.0_0+apache2+darwin_8+macosx+mysql5+snmp php5 @5.2.6_1+apache2+macosx+mysql5+snmp (active) }}} Maybe anyone can find a better solution Greetings from Germany Jürgen -- Ticket URL: <http://trac.macports.org/ticket/16591> MacPorts <http://www.macports.org/> Ports system for Mac OS