Hi,
meine Frage würde hier in verschiedene Boards passen ich habe einfach mal dieses genommen. Hoffe das ist ok.
Gegeben:
Amazon Claud Server mit
CentOS7
Apache 2.4.6
PHP 7.3.22
ich muss mit PDO eine Verbindung zu einem MSSQL Datenbank Server aufbauen. Dafür habe ich php-odbc und FreeTDS installiert.
odbc.ini:
[ESG_PROD]
Description = ESG Production Server
Driver = FreeTDS
Server = myDBServer.url
Port = 1433
Database = TRMworkbench
TDS_Version = 8.0
Dazu folgendes PHP testscript
Rufe ich dieses script über einen Browser auf, dann bekomme ich eine Verbbingung und kann aus dieser auch daten lesen (mit anderem Script bereits probiert). Hier funktioniert also alles einwandfrei.
Ich muss dieses Script aber auch über einen cronJob starten. Dafür habe ich dann php-cli installiert und versucht
php -f scriptname.php
Hier bekomme ich dann eine Exception:
Error connecting to eSG: SQLSTATE[42000] SQLConnect: 18456 [unixODBC][FreeTDS][SQL Server]Login failed for user 'User'
Dabei kommt dieser Verbindgunsversuch überhaupt nicht beim Server an. Bekomme ich beim Versuch über den Browser entsprechende Ausgaben im Log des Datenbank Servers, so gibt es bei dem fehlschlagenden Versuch gar keine Logs. Der Fehler muss also schon vorher irgendwo zwischen PHP-FreeTDS und ODBC passieren.
Nur wo?
Ich habe bereits verglichen. Beide male wird die gleiche php.ini benutzt und es werden die gleichen Module geladen.
Im Moment bin ich ratlos wie ich überhaupt weiter debuggen soll.
Eventuell hatte ja jemand von euch schonmal so ein Problem und kann helfen?
Gruß
Thallius
meine Frage würde hier in verschiedene Boards passen ich habe einfach mal dieses genommen. Hoffe das ist ok.
Gegeben:
Amazon Claud Server mit
CentOS7
Apache 2.4.6
PHP 7.3.22
ich muss mit PDO eine Verbindung zu einem MSSQL Datenbank Server aufbauen. Dafür habe ich php-odbc und FreeTDS installiert.
odbc.ini:
[ESG_PROD]
Description = ESG Production Server
Driver = FreeTDS
Server = myDBServer.url
Port = 1433
Database = TRMworkbench
TDS_Version = 8.0
Dazu folgendes PHP testscript
try
{
$con = new PDO("odbc:" ."ESG_PROD", "user", password"");
if(!$con)
{
echo "Error connection to eSG<br>";
}
die("Connection established...");
}
catch (Exception $e)
{
die("Error connecting to eSG: ".$e->getMessage());
}
{
$con = new PDO("odbc:" ."ESG_PROD", "user", password"");
if(!$con)
{
echo "Error connection to eSG<br>";
}
die("Connection established...");
}
catch (Exception $e)
{
die("Error connecting to eSG: ".$e->getMessage());
}
Ich muss dieses Script aber auch über einen cronJob starten. Dafür habe ich dann php-cli installiert und versucht
php -f scriptname.php
Hier bekomme ich dann eine Exception:
Error connecting to eSG: SQLSTATE[42000] SQLConnect: 18456 [unixODBC][FreeTDS][SQL Server]Login failed for user 'User'
Dabei kommt dieser Verbindgunsversuch überhaupt nicht beim Server an. Bekomme ich beim Versuch über den Browser entsprechende Ausgaben im Log des Datenbank Servers, so gibt es bei dem fehlschlagenden Versuch gar keine Logs. Der Fehler muss also schon vorher irgendwo zwischen PHP-FreeTDS und ODBC passieren.
Nur wo?
Ich habe bereits verglichen. Beide male wird die gleiche php.ini benutzt und es werden die gleichen Module geladen.
Im Moment bin ich ratlos wie ich überhaupt weiter debuggen soll.
Eventuell hatte ja jemand von euch schonmal so ein Problem und kann helfen?
Gruß
Thallius
Kommentar