Ongelmatilanteita

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

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