Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Apache, PHP, MySQL

Sivun loppuun

MIB [06.08.2009 11:53:54]

#

Heippa!

Tässä isän kanssa sähköpostia läheteltiin toisillemme, ja hän tarjoutui ostamaan tälläisen serverikoneen minulle ja muille käyttöön. Minun mielestäni tämän koneen paras asia olisi tietenkin HTTP-serveri. No, tietenkin se sinne laitetaan. Itse kysymykseen: Kannattaako asentaa Apache, PHP ja MySQL erikseen, vai jokin valmis paketti? Itse kannattaisin kaikkia erikseen, mutta en ole kertaakaan saanut vielä MySQL:ää toimimaan serverilläni erikseen. Olisiko jollakin jokin hyvä ohje, miten saisin configuroitua PHP:n toimimaan MySQL:n kanssa? Jotkut sanovat, että ei sitä tarvitsisi konfuguroida, mutta ei se minulla niin ainakaan ole mennyt. Joitan ohjeita olen löytänyt, mutta kun ne ovat vuodelta ~2002, niin että en usko niin vanhoja jakeluversioita löytyvän näistä ohjelmista.

Metabolix [06.08.2009 12:07:52]

#

Jos aiot oikeasti palvelinta pitää, voi olla hyvä idea asentaa siihen Linux, koska se on palvelimena paljon joustavampi kuin Windows. Kannattaa myös harkita muita mahdollisuuksia kuin Apachea, esimerkiksi lighttpd:tä. Lisäksi on hyvä osata sen verran englantia, että kykenee lukemaan ajantasaisia ohjeita, joita löytyy Googlella hyvinkin triviaaleilla hakusanoilla (Apache PHP MySQL howto).

Jos et aio Linuxia opetella tai koet, että palvelimen asetusten teko ilman tarkkoja ohjeita on hankalaa, asenna valmis paketti (esim. XAMPP).

MIB [06.08.2009 12:15:35]

#

Windowsin aijon siinä pitää, kyllä sen verran pitää raataa, että saa sen MySQL:n. Nähtävästi tuo uusin PHP:n versio on puuttellinen (?) kun ei sisällä php5apache2_2.dll tiedostoa, josta Apache herjaa.

Edit. Kyllä se siellä onkin, mutta Apache ei "löydä" sitä. Siihen on tullut jotain uusia päivityksiä, jotka nähtävästi ovat vähän puutteellisia.
Ja mikään Xampp ei mene 64 bittiseen Win Xp Professionaliin. Tekee vain erroria.

Ps. Kokeilin myös Wampp serveriä, mutta tämäkään ei oikein ollut hyvä... Xampplite on ollut ihan ok, mutta se ei pyöri minulla tässä toisessa koneessa.

Merri [06.08.2009 13:05:13]

#

WampServer on minusta paljon parempi kuin XAMPP, jälkimmäisen ongelma ainakin yhdessä vaiheessa oli liiallinen avoimuus. Minulla on WampServer palvellut hyvin jo kai pian kaksi vuotta. Se jättää pois kaikki vaikeat asentelut, päivittämiset on triviaaleja (asenna uusi versio päälle ja se vaan toimii) ja konfigurointia on yksinkertaistettu sopivasti, vaikka edelleen httpd.conf kannattaa opetella hyvin. Palvelut saa käynnistymään koneen mukana, käy vaan palvelut törkkäämässä automaatille. Ja XP:ssä tietty voi vaan heittää WampServerin käynnistymään koneen mukana, Windows 7:ssä tämä taas ei onnistu ihan yhtä helposti oikeusongelmien takia.

Vaikka erillisasentelut voikin olla hyvä osata, ei niitä ole mitenkään pakko tehdä. Voi keskittyä enemmän siihen olennaiseen eli palvelujen säätämiseen omaan käyttöön toimiviksi ja päivittämään niitä sivustoja.

MIB [06.08.2009 13:09:10]

#

Jos asennan Wampin, niin miten saan .htaccess:n toimimaan? Osaatko auttaa?

Lebe80 [06.08.2009 13:40:50]

#

Melko varmasti toimii suoraan. Katsot vain että mod_rewrite on julkaistu.

MIB [06.08.2009 13:43:03]

#

Katson, että on julkaistu? Siis miten? En oikein ole perehtynyt näihin asioihin.. Valitettavasti.

Ps. Tuo ainakin herjaa niin paljon koodistani, että menee viikkoja korjata kaikki toimimaan, missä käytän MySQL/session_start()

Xampplite lakkasi toimimasta serverillä, tuossa aamulla. Kaikki kuvat näkyvät hakemistoissa netin kautta, mutta vain kuvat. php sun muihin tiedostoihin ei pääse. IE sanoo "Internet Explorer ei voi näyttää WWW-sivua"

Merri [06.08.2009 15:42:59]

#

WampServerin tehtäväpalkin kuvakkeen kautta pääsee katsomaan mitä kaikkia moduuleja on kustakin komponentista käytössä. Esim. Apacheen voi kytkeä tuon mod_rewriten päälle suoraan valikon kautta, samoin PHP:n moduuleja voi laittaa päälle - ja näitä yleensä tarvitsee laittaa, tietoturvan takia niitä on minimaalisesti käytössä oletuksena (eli siis hyvä juttu). Tarpeellisten moduulien selvittäminen on helppoa, muistaakseni ihan suoraan näkee mm. php.netissä mistä moduulista kukin toiminto löytyy. Ei tosiaan mene viikkoja korjaamisiin, muutama klikkaus todennäköisesti riittää (nimim. kokemusta on).

(Viestejä voi poistaa Muokkaa-linkin takaa itsekin. Mod. huom.)

MIB [06.08.2009 15:50:28]

#

Selvä. Pystyykö myös sitä säätämään, että tämä ei herjaa siitä, että jos on kaksi session_start()-funktiota? :D Se ei ole kovin oleellinen asia, mutta kuitenkin.

Ps. Error: "Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 24576 bytes) in C:\wampserver\www\uusi_ulkoasu\logincheck.php on line 20"
Rivi 20: header("Location: index.php?act=admin");

Merri [06.08.2009 16:24:01]

#

Mitäs ihmettä oikein teet että 128 Mt muistia ei riitä toiminnolle?

Ja joo, virheiden ilmoittamista voi säätää, muuttaa vaan php.ini:ä ja sen jälkeen käynnistää Apachen uudelleen (sama juttu aina kun muutat jotain tekstitiedostoa, palvelu pitää käynnistää uudelleen). Pikagooglella laita error_reporting: https://www.php.net/manual/en/errorfunc.constants.php

MIB [06.08.2009 18:18:04]

#

128 megaa!?! Voihan... Tuossa ei kyllä ole niin paljoa mitään, että käyttäisi noin paljon. Tuolta riviltä löytyy tuo header, eikä mitään muuta.

Metabolix [07.08.2009 08:55:12]

#

MIB kirjoitti:

Tuolta riviltä löytyy tuo header, eikä mitään muuta.

Ei tuolla rivillä vaan yhteensä skriptissä ennen tuota riviä. Tuossa kohti vain varataan ne viimeiset tavut, jotka menevät rajan yli. Ja asiasta on turha väittää vastaan, koska virheilmoitus on vedenpitävä todiste siitä, että näin tosiaan on.

Merri [07.08.2009 13:03:48]

#

PHP:ssa tosin virheilmoitukset voivat joskus olla hyvin mystisiä, todellinen virhe saattaa oikeasti sijaita jossain paljonkin aiemmin. On sattunut semmoisiakin hauskuuksia että ihan eka rivi sisälsi virheen, joka sitten aiheutti virheen vasta jossain rivillä 300. Siinä meni hetki etsiä se virhe.

MIB [07.08.2009 13:16:57]

#

Metabolix kirjoitti:

MIB kirjoitti:

Tuolta riviltä löytyy tuo header, eikä mitään muuta.

Ei tuolla rivillä vaan yhteensä skriptissä ennen tuota riviä. Tuossa kohti vain varataan ne viimeiset tavut, jotka menevät rajan yli. Ja asiasta on turha väittää vastaan, koska virheilmoitus on vedenpitävä todiste siitä, että näin tosiaan on.

Vanhalla serverillä muistia oli käytössä 16 megaa. Nämä koodit eivät kertaakaan mennyt yli. Tuo vain antaa jotain päättömiä erroreita.

Edit. Mitkä moduulit pitää sallia Wampserverissä että saa .htaccess:n toimimaan?

Merri [07.08.2009 15:41:35]

#

Näin ulkomuistista mod_access voisi olla kova vaihtoehto. En tosin muista joutuneeni säätämään .htaccessia erikseen päälle, mutta se saattaa johtua ihan vaan WampServerin versioissa olevista eroista.

MIB [07.08.2009 15:47:44]

#

Listassa ei näytä olevan tuollaista moduulia.

Merri [07.08.2009 16:47:28]

#

Minulla on moduulit säädetty tämänlaisesti:

LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule dumpio_module modules/mod_dumpio.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule filter_module modules/mod_filter.so
LoadModule headers_module modules/mod_headers.so
#LoadModule ident_module modules/mod_ident.so
#LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule status_module modules/mod_status.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so

Ja .htaccess muistaakseni myös toimii, en ole vähään aikaan värkännyt oman palvelimen puolella.

Jotkut jututhan .htaccessissa toimivat vain jos myös jokin toinen moduuli on päällä (kuten rewrite).

MIB [17.08.2009 11:18:09]

#

Tuo .htaccess suojaus kiinnostaisi tällä hetkellä, mutta se ei oikein tunnu toimivan. Minkäs moduulin se vaatii? Mielestäni olen kaikki .htaccess:ään liittyvät moduulit sallinut.

Ps. Myös pitäisi saada https:// toimimaan, eikös tämä ole ssl? Sallin ssl_modulen jo, mutta ei toimi.

JP_94 [17.08.2009 18:21:20]

#

Mitä olet määrittänyt AllowOverride-direktiivin arvoksi Apachen httpd.conf-tiedostossa? Nimittäin jos AllowOverride on None, niin .htaccess-tiedostot eivät toimi ollenkaan. Htaccess-salasanasuojausta varten pitää olla vähintään määritys AllowOverride AuthConfig. Jos haluat, että kaikkia .htaccess-tiedostojen toimintoja voi käyttää, laita AllowOverride All.
Saattaa kyllä olla ihan oletuksena tuo All, mutta varma en asiasta ole.
Kannattaa myös tarkistaa, että .htaccess tiedostossa on kaikki tarpeellinen ja ettei ole kirjoitus yms. virheitä.

MIB [27.08.2009 08:36:20]

#

Vielä vähän näiden ohjelmien asennuksesta.

Serverillä on asennettuna Apache 2.2.13 ja PHP:n uusin versio. Nämä toimivat keskenään mainiosti. Sitten koitetaan asentaa MySQL: Sen asennus pysähtyy virheeseen: "Could not start the service MySQL. Error: 0", eli serveriä minkä koitin asentaa, ei voitu käynnistää. Mistä tuo johtuu?
MySQL on ihan oikea, 32 bittiselle. Tuohon se ennenkin on jäänyt.

Teuro [27.08.2009 09:09:58]

#

Pitäähän mysql konfiguroida toimimaan, eihän sitä muutoin oikein voi käytellä. php.ini tiedostosta tulee sallia mysql laajennos olisko ollut php_mysql.dll tjsp lienee oletusarvoisesti kommentoituna (; merkki edessä). Lisäksi apachen juureen tulee liittää apache_handler2_2.dll, jotta apache osaa käytellä tuota mysql:ä.

Lisäksi kannattaa katsoa mikä php.ini tiedosto ladataan käyttöön. Tämän saa selville tekemällä yksinkertaisen tiedoston, jossa on seuraava koodi:

<?php
echo phpinfo();
?>

Tällä varmistetaan, että muutokset tehdään oikeaan tiedostoon, ettei turhautuminen iske kesken kaiken. Lisäksi apache tulee sammuttaa ja käynnistää uudelleen, jotta muutokset tulevat voimaan.

Tässä vielä linkki oppaasen, joka tuntuu nopeasti luettuna aika hyvältä. Joskus voi myös laajennospaketti /(ext/) olla rikkinäinen, joten kannattaa ladata uusi laajennos ja purkaa ne suoraan oikeaan kansioon.

Grez [27.08.2009 09:33:40]

#

MIB kirjoitti:

Ps. Myös pitäisi saada https:// toimimaan, eikös tämä ole ssl? Sallin ssl_modulen jo, mutta ei toimi.

Tuolta lukaiset lisää http://httpd.apache.org/docs/2.0/ssl/

Tarvitset ainakin sertifikaatin ja httpd.confiin täytyy määritellä SSL/TLS käyttöön.

MIB [27.08.2009 10:03:22]

#

Ei tuo asennusopas auttanut vieläkään. :/ Asensin Apachen installerilla, joka konfiguroi sen itse toimimaan. http://localhost osoitteesta tuli se Apachen "It works!" teksti, joten Apache toimi. Sitten otin PHP installerin, ja asensin sen. Se alkoi toimimaan Apachen kanssa, joten kaksi asiaa oli korjattu. Sitten asensin MySQL:n, sen asennus onnistui. Sitten ohjeiden mukaan phpinfo():n pitäisi tulostaa tekstiä MySQL:ään liittyen, jota se ei tehnyt. Joten se ei toimi. Eikös sen MySQL installerin olisi hyvä itse konfiguroida itsensä?
No, kuitenkin: Mikä teksti minun pitää kirjittaa httpd.conf tiedostoon, jotta saan MySQL:n pelaamaan Apachen kanssa? Entä php.iniin?

PHP.inissä ei ole tuollaista kuin Teuro sanoi. Tässä tämä MySQL kohta sieltä:

[MySQL]
; Allow or prevent persistent links.
mysql.allow_persistent = On

; Maximum number of persistent links.  -1 means no limit.
mysql.max_persistent = -1

; Maximum number of links (persistent + non-persistent).  -1 means no limit.
mysql.max_links = -1

; Default port number for mysql_connect().  If unset, mysql_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order).  Win32 will only look
; at MYSQL_PORT.
mysql.default_port =

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).
mysql.default_host = localhost

; Default user for mysql_connect() (doesn't apply in safe mode).
mysql.default_user =

; Default password for mysql_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
; and reveal this password!  And of course, any users with read access to this
; file will be able to reveal the password as well.
mysql.default_password =

; Maximum time (in seconds) for connect timeout. -1 means no limit
mysql.connect_timeout = 60

; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
; SQL-Errors will be displayed.
mysql.trace_mode = Off

[MySQLi]

; Maximum number of links.  -1 means no limit.
mysqli.max_links = -1

; Default port number for mysqli_connect().  If unset, mysqli_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order).  Win32 will only look
; at MYSQL_PORT.
mysqli.default_port = 3306

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
mysqli.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).
mysqli.default_host =

; Default user for mysql_connect() (doesn't apply in safe mode).
mysqli.default_user =

; Default password for mysqli_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
; and reveal this password!  And of course, any users with read access to this
; file will be able to reveal the password as well.
mysqli.default_pw =

; Allow or prevent reconnect
mysqli.reconnect = Off

[mSQL]
; Allow or prevent persistent links.
msql.allow_persistent = On

; Maximum number of persistent links.  -1 means no limit.
msql.max_persistent = -1

; Maximum number of links (persistent+non persistent).  -1 means no limit.
msql.max_links = -1

Teuro [27.08.2009 10:43:43]

#

Kaiva tuolta php.ini tiedostosta extensios kohta esille, niin auttaa asiaa enemmän. Tuo kohjta jonka laitoit esille määrittelee lähinnä mysql:n käyttöä, ei niinkään apachen tarvitsemia laajennoksia. Minusta tuo opas, jonka linkitin oli aivan asiansa ajava tuote. Luitko sen läpi ajatuksella?

Metabolix [27.08.2009 13:45:35]

#

Extensions-osiossa pitäisi siis olla suunnilleen "extension=mysql.dll" tjsp, luultavasti siellä on valmiiksi oikea rivi mutta kommentoituna (rivin alussa ;-merkki).

Mikset noudata omaa ohjettasi ja asenna XAMPP liteä? :D

MIB [27.08.2009 14:15:16]

#

Metabolix kirjoitti:

Mikset noudata omaa ohjettasi ja asenna XAMPP liteä? :D

Hyvä kysymys :D Ehkäpä syynä on se, että olen puoli vuotta koittanut asentaa MySQLää, ja haluaisin joskus saada sen toimimaan.

Teuro voisitko kertoa mitnkä nimiset extensionit pitää laittaa? Löysin sellaisen kohdan, kuin denamic extensios.

Teuro [27.08.2009 14:23:32]

#

Tarvitset ainakin extension=php_mysql.dll, jos muistin tuon laajennoksen nimen oikein. Sen lisäksi, että otat tuon laajennoksen käyttöön tulee kyseinen laajennos olla php/ext/php_mysql.dll tiedosto olemassa.

MIB [27.08.2009 14:25:48]

#

Minulla ei ole PHP hakemistossa ext kansiota, eikä sitä php_mysql.dll tiedostoa. Mistä saisin nämä? Myöskään php.inissä ei mainita tuosta laajennuksesta mitään.

Teuro [27.08.2009 14:29:07]

#

hmm tuo ext/ kansio tulee php 5 version mukana automaagisesti, joten pidän aika kummallisena tilanteena tätä. php 4 versiossa nuo laajennokset olivat extensios kansiossa, joten on sinulla tällaista kansiota olemassa? Noita laajennoksia voit ladata php:n omalta sivulta / googlettamalla laajennoksen dll tiedostoa.

MIB [27.08.2009 16:48:53]

#

Minulla on PHP:n uusin jakeluversio Windowsille. Myöskään ei ole extensios kansiota. Kaikki PHP versiot mitä olen käyttänyt, eivät ole sisältäneet kuin dev kansion.

Edit. Otin täältä viimeisimmän, mutta ei siellä ole dll tiedostoja. Voisitkos auttaa?

Grez [27.08.2009 16:58:14]

#

Mä en oikeasti ymmärrä mikä tässä on näin vaikeeta. Se normaali PHP -asennuspaketti asentaa myös mysql-kirjaston. Esim. normaali 5.2 jakelupaketti PHP:n sivuilta download-linkin takaa sisältää myös ext-kansion ja siellä on myös php_mysql.dll.

Katsoin myös nuo uusimmat, eli 5.3.0, jotka löytyy tuolta ja myös niissä kaikissa on ext-hakemisto ja siellä php_mysql.dll.

Taas on pakko ilmeisesti tehdä kaikki vaikeimman kautta... Mistä lie maanraosta toikin MIBIn "uusin jakeluversio" saatu kaivettua jos ei sisällä ext-kansiota.

MIB [27.08.2009 16:59:27]

#

Grez kirjoitti:

Se normaali PHP -asennuspaketti asentaa myös mysql-kirjaston....

Mitenköhän? Pitääkö MySQL:n olla asennettuna ennen kuin PHP, ja sitten PHP konfiguroi sen itse? Mitäköhän mahdat ajaa takaa...

Ps. Laitatko linkit, mistä saan sitten ohjelmat mitkä tekevät näin, koska en itse ole löytänyt tälläisiä?

Grez [27.08.2009 17:05:17]

#

No lisäilin niitä linkkejä tuonne edelliseen postaukseen. Joka tapauksessa menin www.php.net -> download -> windows binaries.

lainaus:

Mitenköhän? Pitääkö MySQL:n olla asennettuna ennen kuin PHP, ja sitten PHP konfiguroi sen itse? Mitäköhän mahdat ajaa takaa...

No siten että se heivaa ainakin oletusasetuksilla sen php_mysql.dll -tiedoston ihan valmiiksi ja mielestäni se oli vakiona php.inissä määritelty käyttöönkin.

MySQL:n ei tarvitse olla ennakkoon asennettuna. Ei sitä MySQL:ää tarvitse asentaa paikalliselle koneelle ollenkaan, että PHP:ssä voisi olla MySQL tuki. Sehän on sitten sun PHP-koodista kiinni millä koneella olevaa MySQL-palvelinta käytät. Jos haluat että paikallisella koneella on MySQL niin sitten tietty sekin täytyy asentaa.

Metabolix [27.08.2009 17:06:36]

#

MySQL-palvelin ja MySQL-kirjasto ovat kaksi eri asiaa. MySQL-palvelin on palvelin, jonka pitää olla käynnissä, jotta sitä voi käyttää. MySQL-kirjasto taas on se PHP:n (tai muun) kirjasto, joka osaa ottaa yhteyden MySQL-palvelimeen ja jutella sen kanssa. Kirjasto asentuu itsekseen ja se pitää ehkä php.ini-tiedostosta laittaa käyttöön. Palvelin pitää asentaa itse.

MIB [27.08.2009 17:10:33]

#

Nähtävästi installeri ei sitten tee kuin perusasiat.

Grez [27.08.2009 17:16:27]

#

MIB kirjoitti:

Nähtävästi installeri ei sitten tee kuin perusasiat.

No mielestäni olisi suorastaan huolestuttavaa, jos se tekisi enemmän kuin mitä se tekee.

PHP:n kanssahan on ihan yhtä mahdollista käyttää MySQL, MSSQL, PostgreSQL, Oracle, DB2, yms. tietokantoja. Olisi vähintäänkin erikoista että PHP asennusohjelma kävisi automaagisesti hakemassa kaikki tai jonkin satunnaisesti valitun tietokantapaketin ja alkaisi niitä/sitä asentamaan.. Varsinkin kun PHP:llä on mahdollista tehdä sivuja ilmankin tietokantaa ja toisaalta jos tietokantaa halutaan käyttää, sitä ei useinkaan edes haluta samalle koneelle kuin missä www-palvelin on.

Jos haluaa helpon avaimet käteen "WAMP"-ratkaisun*, niin näitähän löytyy kyllä (esim. XAMPP ja WAMP)

* WAMP = Windows, Apache, MySQL, PHP.

MIB [27.08.2009 17:35:53]

#

Tarkoitus olisi saada PHP toimimaan MySQL:n kanssa, koska olen sitä niin useasti yrittänyt. Voinko siis ladata kaikki installerit, asentaa ne ja liittää nuo tarvittavat ext kansion tiedot ja muokata php.iniä oikeaksi jonkun neuvoilla?

peg [27.08.2009 17:53:35]

#

Asenna Wamp tai Xampp ja ne kaikki alkaa pelittää, vaikka nyt saisitkin
ne konffattua kuntoon niin päivityksiä tulee niin tiheään ettei se maksa
vaivaa. On huomattavasti helpompaa asentaa xampp tai wamp ja ne päivitykset
hoituu siis myös helposti.

Grez [27.08.2009 17:55:43]

#

Olen pegin kanssa aika pitkälti samaa mieltä.

Jos kuitenkin väkisin haluat kiusata itseäsi (ja meitä :D ) ja asentaa kaikki erikseen, niin tekisin niin että aloittaisin puhtaalta pöydältä ja asentaisin PHP:n oletusasetuksilla, jonka jälkeen se mysql pitäisi näkyä siellä phpinfo:ssa ilman mitään virittelyä. Sitten voisit keskittyä itse mysql -serverin asentamiseen ja konffaamiseen.

MIB [27.08.2009 17:59:08]

#

Siis, kumman asennan ensin: MySQL:n vai PHP:n? Nyt olen tehnyt niin, että lisäsin muutaman rivin php.iniin, ja lisäsin myös ext kansion ja siihen netistä tarvittavat tiedostot. php.ini näyttää tältä siitä kohtaa, mitä lisäsin:

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;   extension=modulename.extension
;
; For example, on Windows:
;
;   extension=msql.dll
;
; ... or under UNIX:
;
;   extension=msql.so
;
; ... or with a path:
;
;   extension=/path/to/extension/msql.so
;
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.
;
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.
;
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_exif.dll
;extension=php_fileinfo.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll      ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll  ; Use with Oracle 11g Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll

Ps. Uskon, että asennan xampp/wampserverin sitten serveriin, mutta haluan tietää, että miten MySQL saadaan kuntoon.

Grez [27.08.2009 18:05:39]

#

MIB kirjoitti:

Siis, kumman asennan ensin: MySQL:n vai PHP:n?

Kuten jo muutamaan kertaan sanottu: Ei yhtään mitään väliä.

MIB [27.08.2009 18:55:57]

#

Koitin tehdä noiden ohjeiden mukaan, mihin Teuro laittoi linkin, mutta ei toimi... :S En pääse "Edit httpd.conf" kohdan "Edit 2" läpi, koska apache ei enään suosutu käynnistymään sen jälkeen. Pakko kohta tyytyä näihin valmis paketteihin, vaikka haluaisin saadakkin tuon toimimaan noin.

Ovatko muuten vhostit näitä, millä voi esimerkiksi näitä sivutiloja toisille tarjota?

MIB [27.08.2009 20:27:26]

#

Edit. Asensin kaiken installereilla, ja laitoin sen ext kansion sinne php hakemistoon. Sitten laitoin php.iniin sen osoitteeksi C:\server\php\ext ja sitten laitoin tarvittavat moduulit php.iniin päälle. Ei toimi.

Teuro [27.08.2009 21:24:04]

#

No niin asensin sitten tälle läppärille apache2.2, php 5.2.10, sekä mysql 5.1.37 Aloitin asennuksen 17:19 ja nyt 21:21 asennus on valmis. Tosin välissä annoin kaksosille päivällisen ja iltapalan. Kokonaisuutena aikaa meni noin 2 tuntia.

Suurin ongelma tuntui olevan turhan hidas lataaminen, mutta muutoin asennus oli kojtalaisen suoraviivainen toimenpide. Ensin asensin apachen, jonka jälkeen mysql:n ja lopuksi php:n PHP:n asensin modulina, joten siihen piti ladata erikseen tuo ext/ kansion sisältö ja aktivoida php.ini tiedostosta oikea laajennos käyttöön ja käynnistää apache uudelleen.

MIB [27.08.2009 21:56:50]

#

Pitänee koittaa. Jätitkö kaikki asetukset oletuksilleen (Paitsi hakemistot?)?
Mitä eroa muuten Apachella ja Apachella + SSL on? Tuo ssl:hän pitää aktivoida jostain...?

Teitkö jotain muutoksia httpd.conf tiedostoon?
Teitkö jotain muutoksia php.iniin niiden moduulien sallimisen lisäksi? Voisitko laittaa koko php.ini tiedoston minulle sähköpostiin rokkeri [at] hotmail.com?

MIB
Ps. Mille käyttöjärjestelmälle asensit?

Metabolix [27.08.2009 22:16:06]

#

Apache SSL sisältää SSL-tuen eli HTTPS-tuen. Taitamattomana harrastelijana et hyödy tästä mitään, saat vain yhden vielä aiempaa hankalamman asian konfiguroitavaksesi. Mitä olen täällä foorumilla nähnyt, niin koodisi keskeiset ongelmat ovat vielä vuoden tai parin ajan jossain aivan muualla kuin siinä, sattuuko joku vakoilemaan salaamatonta HTTP-yhteyttä.

Itse sain käsityksen, että mitään ei tarvinnut muuttaa paitsi tuossa erikseen mainitut asiat. Kyseessä on ihan selvästi Windows-asennus. Linuxille nimittäin menisi luultavasti paljon sukkelammin, esim. Arch Linuxissa arviolta lataukset + minuutti perusasetuksilla. :D

Teuro [27.08.2009 22:25:50]

#

Windows alustalle tehty asennus ainoa muutos oli tosiaan php.ini tehty muutos, jolla aktivoin php_mysql.dll laajennoksen käyttöön. httpd.conf ei tarvitse koskea, jos tekee php:n asennuksen modulina eli valitsin asennuksen apache 2.2 module.

Voin laittaa sulle ton php.ini tiedoston.

MIB [28.08.2009 08:10:07]

#

Tein juuri noin, kuin mainitsit, mutta ei toimi. Laitoin tuon lähettämäsi php.inin oman tilalle, ja muutin sen ext kansion polun oikeaksi. Lisäsin kansioon myös oikeat tiedostot. Apache ja PHP toimii hyvin, myös MySQL:n asennus onnistui. En vain ymmärrä, että miten tämä MySQL käynnistetään. phpinfo() ei näytä mitään mysql:stä siellä.

Blaze [28.08.2009 09:43:33]

#

MIB kirjoitti:

En vain ymmärrä, että miten tämä MySQL käynnistetään.

Niinkuin muutkin servicet: start > run > services.msc

Komentoriviltä muistaakseni net mysql start

MIB kirjoitti:

phpinfo() ei näytä mitään mysql:stä siellä.

Tällähän nyt ei edelleenkään ole mitään tekemistä sen kanssa, onko MySQL-palvelin päällä vai ei. Väännä se mysql-extensio päälle sieltä php.inistä.

Teuro [28.08.2009 09:49:43]

#

Minkälainen virheilmoitus tulee, kun yrität avata yhteyttä tietokantaan? Tuleeko perinteinen undefined function mysql_connect()? Mikäli arvaus osuu kohdilleen saattaa libmysql.dll tiedosto olla tuntematon ts sen sijaintia ei ole lisätty PATH ympäristömuuttujaan. mysql asennuksen yhteydessä tosin installeri tiedustelee haluatko lisätä mysql kansion PATH muuttujaan.

Toinen vaihtoehto on, että sinulla on väärän sarjan käännös noista laajennoksista. Kokeile navigoida komentokehoitteen avulla php:n kansioon ka kirjoita php eikä muuta. Tällöin pitäisi tulla herja, jossa ilmoitetaan väärästä versiosta. Tämä ilmoitus vaatii, että asetus display_startup_error on asetettu tilaan 'On'. Mikäli käytät edelleen tuota mun versiota tuosta php.ini:ä, niin siellä se on juurikin noin asetettu.

Ongelma korjaantuu lataamalla oikean version laajennokset käyttöön. Minulla siis sarjan 5.2.10, eikä suinkaan 5.3.0 tai mitään muutakaan.

MIB [28.08.2009 13:52:21]

#

Teuro kirjoitti:

Minkälainen virheilmoitus tulee, kun yrität avata yhteyttä tietokantaan? Tuleeko perinteinen undefined function mysql_connect()? Mikäli arvaus osuu kohdilleen saattaa libmysql.dll tiedosto olla tuntematon ts sen sijaintia ei ole lisätty PATH ympäristömuuttujaan. mysql asennuksen yhteydessä tosin installeri tiedustelee haluatko lisätä mysql kansion PATH muuttujaan.

Kyllä, tuo undefind... errori tulee. Yhdessä vaiheessa asennusohjelma kysyi tuota path juttua. Siinä oli ensin dropdown-valikko, jossa oli kaikki koneeni kovalevyt. Sitten oli toinen lista vierestä, jossa oli oletuksena "Installing Path" (Jotenkin noin oli). Kaikkien asennuksessa jätin kansioita lukuunottamatta kaiken oletuksilleen. Myös php.inin korjasin oikean laiseksi.

Sinulla siis toimii kaikki yhteydet sun muut tietokantaan?

Minulla ovat seuraavat moduulit php.inissä ladattuna:

extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_gd2.dll

Nuo siis ottavat MySQL:n, MySQLi:n ja GD kirjaston käyttöön. Sitten ext kansion polku on seuraava: extension_dir="C:\serveri\php\ext\", eli kaiken pitäisi olla kunnossa.

Missä tuon libmysql.dll:n pitäisi olla? MySQL hakemistossako?

Teuro [28.08.2009 14:13:58]

#

Joo yhteys tietokantaan toimii aivan hyvin. libmysql.dll sijaitsee oletuksella mysql kansiossa joko bin/ tai suoraan juuressa nyt en muista kummassa ulkoa, kun en ole tuolla himassa tarkistamassa. Helppo korjaus on tietenkin kopioida kyseinen tiedosto johonkin kansioon, joka on PATH muuttujassa esimerkiksi windows/system32.

MIB [28.08.2009 14:17:17]

#

En löytänyt tätä tidostoa mistään. Missä tämä sijaitsee/Mistä sen saa? Ja, mihin minun pitää laittaa sen tiedoston polku?

Teuro [28.08.2009 14:27:21]

#

MIB kirjoitti:

En löytänyt tätä tidostoa mistään. Missä tämä sijaitsee/Mistä sen saa? Ja, mihin minun pitää laittaa sen tiedoston polku?

Kokeile josko olisi sopivia hakusanoja Tuon tiedoston polkua ei tarvotse laittaa minnekään sen kuuluu vain olla näkyvillä PATH muuttujassa.

MIB [28.08.2009 14:30:22]

#

Mikä tuo PATH muuttuja on?

Edit. Nyt minulla on tuo libmysql.dll, miten saan toimimaan tuon? Otin täältä sen, ja tuossa on myös jotain ohjeita. Eikös tälläisten tiedostojen pitäisi tulla jostain PHP/MySQL nettisivuilta, jotta ne varmasti ovat oikeita?

Teuro [28.08.2009 14:41:27]

#

Viisaammat voi selittää tarkemmin mikä PATH on, mutta kansantajuisesti se on muuttuja, jonka perusteella etsitään dynaamisia kirjastoja ohjelmien käyttöön. Sen avulla siis voidaan pitää yhtä ainoaa kirjastoa ajan tasalla, koska jokainen ohjelma voi lukea PATH muuttujasta sopivaa kirjastoa.

Luulisin, että tuo kirjato löytyy noilta mainitsemiltasi sivuilta, mutta tuo luultavasti toimii aivan yhtä hyvin. En vaan vieläkään tajua, mistä sä noita ohjelmia lataat, kun aivan perusjututkin tuntuu puuttuvan jakeluista.

MIB [28.08.2009 14:43:26]

#

Apache -> httpd.apache.org
PHP -> php.net
MySQL -> mysql.com

Sieltä niiden ohjelmien kotisivuilta ne otan. Oliko sinulla tuo tiedosto mukana?

Edit. Kun koitin tehdä noin, kuin tuolla sivulla mainittiin, niin se sanoi että käyttöjärjestelmäni ei ole yhteensopiva tuon kanssa. Olen koittanut asentaa serveri Windows 7:lle.

Teuro [28.08.2009 14:48:46]

#

Oli mulla kyllä ihan kaikki tarpeellinen mukana, jos ei lasketa php installer paketin puuttuvista ext/ kansion sisällöstä, jotka jouduin siis lataamaan erikseen.

MIB [28.08.2009 14:49:52]

#

Otitko MySQLn installerinä vai et?

Teuro [28.08.2009 14:52:59]

#

Otin kaikki installer paketteina.

Metabolix [28.08.2009 14:57:40]

#

Testasinpa nyt minäkin.
1. Latasin PHP:n zippinä. (PHP 5.3.0, VC6 x86 Thread Safe; "Do NOT use VC9 version with apache.org binaries")
2. Purin kyseisen paketin aivan satunnaiseen paikkaan.
3. Kopioin mukana tulleen tiedoston "php.ini-development" tiedostoksi "php.ini".
4. Asetin kohdat "extension_dir=./ext" ja "extension=php_mysql.dll"
5. Ajoin lyhykäisen testikoodin "mysql_connect();"

Kuin ihmeen kaupalla tämä toimi aivan oikein! (Ilmoitti, ettei saa yhteyttä palvelimeen.) Mitään ylimääräistä ei tarvinnut ladata. Paketissa oli valmiiksi ext-hakemisto sisältöineen. Tiedosto libmysql.dll ei ollut tarpeen. (Ehkäpä se on sisällytetty tiedostoon php_mysql.dll.)

Johtopäätös: sinä mokaat kerta toisensa jälkeen jotenkin hyvin mystisesti.

MIB [28.08.2009 15:39:03]

#

Kävi näin: http://91.152.134.144/error.bmp, kun koitin tuota tehdä sen yhden ohjeen mukaan.

En ymmärrä mitä teen väärin, koska toisilla onnistuu. Teen mielestäni aivan niin kuin Teuro tässä on neuvonut.

Edit. Heti kun koitan mennä tähän tiedostoon, missä on tuo mysql_connect(), niin apache tekee errorin, ja sanoo että se sammuu.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta