webForumDet fria alternativet

Webbhotell saknar mysql pdo-driver?

4 svar · 511 visningar · startad av axed

axedMedlem sedan nov. 200136 inlägg
#1

Hej,

Försöker lägga över en del sidor till ett webbhotell. Men dom verkar bara ha stöd för slqlite2 för pdo-anslutningar. Iaf är det allt som står under "PDO" om jag kör phpinfo()-funktionen på sidan. Jag vill/måste ha stöd för mysql också. Kan man fixa detta själv på något sätt? Har försökt ladda drivrutinen genom att skriva dl(php_pdo_mysql.dll); i mitt script men det funkar inte.

TulorkMedlem sedan aug. 2004903 inlägg
#2

Hör med webbhotellet

Vet inte om man kan fixa sådant själv.. tror inte det. IT-pastorn lär skriva här snart ändå, då får du dina svar :)

stevenetMedlem sedan juni 20001 251 inlägg
#3

Saxat ifrån manualen, under *nix bör filändelsen vara .so. Notera att det inte fungerar under safe mode.

// Or, the PHP_SHLIB_SUFFIX constant is available as of PHP 4.3.0
if (!extension_loaded('pdo_mysql')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'pdo_mysql.' . PHP_SHLIB_SUFFIX);
}
?>
itpastornMedlem sedan feb. 2007278 inlägg
#4

Tulork skrev:

IT-pastorn lär skriva här snart ändå, då får du dina svar :)

Nja, ibland är jag bortrest och just nu är jag bara extra aktiv eftersom det är sommarlov, så lita inte på att jag svarar på allt. ;)

Stevenets lösning kan fungera - om webbhotellet tillåter dl() och om modulen finns där den skall - men det hade inte jag tillåtit om jag drev ett webbhotell.

Att lämna dl() till användares gottfinnande ger mig rysningar ur säkerhetssynpunkt. Kort sagt: Om det fungerar så skulle jag byta webbhotell till ett mer kompetent! Ett bra webbhotell har alltså avaktiverat dl-funktionen via "enable_dl" inställningen i php.ini.

Å andra sidan så bör ett gott webbhotell svara med en snabb aktivering av pdo_mysql via php.ini (och omstart) på en enkel fråga. Detta är något som de har kontroll över och som inte skapar några säkerhetshål värda namnet. Det finns inga skäl för dem att vägra.

Lite kommentarer om dl() funktionen och noterna på manualsidan http://php.net/dl

Note: dl() is not supported in multithreaded Web servers. Use the extensions statement in your php.ini when operating under such an environment. However, the CGI and CLI build are not affected !

Multitrådsläge är ännu ytterst ovanligt. PHP är "thread safe" men många tillägg, såsom POSIX-regular expressions, är det inte.

Note: As of PHP 5, the dl() function is deprecated in every SAPI except CLI. Use Extension Loading Directives method instead.

CLI innebär att man kör PHP från kommandoraden. Det är just av säkerhetsskäl utvecklarna valt att nedvärdera kommandot. "Extension Loading Directives" är detsamma som att styra via php.ini.

Note: Since PHP 6 this function is disabled in all SAPIs, except CLI, CGI and embed.

Som synes - det mesta som är nedvärderat i PHP 5 kommer sluta finnas i PHP 6. Under en övergångsfas kommer måhända somliga webbhotell erbjuda PHP 4 eller 5 som modul och version 6 som CGI, men det är ingen grund att utveckla sina program för.

Note: This function is disabled in safe mode.

safe_mode körs på somliga webbhotell, men funktionen är urkass! Ännu ett skäl att byta webbhotell om så skulle vara fallet. PHP 6 kommer sakna safe_mode, liksom register_globals och magic_quotes - vi kommer inte att göra det! De tre sämsta ideerna i PHP:s historia har äntligen kommit till vägs ände.

axedMedlem sedan nov. 200136 inlägg
#5

Har mailat webbhotellet och frågat om dom kan aktivera mysql-stöd också. Får hoppas på det bästa, annars förlorar dom nog mig som kund. Tack för svaren.

129 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)