Tästä on ollut aiemminkinkin viestiä, mutta vastausta ei ole löytynyt.
Asensin Php 5.2 ja Apache 2.061
Polut ovat seuraavat:
F:/PHP
F:/PHP/ext
Vaikka laittaisin mitä kohtaan extension_dir, ilmoittaa aina, että "funktiota ei löydy". Kyseessä on mysql_connect.
Puolipisteet on poistettu kyseisen kirjaston edestä ja samoin tiedosto php_mysql.dll löytyy kyseisestä ext-hakemistosta.
Järjestelmä XP Home Edition, asennus Module.
Kokeile ensinnäkin asentaa uusimmat versiot kaikista ja kokeile ajaa php.exe. Valittaako, että ei voi ladata php_mysql.dll:ää? Itellä pyörii PHP 5.2.5, Apache 2.2.6 (2.2.8 uusin) ja MySQL 5.0.45, mysql_connnect löytyy. Käsin naittaminen on ollut Apassin kakkosversiossa aika ajoin hankalaa, enkä edes muista mitä kaikkea tein, että sain tämän kombinaation toimimaan. Tässä satunnaisia vinkkejä:
Apachen config:
# For PHP 5 do something like this: LoadFile "c:/php/php5ts.dll" LoadModule php5_module "c:/php/php5apache2_2.dll" <IfModule php5_module> <Location /> AddType text/html .php .phps AddHandler application/x-httpd-php .php AddHandler application/x-httpd-php-source .phps </Location> </IfModule> # configure the path to php.ini PHPIniDir "c:/php" # Default charset UTF-8 AddDefaultCharset utf-8
Löytyykö PHP-hakemistosta libmysql.dll? Jos ei, etsi se pecl4winistä tai PHP:n snapshoteista (pecl?), en muista tuleeko se oletuksena PHP:n asennuksessa mukana.
Edelleen on tämä sama vika:
Fatal error: Call to undefined function mysql_connect()
Laitoin uusimman apachen 2.28, ei hyväksynyt httpd.confissa ollenkaan tuon tiedoston php5ts.dll latausta.
Lisäsin nuo "Locatiot" mutta ei vaikuttanut.
Tiedostot libmysql.dll ja php_mysql.dll löytyvät. Tosin, pitääkö tuo libmysql.dll ladata jossakin?
Kokeilepa kopioida mysql\bin\libmysql.dll tuonne php:n hakemistoon. Ja perusongelmahan tässä on kai, että PHP:ssä ei toimi mysql? Vai tulostaako seuraava skripti jotain?
<?php $functions = get_defined_functions(); foreach( $functions[ 'internal' ] as $function ) { if ( strpos( $function, 'mysql' ) === 0 ) echo "{$function}\n"; } ?>
Koneellani ei ole mysqliä, se on ulkoisella palvelimella.
Tiedosto libmysql.dll on php-hakemistossa. Vika on juuri tuossa, että ei löydä mitään php-kirjastoja. Sama pätee kaikkiin muihinkin ladattaviin kirjastoihin, image_create herjaa samalla tavalla.
Tämänhetkiset asetukset:
extension_dir = "f:/php/ext" extension=php_msql.dll
Kokeiltuja mm:
extension_dir = "f:\php\ext" extension_dir = "F:/php/ext" extension_dir = "/php/ext" extension_dir = "./ext" extension_dir = "/ext"
Itsellä on tuo "./ext" ja toimii, PHP 5.2.5. Löytyyhän PATH-ympäristö-/käyttäjämuuttujasta "f:\php"?
Kun siis ajat php.exen niin se sanoo:
PHP Warning: PHP Startup: Unable to load dynamic library './ext\php_mysql.dll' - in Unknown on line 0
?
tsuriga kirjoitti:
Itsellä on tuo "./ext" ja toimii, PHP 5.2.5. Löytyyhän PATH-ympäristö-/käyttäjämuuttujasta "f:\php"?
Itselläni on sama versio ja tuo ./ext ei toimi. Millä rivillä ja minkä näköisenä pitää olla tuo mainitsemasi PATH-ympäristö-/käyttäjämuuttuja?
Joo, kyllä sieltä löytyy tuo kohta.
virhelogi:
PHP Warning: PHP Startup: Unable to load dynamic library './ext\\php_gd2.dll' - M\xe4\xe4ritetty\xe4 osaa ei l\xf6ydy.\r\n in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library './ext\\php_mysql.dll' - M\xe4\xe4ritetty\xe4 osaa ei l\xf6ydy.\r\n in Unknown on line 0
Mistä mahtaa johtua, että sieppaa tuon ./ext loppuun kaksi \\ kenoviivaa? Virhe johtuu ilmeisesti siitä. Minulla ei ole noita kenoviivoja yhtään laittamissani asetuksissa.
Tyhjensin error.login ja testasin, mitä tallentuu, kun käynnistää apachen
Starting the Apache2.2 service The Apache2.2 service is running. to load dynamic library './ext\\php_gd2.dll' - M\xe4\xe4ritetty\xe4 osaa ei l\xf6ydy.\r\n in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library './ext\\php_mysql.dll' - M\xe4\xe4ritetty\xe4 osaa ei l\xf6ydy.\r\n in Unknown on line 0 [Mon Jan 28 21:22:51 2008] [notice] Apache/2.2.8 (Win32) PHP/5.2.5 configured -- resuming normal operations [Mon Jan 28 21:22:51 2008] [notice] Server built: Jan 18 2008 00:37:19 [Mon Jan 28 21:22:51 2008] [notice] Parent: Created child process 5088 PHP Warning: PHP Startup: Unable to load dynamic library './ext\\php_gd2.dll' - M\xe4\xe4ritetty\xe4 osaa ei l\xf6ydy.\r\n in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library './ext\\php_mysql.dll' - M\xe4\xe4ritetty\xe4 osaa ei l\xf6ydy.\r\n in Unknown on line 0 [Mon Jan 28 21:22:51 2008] [notice] Child 5088: Child process is running [Mon Jan 28 21:22:51 2008] [notice] Child 5088: Acquired the start mutex. [Mon Jan 28 21:22:51 2008] [notice] Child 5088: Starting 64 worker threads. [Mon Jan 28 21:22:51 2008] [notice] Child 5088: Starting thread to listen on port 80.
Nämä tallentuu virheisiin, vaikka yhtään kirjastoa ei olisi php.ini tiedostosta ladattu:
Starting the Apache2.2 service The Apache2.2 service is running. ] Apache/2.2.8 (Win32) PHP/5.2.5 configured -- resuming normal operations [Mon Jan 28 21:30:16 2008] [notice] Server built: Jan 18 2008 00:37:19 [Mon Jan 28 21:30:16 2008] [notice] Parent: Created child process 556 [Mon Jan 28 21:30:16 2008] [notice] Child 556: Child process is running [Mon Jan 28 21:30:16 2008] [notice] Child 556: Acquired the start mutex. [Mon Jan 28 21:30:16 2008] [notice] Child 556: Starting 64 worker threads. [Mon Jan 28 21:30:16 2008] [notice] Child 556: Starting thread to listen on port 80.
Mitä nuo tarkoittaa ja onko ne kuinka merkittäviä asian kannalta?
Nuo kolmannen koodilootan tekstit ovat vain huomioita siitä, että servu on käynnistetty. En löytänyt ongelmaasi etsimällä oikein mitään spesifiä, jossakin ehdotettiin Windowsin käynnistämistä uudelleen jos vaikka Apache ei lataisi ympäristömuuttujia uudelleen tms.tms. Toisekseen voisit katsoa phpinfolla, että onko siellä jotain outoa Apachen asetuksissa.
En kyllä vieläkään ole saanut selville, että onko tämä Apachen vai PHP:n ongelma kun et ole missään vaiheessa kertonut, että oletko ajanut php.exen vai ajatko Apachen httpd.exen, joka puolestaan ajaa php.exeä.
Php.exe ei ilmoita mitään. Kun sitä klikkaa, aukenee musta ruutu, jossa ei ole mitään. Mikään, mitä kyseiseen ruutuun kirjoittaa, ei toimi. En tiedä, pitäisikö tuosta pystyä käyttämään php:ta.
Phpinfo ilmoittelee tällaista: http://88.193.53.78/ Tämä on auki nyt vain lyhyen tovin tältä päivältä.
Se vaan tarkottaa, että PHP lataa ne moduulit OK, eli Apachen ongelma. Ei siihen pystykään kirjottamaan mitään, vaan sille joko annetaan parametrina käsiteltävän tiedoston nimi tai sitten käynnistetään tulkki interaktiivisesti parametrilla -a
. Sen voi sulkea Ctrl+C-yhdistelmällä. Phpinfosta en löytänyt mitään asiaan liittyvää. Onko sulla missään poluissa (httpd.conf, php.ini, ympäristö-/käyttäjämuuttujat) käytetty noita kenoviivoja? Ja kokeile ressuttaa kone ihan huvin ja urheilun vuoksi, mulla alkaa ideat loppua. Kuulostaa aika purkalta, mutta joku ehdottaa ntwdblib.dll-tiedoston laittamista system32-kansioon.
tsuriga kirjoitti:
En löytänyt ongelmaasi etsimällä oikein mitään spesifiä, jossakin ehdotettiin Windowsin käynnistämistä uudelleen jos vaikka Apache ei lataisi ympäristömuuttujia uudelleen tms.tms.
Tämä konsti auttoi. Käynnistin koneen uuteen päivään ja ongelmasta ei tällä hetkellä tule näkyviin merkkiäkään.
Toimii.
Aihe on jo aika vanha, joten et voi enää vastata siihen.