Heyho,
letztes Wochenende habe ich (erfolgreich) meinen Webserver auf dem Raspberry Pi zum laufen bekommen. Wichtig ist allerdings....das Ding hat noch KEINEN Passwortschutz. Wenn ihr den also ans Internet anbindet (per DynDNS + Router), solltet ihr das Passwort auf dem Pi ändern und am besten genau schauen was ihr da runterladet....nicht das euch irgendeiner ein Virenverseuchtes File auf das Pi hochlädt und ihr es euch auf den PC übertragt.
Wie die Anbindung ans Internet geschieht kann ich auch gerne erklären (falls Interesse besteht).
Das ganze sieht (bisher) so aus:
Bild hier
--------------------------------------------------------------------------------------
Bild hier
Ich möchte euch hier mal kurz zusammenfassen wie ihr einen Webserver auf euerm Raspberry Pi installiert und einrichtet.
Als Webserver verwende ich "Lighttpd".
Dieser installiert sich wie folgt:
Code:
$ sudo mkdir /var/www
$ sudo groupadd www-data
$ sudo adduser www-data www-data
$ sudo usermod -a -G www-data www-data
$ sudo chown -R www-data:www-data /var/www
$ sudo apt-get update
$ sudo apt-get install lighttpd
$ sudo apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-fpm php5-cgi php5-cli php5-common php5-suhosin
Wenn diese Zeilen ausgeführt worden sind, müsst ihr noch das Config-File anpassen.
Dafür erstellt ihr einfach mittels Texteditor eine Datei und nennt diese "lighttpd.conf".
Code:
server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
# "mod_rewrite",
)
server.document-root = "/var/www"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm",
" index.lighttpd.html" )
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
include_shell "/usr/share/lighttpd/use-ipv6.pl"
dir-listing.encoding = "utf-8"
server.dir-listing = "enable"
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/x-javascript", "text/css", "text/html", "text/plain" )
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
$HTTP["url"] =~ "^/($|/)" {
dir-listing.activate = "disable"
}
$HTTP["url"] =~ "^/owncloud/data/" {
url.access-deny = ("")
}
Diese Datei ladet ihr anschließend mittels FileZilla o.ä. hoch und speichert diese unter "/etc/lighttpd".
Danach müsst ihr mit
Code:
$ sudo /etc/init.d/lighttpd force-restart
das Config-File neu laden.
Anschließend sollte euer Raspberry Pi mittels Browser über die normale IP-Adresse des Moduls erreichbar sein. Wenn es nicht funktioniert, probiert
IP-Adresse/index.lighttpd.html
Der Server ist nun bereit um PHP und HTML Seiten zu verarbeiten.
Alle Seiten die ihr erstellt habt, müsst ihr unter "/var/www" speichern. Die Seiten sind anschließend über IP-Adresse/Seitenname + Endung zu erreichen.
Was ich festgestellt habe ist, das PHP im Safe-Mode läuft. Das bereitet z.B. bei dem Dateiupload Probleme. Wenn ihr den Benutzer und die Gruppenzugehörigkeit eurer Uploadseite nicht auf www-data ändert, blockt PHP die Ausführung dieser Seite. Dies soll verhindern das dort ohne weiteres Schadcode etc. ausgeführt werden kann.
Um den Benutzer zu ändern, nutzt ihr folgenden Befehl:
Code:
$ chown www-data.www-data /var/www/Dateiname + Endung
Sobald ihr dies gemacht habt, werden auch PHP Files die ihr z.B. mit FileZilla unter dem Namen "xyz" hochgeladen habt, ausgeführt.
Die Uploadseite sieht wie folgt aus. Wichtig ist, dass ihr euch in dem Pfad "/var/www" einen Ordner Namens "Uploads" macht (oder ein anderer Name aber dann müsst ihr das in dem PHP-File anpassen).
Einmal die HTML-Seite:
Code:
<html>
<head>
<title>
Raspberry Pi Webserver
</title>
</head>
<h1>
<font color="red">
Raspberry Pi Webserver
</font>
</h1>
<body>
<form action="Uploadpfad.php" method="post" enctype="multipart/form-data">
<p>Wählen Sie eine Textdatei (txt, html usw.) von Ihrem Rechner aus:<br>
<input name="file" type="file" size="50" maxlength="100000" accept="text/*">
</p>
<input type="submit" name="submit" value="Upload" />
</br>
</br>
<a href="/index.html">Zurück</a>
</body>
</html>
Und einmal das dazugehörige PHP-File, welches gleich genannt werden muss wie der rot markierte Bereich:
Code:
<html>
<head>
<title>
Raspberry Pi Webserver
</title>
</head>
<h1>
<font color="red">
Raspberry Pi Webserver
</font>
</h1>
<body>
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
move_uploaded_file($_FILES["file"]["tmp_name"],
"/var/www/Uploads/". $_FILES["file"]["name"]);
echo "<p>Upload successful: " . $_FILES["file"]["name"] . "</p>";
}
?>
<a href="/Upload.html">Zurück</a>
</html>
Achja.....das Raspberry Pi Bild von der HTML Seite gibt es hier:
http://upload.wikimedia.org/wikipedi...y_Pi_Photo.jpg
Umgang mit der Seite ist ganz einfach.....
Browser öffnen, IP-Adresse/Namen von dem HTML-File eingeben, Datei über "Durchsuchen" auswählen, "Upload" drücken, im Ordner "/var/www/Euer Uploadordner" nachschauen, über den erfolgreichen Upload freuen
Kleiner Nachtrag:
Habe mal das dafür notwendige Config-File eingefügt.
Für alle die gerne eine Cloud auf ihrem Raspberry laufen lassen möchten, ist ein Beitrag weiter unten eine Seite gelinkt wo die Installation sehr gut beschrieben wird.
Anschließend muss das Config-File für lighttpd am Ende noch mit
Code:
$HTTP["url"] =~ "^/owncloud/data/" {
url.access-deny = ("")
}
erweitert werden. Dies sorgt dafür das man nicht direkt auf den Ordner zugreifen kann wo die Daten liegen.
Danke nochmal an Schumi, DanielSan und TheDarkRose für die Hinweise!
Lesezeichen