Hei!
Olen aloittelija tässä hommassa, joten hyvät neuvot ovat tarpeen.
Teen verryttelyharjoituksia erään oppaan (2003 painettu) avulla mutta koska opas on vanhempi kuin käyttämäni palikat (php, MySQL, Apache), seuraa ongelmia. Oppaan tekijän kotisivut ovat myös suljettu... *ärräpäitä*
Valmis PHP/html-koodi ei siis ota yhteyttä tietokantaan, mikä siinä voi mättää ja miten se korjataan? Tarkoitukseni olisi saada aikaan selaimen kautta hallittavat web-sivut ja yhdistellä ko. web-sivuun tietokantatoimintoja huvin ja oppimisen vuoksi.
Alusta: WinXP Pro
Versiot: Apache 2.0.52, PHP 5.0.2, MySQL 4.1
Olen aloittelija tässä hommassa, joten hyvät neuvot ovat tarpeen.
Teen verryttelyharjoituksia erään oppaan (2003 painettu) avulla mutta koska opas on vanhempi kuin käyttämäni palikat (php, MySQL, Apache), seuraa ongelmia. Oppaan tekijän kotisivut ovat myös suljettu... *ärräpäitä*
Valmis PHP/html-koodi ei siis ota yhteyttä tietokantaan, mikä siinä voi mättää ja miten se korjataan? Tarkoitukseni olisi saada aikaan selaimen kautta hallittavat web-sivut ja yhdistellä ko. web-sivuun tietokantatoimintoja huvin ja oppimisen vuoksi.
Alusta: WinXP Pro
Versiot: Apache 2.0.52, PHP 5.0.2, MySQL 4.1
Vastaukset 13
Vanhimmat
Ei yhteydenottaminen PHP:n avulla tietokantaan ole muuttunut pitkään aikaan, joten oppaasi tiedot ovat siltäosin oikeat.
*Valmis PHP/html-koodi ei siis ota yhteyttä tietokantaan, mikä siinä voi mättää ja miten se korjataan?*
Vika voi olla vaikka missä, joten kerroppas ensiksi minkä virheilmoituksen PHP sanoo, auttaa kummasti, sekä koodinpätkäkin.
Tutustuppas http://ohjelmointiputka.net/opas.php?tunnus=phpj8
No siinähän se onkin kun se ei valita mitään, selain ei vain näytä mitään. No manuaaleja lukiessani huomasin, että Apachesta mahdollisesti puuttuu pari riviä asetuksia, jos ne CGI-jutut nyt tähän kuuluvat?
Tuo opaskirja asennusohjeineen on siinä mielessä turha, että sen mukanaan antamat palikat tähän juttuun on enemmänkin suunniteltu w2k/ME koneille kuin XP:lle. Tuli kokeiltua.
Käyn kyllä tarkastamassa jokaisen linkkivinkin joita annatte ;) Kiitos!
Valittaa se, mutta sinulla on vain virheilmoitukset piilotettu ;)) Lisää turvallisuutta palvelimissa. Virheilmoitukset löytyvät error.log tiedostosta, se on apachen/logs hakemistossa.
Noista CGI-jutuista ei kannata välittää, sillä olet asentanut PHP:n moduulina. httd.conf tiedostoon laitoit varmaankin jotain tänsuuntasta?
LoadModule php5_module E:\serveri\php\php5apache2.dll
AddType application/x-httpd-php .php
Ja olet varmaankin siirtänyt php.ini tiedoston Apache/bin hakemistoon, niin muokkaa sieltä seuraavat rivit.
display_errors = Off vaiha tilalle On
Katso ettet muuta vahingossa riviä missä on ; edessä, sillä ne ovat kommentteja jne... joilla ei ole mitään vaikutusta PHP:n toimintaan.
Sekä poista ; merkki seuraavan rivin edestä
;extension=php_mysql.dll (lisää tarvittavan kirjaston/laajennuksen) jotta myslin käyttö onnistuu.
Sekä muuta allaolevaan oikea polku mistä laajennukset löytyvät
extension_dir = "\"
esim extension_dir = "e:\serveri\php\ext\"
Käynistä Apache uudestaan, nyt pitäisi näkyä selaimella virheilmoitukset, sekä mysli kirjasto asennettu, ellet sitä ole tehnyt.
Juu, error viestit toimii nyt, kiitos! Testaan vielä tuota tietokantayhteyttä uudemman kerran kun ehdin... ;)
sinne httpd tiedostoon pitää koodata jotain, mut ei muista et mitä.
Jostai linuxin sivuilta löytyi joku valmis koodinpätkä ja sitten copy/paste httpd tiedostoon.
google -> httpd
siis jos ongelma oli tää, voi tietysto olla mikä vaan.
niin no windows puolesta en osaa sanoa mitään, toi oli siis linuxille :)
Saattaa olla melkoisen tyhymä kysymys mutta heittää vielä(kin) tällaista herjaa:
Access denied for user 'ODBC'@'localhost'
Kuinkas minä tuon fiksaan? Tuo MySQL:n asennuswizardi kun "pakottaa" luomaan pääkäyttäjän ja sille salasanan. Joka paikassa sitten taas sanotaan, että "älä luo salasanaa".
Taidan luovuttaa tältä päivältä... Tuohan se ongelma taisi olla alunperinkin vaan kun en osannut etsiä sitä herjaa *huoh*
Toi tarkoittaa yksinkertaisesti, että sinulla ei ole oikeuksia tietokantaan. Laita scriptiin se tunnus ja salasana minkä teit asennuksen yhteydessä. Jos jätit salasanan tyhjäksi, niin jätä se scriptissäkin tyhjäksi. Pääkäyttäjä on root
Siitä on pitkän aikaa kun asensin myslin puhtaalle pöydälle, ja päivityksessä heitän aina vanhat taulut takas, jolloin tunnukset pysyy myös samana.
Eihän sitä salasanaa ole pakko luoda asennuksen yhteydessä, mutta se kannattaa luoda ihan turvallisuudenkin takia, vaikka kyse on vain koti/testikäytöstä.
Kai noissa ohjeissa kehotetaan olla luomatta salasanaa sentakia, et on helpompa testata scriptejä kun ei tartte salasana kirjoittaa sekä kantaa on helpompi hallita, ihan kuin olisi hirvittävän vaikeeta kirjoittaa salasana ;)
Koitappas näin
Suoraan PHP manuaalista varastettu ;)
No juu, ei toimi vieläkään. Poistin ODBC asennuksen (mitä ei olisi kai tarvittukaan) mutta silti heittää herjaa:
Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in C:\Program Files\Apache Group\Apache2\htdocs\test_mysql.php on line 5
Warning: mysql_create_db() [function.mysql-create-db]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Program Files\Apache Group\Apache2\htdocs\test_mysql.php on line 9
Warning: mysql_create_db() [function.mysql-create-db]: A link to the server could not be established in C:\Program Files\Apache Group\Apache2\htdocs\test_mysql.php on line 9
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\Apache Group\Apache2\htdocs\test_mysql.php on line 15
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\Apache Group\Apache2\htdocs\test_mysql.php on line 25
Access denied for user 'ODBC'@'localhost' (using password: NO)
Googletin ja löysin tästä linkistä http://internetmaster.com/installtutorial/ lisää ohjeita mutta ei silti pelitä. En tajua.
Miks sulla on ODBC käyttäjänä, se on root ellet ole tehnyt uutta.
Onkos sinulla varmasti uusin mysli 4.17?
Ja uusimmat ODBC-ajurit http://dev.mysql.com/downloads/connector/odbc/3.51.html
Joku asetus sulla on myslissä melkein varmaan väärin, sillä yhteys Apachelta mysliin onnistuu. Mitä tossa linkissä neuvotaan käyttäjien luomisesta, niin ennen sitä kannattaa testata root tunnuksella toimiiko kaikki oikein.
Poistappas Apache,PHP, mysli ja asennat jonkun kitin täältä http://hotscripts.com/PHP/Software_and_Servers/Installation_Kits/index.html mutta kiteissä tulee ylimäärästä paljon mukana joten kannattaa katsoa mitä tarttee.
Koitappas http://dev.mysql.com/doc/mysql/en/Old_client.html ohjeiden mukaan.
Eli se ei tue myslin uutta salausta.
Pistä ODBC:lle vanhan tyyppinen salasana kantaan:
mysql> UPDATE user SET Password = OLD_PASSWORD('salasana')
-> WHERE Host = 'localhost' AND User = 'ODBC';
mysql> FLUSH PRIVILEGES;
ja sitten yhdistät käyttäen salasanaa "salasana"
Itse tein noin, kun on liian laiska päivittämään clienttiä
No niin, se kit toimii toistaiseksi. Otin sellaisen kitin, jossa ovat vain kaikkein välttämättömimmät osat eli ApacheMySQLPHP. Leikin nyt sillä ja kokeilen myöhemmin (kun osaamista on ehkä karttunut) pystyttää kaiken ihan uudelleen palasista.
Tuo vanha client -kiertojuttu ei toiminut sekään mutta sehän on saattanut mennä vituralleen jo aikaisemmin (todennäköistä) palikoiden konfaamisessa. Harhauttaa kun toisille lisättäville riveille on hyvinkin tarkat paikat ja sitten joku PHPIniDir pitää "vain laittaa sinne jonnekin" ;)
No palaan taas kun on kysyttävää, kiitos avustanne ! =D