Hi,
ich habe mit yum install unixODBC den "IBM i Access ODBC Driver" installiert.

odbcinst -j zeigt:

unixODBC 2.3.9
DRIVERS............: /QOpenSys/etc/odbcinst.ini
SYSTEM DATA SOURCES: /QOpenSys/etc/odbc.ini
FILE DATA SOURCES..: /QOpenSys/etc/ODBCDataSources
USER DATA SOURCES..: /home/RZPANGO/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

in /QOpenSys/etc/odbcinst.ini steht:

[IBM i Access ODBC Driver]
Description=IBM i Access ODBC Driver
Driver=/QOpenSys/pkgs/lib/libcwbodbc.so
Threading=0
DontDLClose=1
UsageCount=1


der relevante Teil der /QOpenSys/etc/odbc.ini:

### IBM provided DSN - do not remove this line ###
[*LOCAL]
Description = Default IBM i local database
Driver = IBM i Access ODBC Driver
System = localhost
UserID = *CURRENT
### Start of DSN customization


PHP ist die Community-Edition von Alan Seiden, alles aktuell:

PHP 8.4.12 (cli) (built: Aug 28 2025 13:39:14) (NTS gcc-6.bin (GCC) 6.3.0 ppc64)

Copyright (c) The PHP Group
Built by Seiden Group (Seiden PHP+)
Zend Engine v4.4.12, Copyright (c) Zend Technologies
with Zend OPcache v8.4.12, Copyright (c), by Zend Technologies


Wie die Ausgabe des unten stehenden PHP-Skripts zeigt, funktioniert mit SSL=0 auch alles, mit SSL=1 gibt es "Segmentation fault (core dumped)" aber diesen dump finde ich nicht.

Angeblich ist das selbst ausgestellte Zertifikat dem Datenbank- (und allen anderen) Servern zugeordnet. Und ich habe es auch im OSS unter /QOpenSys/etc/ssl/certs; ein wget funktioniert, und das täte es nicht, wenn da was falsch wäre.

$ php test_odbc.php
DSN=*LOCAL;SSL=0:CURRENT SERVER:XXX DATABASE:xxx JOB_NAME:583788/QUSER/QZDASOINIT USER:RZPANGO SYSTEM_USER:RZPANGO CURRENT USER:RZPANGO SESSION_USER:RZPANGO
-----
DSN=*LOCAL;SSL=1:Segmentation fault (core dumped)

PHP-Code:

function test($myDSN) {
  echo 
$myDSN ':';
  
$conn = @odbc_pconnect($myDSN);
  if (!
$conn) {
    die(
odbc_error().' '.odbc_errormsg()."\n");
  }
  
$mySql 'SELECT CURRENT SERVER "CURRENT SERVER",
                    DATABASE() DATABASE,
                    QSYS2.JOB_NAME,
                    STRIP(USER) "USER",
                    STRIP(SYSTEM_USER) "SYSTEM_USER",
                    STRIP(CURRENT USER) "CURRENT USER",
                    STRIP(SESSION_USER) "SESSION_USER"  FROM SYSIBM.SYSDUMMY1'
;
  
$result = @odbc_exec($conn$mySql);
  if (!
$result) {
    die(
odbc_error().' '.odbc_errormsg()."\n");
  }
  while (
$row odbc_fetch_array($result)) {
    
$line '';
    
$tab '';
    foreach (
$row as $fldnam => $fldval) {
        
$line .= $tab $fldnam ':' $fldval;
        
$tab ="\t";
    }
    echo 
$line "\n";
  }
}

$DSN "DSN=*LOCAL;SSL=0";
test($DSN);
echo 
"-----\n";
$DSN "DSN=*LOCAL;SSL=1";
test($DSN);

?> 
Was könnte der Grund dafür sein?

Im Browser bekomme ich einen 500er, und mehr steht dort auch nicht in den logs.