Ongelmatilanteita

Versio hetkellä 28. toukokuuta 2009 kello 18.29 – tehnyt Malloc (keskustelu | muokkaukset)

Miksei mun kotisivu toimi!1! 'You don't have permission to access'...

Silloin sapettaa kun hienot sivut on just julkaisua varten valmiit ja lapiokurssin assari kyselee tuotosten perään. Ei huolta, seuraavilla hilirimpsuilla oikeudet menevät kohdilleen ja sivut alkavat näkyä:

 cd && chmod 0711 . && wwwonly public_html
 cd public_html && find ./ -type d -exec wwwonly {} \; && find ./ -type f -exec chmod 0644 {} \;

1. rivillä siirrytään kotihakemistoon ja jos se onnistuu, muutetaan sen oikeudet drwx--x--x ja jos sekin onnistuu, muutetaan public_html-hakemiston oikeudet semmoisiksi kuin laitos on tarkoittanut. Merkit && komentojen välissä tarkoittavat: 'mikäli edellinen komento suoritettiin onnistuneesti, siirry seuraavaan'.

Kakkosrivillä siirrytään hakemistoon public_html ja jos se onnistuu, muutetaan kaikkien sen alla olevien hakemistojen omistukset niinkuin laitos on ne tarkoittanut ja jos sekin onnistuu, muutetaan public_html:n alla olevien kaikkien tiedostojen oikeudet niin että vain omistaja voi muuttaa mutta muut lukea.

Lisätietoa: http://www.cs.helsinki.fi/compfac/ohjeet/WWW/rajoittaminen.html - mm. kuinka tehdään salasanasuojattuja sivuja.

HUOMAA ETTÄ TÄTÄ EI PIDÄ KÄYTTÄÄ KONEELLA alkokrunni.cs.helsinki.fi (db). PHP ei toimi, jos omistusoikeuksia muutetaan komennolla wwwonly.



PHP:n saattaminen toimintaan db.cs.helsinki.fi:ssä eli alkokrunnilla vie sormen suuhun joskus paatuneemmaltakin säätäjä-ässältä. Ei huolta, taas löytyy hilirimpsut joilla homma lähtee käyntiin nollasta sataan. Kun olet kirjautuneena db:lle, seuraavat loitsut tekevät aivan alusta oikeat jutut. HUOMAA että kaikki hipsut eivät ole '-merkkejä, vaan `-merkkejä. Kannattaa leikkaa-liimata.

cd && chmod 0711 .
cd public_html && chmod 755 . && chown `id -nu`:tkol . && {
  TEMPDIR=`mktemp -d testphp.XXXX` && cd $TEMPDIR && chmod 0755 . && { cat > .htaccess <<EOF
AddHandler cgi-script php
AddCharset UTF-8 .html
AddCharset UTF-8 .php
EOF
  chmod 0644 .htaccess
  }
}

Jos edelliset komennot menivät nätisti läpi, luo tiedosto test.php seuraavasti:

cat > test.php <<EOF
#!/usr/local/bin/php
<?php
header('Content-type: text/html; charset=UTF-8');
echo <<<PHPEOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="CACHE-CONTROL" content="NO-CACHE" />
  <meta name="ROBOTS" content="NOINDEX,NOFOLLOW,NOARCHIVE" />
  <title>PHP test page</title>
</head>
<body>
PHPEOF;

echo "\n  <h2>PHP-testi.</h2>\n";
echo "</body>\n";
echo "</html>\n";
?>
EOF
chmod 0700 test.php

..ja lopuksi testaa toimivuus komennolla

lynx http://db.cs.helsinki.fi/u/`id -nu`/$TEMPDIR/test.php


Terkuin,

-- dogo