[Apache 2 | säger att en viss fil saknas i /var/www/html/]

Permalänk
Medlem

[Apache 2 | säger att en viss fil saknas i /var/www/html/]

Hej!

Jag har ett väldigt skumt fel, så min apache2 hittar uppenbarligen index.php, data.php och stylesheet.css. Men lyckas inte hitta superTest.php har fått samma fel meddelande i två webbläsare nu (firefox och chromium) att den filen inte finns. Men om jag kör ls -l i /var/www/html/ finns den där.
/var/log/Apache2/error.log har följande:

1 [Sun Nov 02 22:35:24.721876 2014] [:error] [pid 1505] [client 127.0.0.1:42224] PHP Notice: Undefined index: bgPaintJob in /var/www/html/superTest.php on line 5, referer: http://127.0.0.1/data.php?compName=ofa f&lName=pijfapojf&fName=jipojipji&workT=jpooijpoji&tel=ijpojiopji&mail=jiopjpojipo&bgPaintJob=%23ADD8E6&textPaintJob=%23000000&styleMyFonts=Verdana 2 [Sun Nov 02 22:35:25.024406 2014] [:error] [pid 1505] [client 127.0.0.1:42224] PHP Notice: Undefined index: bgPaintJob in /var/www/html/superTest.php on line 5 3 [Sun Nov 02 22:42:57.219683 2014] [mpm_prefork:notice] [pid 8358] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.5 configured -- resuming normal operations 4 [Sun Nov 02 22:42:57.220478 2014] [core:notice] [pid 8358] AH00094: Command line: '/usr/sbin/apache2' 5 [Sun Nov 02 22:43:01.189930 2014] [:error] [pid 8362] [client 127.0.0.1:42340] script '/var/www/html/data.php superTest.php' not found or unable to stat, referer: http://127.0.0.1/ 6 [Sun Nov 02 22:44:27.652003 2014] [:error] [pid 8363] [client 127.0.0.1:42341] script '/var/www/html/data.php superTest.php' not found or unable to stat, referer: http://127.0.0.1/ 7 [Sun Nov 02 22:45:29.794813 2014] [mpm_prefork:notice] [pid 8358] AH00169: caught SIGTERM, shutting down 8 [Sun Nov 02 22:45:54.638331 2014] [mpm_prefork:notice] [pid 1473] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.5 configured -- resuming normal operations 9 [Sun Nov 02 22:45:54.638508 2014] [core:notice] [pid 1473] AH00094: Command line: '/usr/sbin/apache2' 10 [Sun Nov 02 22:47:25.686953 2014] [:error] [pid 1478] [client 127.0.0.1:52254] script '/var/www/html/data.php superTest.php' not found or unable to stat 11 [Sun Nov 02 22:50:30.235414 2014] [:error] [pid 1480] [client 127.0.0.1:52314] script '/var/www/html/data.php superTest.php' not found or unable to stat, referer: http://127.0.0.1/

och i /var/log/apache2/access.log:

1046 127.0.0.1 - - [02/Nov/2014:22:43:01 +0100] "GET /data.php%20superTest.php?compName=ofaf&lName=pijfapojf&fName=jipojipji&workT=jpooijpoji&tel=ijpojiopji&mail=jiopjpojipo&bgPaintJob=%23ADD8E6&textPaintJob=%2300 0000&styleMyFonts=Verdana HTTP/1.1" 404 510 "http://127.0.0.1/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0" 1047 127.0.0.1 - - [02/Nov/2014:22:44:27 +0100] "GET /data.php%20superTest.php?compName=ofaf&lName=pijfapojf&fName=jipojipji&workT=jpooijpoji&tel=ijpojiopji&mail=jiopjpojipo&bgPaintJob=%23ADD8E6&textPaintJob=%2300 0000&styleMyFonts=Verdana HTTP/1.1" 404 510 "http://127.0.0.1/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0" 1048 127.0.0.1 - - [02/Nov/2014:22:47:20 +0100] "GET /favicon.ico HTTP/1.1" 404 499 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0" 1049 127.0.0.1 - - [02/Nov/2014:22:47:20 +0100] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0" 1050 127.0.0.1 - - [02/Nov/2014:22:47:25 +0100] "GET /data.php%20superTest.php?compName=ofaf&lName=pijfapojf&fName=jipojipji&workT=jpooijpoji&tel=ijpojiopji&mail=jiopjpojipo&bgPaintJob=%23ADD8E6&textPaintJob=%2300 0000&styleMyFonts=Verdana HTTP/1.1" 404 509 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0" 1051 127.0.0.1 - - [02/Nov/2014:22:50:10 +0100] "GET / HTTP/1.1" 200 928 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0" 1052 127.0.0.1 - - [02/Nov/2014:22:50:13 +0100] "GET / HTTP/1.1" 200 927 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0" 1053 127.0.0.1 - - [02/Nov/2014:22:50:30 +0100] "GET /data.php%20superTest.php?compName=HHej&lName=nigga&fName=Vad&workT=Fan+&tel=Vill&mail=DU%3F&bgPaintJob=%23ADD8E6&textPaintJob=%23000000&styleMyFonts=Verdana HT TP/1.1" 404 510 "http://127.0.0.1/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:33.0) Gecko/20100101 Firefox/33.0" 1054 127.0.0.1 - - [02/Nov/2014:22:55:07 +0100] "GET / HTTP/1.1" 200 928 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.120 Chrome/37.0.2062.120 Safari/537.36 " 1055 127.0.0.1 - - [02/Nov/2014:22:55:07 +0100] "GET /stylesheet.css HTTP/1.1" 200 496 "http://127.0.0.1/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.120 Chro me/37.0.2062.120 Safari/537.36" 1056 127.0.0.1 - - [02/Nov/2014:22:55:07 +0100] "GET /favicon.ico HTTP/1.1" 404 498 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.120 Chrome/37.0.2062.120 Sa fari/537.36" 1057 127.0.0.1 - - [02/Nov/2014:22:55:16 +0100] "GET /data.php%20superTest.php?compName=fafaf&lName=klnlkn&fName=lnlknln&workT=lkjnlkknjlkjn&tel=ljnlkknlknj&mail=lkjn&bgPaintJob=%23FFFFE0&textPaintJob=%23000000&st yleMyFonts=Verdana HTTP/1.1" 404 510 "http://127.0.0.1/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/37.0.2062.120 Chrome/37.0.2062.120 Safari/537.36

coden är väldigt simple:

ls -l /var/www/html/

$ ls -l /var/www/html/ total 16 -rwxr-xr-x 1 User User 608 nov 2 22:42 data.php -rwxr-xr-x 1 User User 2219 nov 2 22:22 index.php -rwxr-xr-x 1 User User 202 nov 2 20:57 stylesheet.css -rwxr-xr-x 1 User User 244 nov 2 22:49 superTest.php

Tack för svar!

Permalänk
Entusiast

Normalt får man inte ladda ner php-script tänkta att köras på servern. De är tänkta att köras och klienten tar enbart emot utmatningen.

Du försöker ange supertest.php som en stylesheet, som webbläsaren sedan försöker ladda hem som en traditionell fil, varav servern nekar då det är ett php-script.

Skickades från m.sweclockers.com

Permalänk
Medlem

Det låter som något som kan vara logiskt men då förstår jag inte varför så många toturials säger att man skall göra så där....

Permalänk
Entusiast

Du kan konfigurera apache till att tillåta nerladdning av script. Men då öppnar man ett enormt stort säkerhetshål.
Dessutom tjänar det inte till något i ert fall, då filen innehåller php-kod, och inte css-kod. (eller...?)

Edit:
Sökte runt lite angående detta, och fann:
http://css-tricks.com/css-variables-with-php/

Vad innehåller superTest.php ?

Skickades från m.sweclockers.com

Permalänk
Hedersmedlem

Att läsarna säger att sidan inte hittas är troligen för att PHP-skriptet dör och då inte skickar någon data tillbaka till webbläsaren av säkerhetsskäl (detta beteende kan ändras, men det är den rekommenderade inställningen för produktionsservrar). Felmeddelandena hamnar i stället just i Apaches loggfiler. Detta kommer hända varje gång du har något fel i en PHP-fil.

Här ser vi att skripten klagar på att indexet `bgPaintJob` inte är definierat. GET-parametrarna propagerar inte till CSS-filen då den laddas över en separat förfrågan. Vill du skicka med detta så får du exempelvis återskapa query-strängen i CSS-filanropet, så att du kallar `superTest.php?variabel1=värde&variabel2=värde`, etc.

Felmeddelandena i `access.log` klagar på att du försökt anropa filen `/data.php supertest.php?…`, dvs en fil med ett mellanslag i filnamnet. Hur det hänt vet jag inte, men det är inte direkt relaterat till det meddelande som du får i läsaren när PHP-skriptet har fallerat.

Det är inga konstigheter i att anropa en PHP-fil som CSS-skript i allmänhet, så länge som PHP-skriptet genererar vad som skulle kunna förväntas finnas i en CSS-fil. På samma sätt kan man generera bilder, PDF-filer, etc., som PHP-skript, så länge som de skeppar tillbaka korrekta headers och data.

Permalänk
Medlem
Skrivet av phz:

Att läsarna säger att sidan inte hittas är troligen för att PHP-skriptet dör och då inte skickar någon data tillbaka till webbläsaren av säkerhetsskäl (detta beteende kan ändras, men det är den rekommenderade inställningen för produktionsservrar). Felmeddelandena hamnar i stället just i Apaches loggfiler. Detta kommer hända varje gång du har något fel i en PHP-fil.

Här ser vi att skripten klagar på att indexet `bgPaintJob` inte är definierat. GET-parametrarna propagerar inte till CSS-filen då den laddas över en separat förfrågan. Vill du skicka med detta så får du exempelvis återskapa query-strängen i CSS-filanropet, så att du kallar `superTest.php?variabel1=värde&variabel2=värde`, etc.

Felmeddelandena i `access.log` klagar på att du försökt anropa filen `/data.php supertest.php?…`, dvs en fil med ett mellanslag i filnamnet. Hur det hänt vet jag inte, men det är inte direkt relaterat till det meddelande som du får i läsaren när PHP-skriptet har fallerat.

Det är inga konstigheter i att anropa en PHP-fil som CSS-skript i allmänhet, så länge som PHP-skriptet genererar vad som skulle kunna förväntas finnas i en CSS-fil. På samma sätt kan man generera bilder, PDF-filer, etc., som PHP-skript, så länge som de skeppar tillbaka korrekta headers och data.

Ja jag satt och kolla på mellan slaget i går också.

Skrivet av SysGhost:

Du kan konfigurera apache till att tillåta nerladdning av script. Men då öppnar man ett enormt stort säkerhetshål.
Dessutom tjänar det inte till något i ert fall, då filen innehåller php-kod, och inte css-kod. (eller...?)

Edit:
Sökte runt lite angående detta, och fann:
http://css-tricks.com/css-variables-with-php/

Vad innehåller superTest.php ?

Skickades från m.sweclockers.com

aah det kan vara charset jag missar! ska kolla snart!...

Permalänk
Entusiast
Skrivet av Mejan:

Ja jag satt och kolla på mellan slaget i går också.

aah det kan vara charset jag missar! ska kolla snart!...

Jag själv funderade på om din superTest.php matar ut en proper "header" innan resten av utmaningen sker (Om det sker någon utmatning överhuvudtaget. Ligger något i vad phz nämnde ovan)
Det vill säga något i stil med:

header("Content-type: text/css; charset: UTF-8");

Glöm inte att "headers" måste matas ut först. (Därav namnet )

Tillägg:
Angående Unicode/UTF-8. Glöm inte att spara php-scripten i unicode/UTF-8 -kodning. Använder man Windows standard-verktyg (Notepad med flera), sker inte detta automatiskt, utan måste ställas in manuellt innan man sparar filerna.
Om något steg i kedjan är "felkodad", så kan underligheter uppstå:
(Kedjan ifråga: script / databaser -> inläsning -> exekvering -> utmatning -> överföring till klienten -> klienten )

Permalänk
Medlem

Jepp nu fungerar allt
index.php

<!Doctype html> <html> <head> <meta charset="UTF-8"><!--Sätter UFT-8--> <title>Labb3 del 2</title> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body> <div name="firstPage" id="firstPage"> <h1 id="firstHeader">Beställ ditt visitkort här!</h1> <form action="data.php" method="get"> <table> <tr> <td> <p>Företagsnamn:</p> </td><td> <input type="text" name="compName"> </td> </tr><tr> <td> <p>Efternamn:</p> </td><td> <input type="text" name="lName"> </td> </tr><tr> <td> <p>Förnamn:</p> </td><td> <input type="text" name="fName"> </td> </tr><tr> <td> <p>Titel:</p> </td> <td> <input type="text" name="workT"> </td> </tr><tr> <td> <p>Telefon:</p> </td><td> <input type="text" name="tel"> </td> </tr><tr> <td> <p>E-post:</p> </td><td> <input type="text" name="mail"> </td> </tr><tr> <td> <p>Bakgrundsfärg:</p> </td><td> <select name="bgPaintJob"> <option value="#ADD8E6">Ljusblå</option> <option value="#FFFFE0">Ljusgul</option> <option value="#FFFFFF">Vit</option> <option value="#40E0D0">Turkos</option> </select> </td> </tr><tr> <td> <p>Textfärg</p> </td><td> <select name="textPaintJob"> <option value="#000000">Svart</option> <option value="#0000FF">Blå</option> <option value="#FF0000">Röd</option> <option value="#006400">Mörkgrön</option> </select> </td> </tr><tr> <td> <p>Typsnitt:</p> </td><td> <select name="styleMyFonts"> <option value="Verdana">Verdana</option> <option value="Ariel">Ariel</option> <option value="Tahoma">Tahoma</option> <option value="Impact">Impact</option> </select> </td> </tr> </table> <center> <button type="reset" value="Reset">Nollställ</button> <button type="submit">Skriv ut!</button> </center> </form> </div> </body> </html>

Stylesheet.css

p{ font-size: 14px; font-family: "Times New Roman"; } #firstPage{ background-color: #6699FF; color: #000000; height: 510px; width: 369px; } #firstHeader{ font-size: 16px; font-family: Arial; }

data.php

<!Doctype html> <html> <head> <meta charset="UTF-8"> <title>Labb3 del 2</title> <?php $tmp1 = urlencode($_GET["bgPaintJob"]); $tmp2 = urlencode($_GET["textPaintJob"]); $tmp3 = urlencode($_GET["styleMyFonts"]); $styleLink = <<< StyleLink <link rel="stylesheet" type="text/css" media="screen" href="superTest.php?bgPaintJob=$tmp1&textPaintJob=$tmp2&styleMyFonts=$tmp3"> StyleLink; print $styleLink; ?> </head> <body> <div name="secondPage"> <h1 name="compOut" class="everythingOut"><?php echo $_GET["compName"]; ?></h1> <p name="tNameOut" class="output everythingOut"><?php echo $_GET["fName"]; ?> <?php echo $_GET["lName"]; ?></p> <p name="tit" class="output everythingOut"><?php echo $_GET["workT"]; ?></p> <p name="teleOut" class="output everythingOut">Tfn: <?php echo $_GET["tel"]; ?></p> <p name="mailOut" class="output everythingOut">E-post: <?php echo $_GET["mail"]; ?></p> </div> </body> </html>

superTest.php

<?php header("Content-type: text/css; charset: UTF-8"); $bg = $_REQUEST["bgPaintJob"]; $tc = $_REQUEST["textPaintJob"]; $sf = $_REQUEST["styleMyFonts"]; ?> div{ height: 200px; width: 400px; background-color: <?= $bg ?>; } p.output{ font-size: 20px; margin: 0px; } .everythingOut{ font-family: <?= $sf ?>; color: <?= $tc ?>; } p[name="teleOut"]{ margin: 10px; font-size: 20px; margin-bottom: 0px; }

Med denna kod fungerar allt som det ska tack för hjälpen.