Ongelmatilanteita
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