Olen asentanut koneeseeni Apache-palvelimen ja PHP-ympäristön. Olen muokannut php.ini ja httpd.conf tiedostot mielestäni oikein. Tein testi.php ohjelman, jonka tallensin htdocs-hakemistoon. Apache-palvelimen testisivu aukeaa kyllä. Mutta jos kirjoitan selaimen URL-riville http://127.0.0.1/testi.php, tulee virheilmoitus 404 eli ko. sivua ei löydy. Missä vika?
Mikä neuvoksi
Andrea
11926
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 11
Vanhimmat
kokeile kirjoittaa selaimeen http://localhost/test.php
näyttääkö edelleen samaa?
Sama juttu, eli kirjoittamala URL-riville http://localhost Apachen testisivu aukeaa. Kirjoittamalla http://localhost/testi.php tulee sama virheilmoitus kuin kirjoittamalla suoraan TCP/IP osoitteen.
Kokeile eri selaimilla. Tee tonne htdocs'in alla oma kansio ja laita kokeeksi sinne.
Tulikettu ja IE avaavat hieman erilailla. Kokeilin vastaavaa itse.
Sen enempää mitään asiasta tietämättä niin omassa koneessani (Windows XP) Apache avaa kyllä kaikki tiedostot (niin tunnetut kuin tuntemattomatkin).
Luulen ettei kysymyksen ongelma liity välttämättä PHP:n. Mitä jos teet pelkän HTML sivun, niin saatko sitä auki? Jos käytössäsi on Linux ympäristö niin onko tiedoston käyttöoikeudet asetettu oikein? Tarkasta myös että se on tosiaan testi.php eikä test.php...
Koneessani on Windows XP Pro. *.html tiedostot aukeavat kyllä. Esim http://localhost/testi.html. Mutta php komentoja ei voi sisällyttää näihin *.html tiedostoihin. Tai tietysti voi mutta selain ohittaa ne kylmästi. Itse epäilen, että ongelma on httpd.conf-tiedostossa. Ainakin DocumentRoot siellä on kyllä oikein. Samoin Addhandler-asetukset.
Itselläni on juuri asennettu seuraavat versiot: Apache/2.0.54 (Win32) ja PHP/5.0.4. Ainoa mitä tein oli se että PHP:n asennuksen jälkeen lisäsäin tonne httpd.conf tiedostoon seuraavat rivit:
LoadModule php5_module "c:/Program Files/PHP/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/Program Files/PHP"
Lisäksi muutin PHP hakemistossa olevan "php.ini-recommended" tiedoston nimeksi "php.ini" ja lisäsin PHP hakemiston ympäristö muuttujaan PATH. Lähti toimimaan heti...
Tosin itselläni on XP Home mutta töissä on XP Pro ja sillä lähti kanssa heti toimimaan (joskus vuosia sitten). Toki kumpaakin koneeseen olen aina kirjautunut järjestelmänvalvojan oikeuksilla. Oliko käyttäjä tililläsi järjestelmänvalvojan oikeudet kun asensit ohjelmistot? Entä kun luot hakemistoja/tiedostoja htdocs:n alle niin onko käytössäsi järjestelmänvalvojan oikeudet?
Oletko muutellut paljon httpd.conf tiedoston asetuksia tai tehnyt .htaccess tiedotoja (eli olisko voinnut käydä joku skämmi)? Vai onko tämä ensinmäinen kerta kuin yritätä asentaa kyseisiä ohjelmistoja?
Mielestäni ongelma kuitenkin viittaa tiedostojen oikeuksiin, jos virheeenä kuitenkin on normaali virhe siitä ettei tiedostoa löydy (404). Kun muutin tossa äskön noita PHP:n asetus juttuja niin en kyllä sannut koskaan tollasta virhettä vaan Apache ei käynnistynyt taikka sitten näytti PHP tiedoston sisällön ilman että olisi suorittanut sitä.
Itselläni jos luon "htdocs" hakemiston alle esimerkiksi hakemiston phpkoodit ja sinne sijoitan php tai muita tiedostoja niin jos tämän jälkeen osoitan vain hakemistoa "http://localhost/phpkoodit" niin Apache antaa listan hakemistossa olevista tiedostoista josta klikkaamalla voin sitten valita minkä haluan avata/käynnistää. Käykö sinulla näin? Näkyykö kaikki tiedostot?
Laita muuten resurssien hallinasta/exploreista päälle "luettelo ja tiedot" näkymä sekä sen jälkeen valitse että näytetään myös tiedoston omistaja ja atribuutit ja vertaa tämän jälkeen toimivan ja ei toimivan tiedostojen eroja näissä asisoissa.
Tulipa pitkää ja sekavaa tekstiä :-) Toivottavasti löydät vian...
Apachen ja PHP:n versiot minulla ovat samat kuin sinulla. Kysymys: Mihin kohtaan httph.conf-tiedostoa laitoit nuo liäyksesi?
php.ini tiedosto on juuri tällä nimellä ja sijaitsee C:\Windows hakemistossa. Lisäsin Path ympäristömuuttujaan myös C:\PHP mutta se ei auttanut.
Jos kirjoitan URL:ksi http://localhos/htdocs tulee edelleen virheilmoitus, ettei ko. sivua löydy. Ts. ei tule näkyviin niitä *.php tiedostoja, joita voisi yrittää avata.
Kiitos pitkästä vastauksestasi.
Parisen kysymystä
1) Onko sinulla httpd.confissa tämmöset rivit?
#PHP
LoadModule php5_module E:\server\php\php5apache2.dll
AddType application/x-httpd-php .php
Tietenkin tossa se polku missä php sijaitsee. Ei väliä mihkä kohti lisää, mutta selvyyden vuoksi moduulien lataamisen alle kannattaa laittaa.
2) Laittanut php.ini tiedoston Apachen bin hakemistoon (taitaa tosin kelvata myös windows.. en ole ihan varma)
3) Oletko varmasti laittanut .php tiedoston oikeaan paikkaan?
4) Kokeiletko ihan varmasti oikeaa osoitetta?
Nimittäin http://localhost/htdocs viittaa kansioon
xxxx/htdocs
xxxx = Apachen DocumentRoot, joka on oletuksena c:/Apachen polkuja/htdocs
Taas pelkällä http://localhost/ päästään DocumentRootiin.
Oletan, että localhos on kirjoitus virhe T puuttuu lopusta. Suuri merkitys.
Katso mitä lukee httpd.confissa DocumentRoot kohdalla, tämän jälkeen laitat sinne kansioon index.php nimisen tiedoston joka sisältää allaolevan, ole tarkka, ettei tule vahingossa index.php.txt jos muistiolla tallennat. laita tallentaessa nimeksi "index.php" silloin menee oikein.
Mene sitten selaimella osoitteeseen http://localhost/index.php
Tällöin sinulla pitäisi aueta sivu missä lukee pöö tai php koodi jos php-tulkki ei toimi.
MUISTA myös käynistää Apache uudestaan AINA kun muokkaat confeja, muuten muutokset EI tule voimaan.
Sekä katso error.log tiedostosta mikä on virheen syynä, näkyy tiedosto polku mistä Apache on yrittänyt avata tiedostoa.
Laitoin ne heti LoadModule... rivien jälkeen. Mutta korostetaankoon nyt viellä että vaikka miten poistan noita httpd.conf:ssa olevia PHP:n rivejä, muokaan niitä epäkelvoksi taikka sitten nimeän jonkin PHP:n .dll:n uusiksi niin silti ei koskaan tule kyseistä virhe ilmoitusta vaan joko Apache ei lähde käyntiin taikka sitten .php tiedostot näkyvät sellaisinaan.
Kokeile seuraavaavia epätoivoisia asioita järjestyksessä ja kerro mitä tapahtui!
Vaihe 1: Jos luot htdocs hakemistoon "joku.html" nimisen tyhjän tiedoston niin pystytkö edes avamaan tätä tiedostoa selaimella (eli osoitetta http://localhost/joku.html )?
Vaihe 2: Nimeä nyt äskönen tiedosto uusiksi eli muuta sen nimeksi "joku.php". Pystykö nyt avaamaan nyt php tiedosto selaimella (eli osoitetta http://localhost/joku.php )?
Vaihe 3: Luo htdocs hakemistoon roskaa niminen hakemisto ja sinne luo sitten neljä tyhjää tiedostoa nimiltä: "joku1.html", "joku2.html", "joku1.php" ja "joku2.php". Jos nyt osoitat selaimessa osoitetta http://localhost/roskaa/ , niin tuleeko lista hakemiston tiedostoista selaimesi ruutuun?
Vaihe 4: Kai käytät "/" merkkiä tossa httpd.conf tiedostosta hakemiston erottimena "\" merkin sijasta?
Vaihe 5: Millä ohjelmalla luot .php tiedostot? Oletko varma ettei käy niin että luot teksti editorilla .php tiedoston ja tiedosto tallentuukin päätteellä .php.txt ja resurssien hallintasi piilottaa todellisen .txt päätteen? Siis oletko varma että .php tiedostojen nimen pääte on todellisuudessa .php eikä .php.txt?
Vaihe 6: Voiko ollakkin niin hassusti että PHP toimii mutta käytät testauksessa sellaista .php koodia joka ohjaa selaimen sellaiselle sivulle mitä ei ole olemassa.
Vaihe 7: Ei keksi enää... Omituista..... Onko tiedosto järjestelmäsi NTFS vai FAT32?
Hups! Tuli näköjään vähän toistetta, eli tossa joku oli jo edellisessä viestissä ehdotellut samoja asioita.... :-) Toivottavasti saat toimimaan...
Kaikki viat olivat tuossa httpd.conf-tiedostossa. Jostakin syystä se ilmeisesti otti DHCP:n johdosta palvelun tarjoajan server-nimen. Tuo tiedosto php5apache2.dll ei jostain syystä ollut lainkaan purkautunut hakemistoon C:\PHP. Onneksi se löytyi hakemistosta unzipped, josta sen saattoi kopioida yo. hakemistoon. Kaiken kaikkiaan kuudelle eri riville piti tiedostossa httpd.conf tehdä muutoksia. Tässä suhteessa PHP:tä käsittelevät kirjat (esim. Ari Rantala: PHP perusopas)ovat kyllä ovat turhan ylimalkaisia.