Raspberry Pi | Φτιάξε το δικό σου web server με το LAMP και ανέβασε μία ιστοσελίδα, μία cloud υπηρεσία ή έναν gaming server από το χώρο σου

Raspberry Pi web server

Τον τελευταίο χρόνο οι ταχύτητες του ελληνικού ίντερνετ έχουν ανέβει κατακόρυφα, χάρη στην ευρύτερη χρήση της οπτικής ίνας. Το υψηλό download και ιδιαιτέρως το υψηλό upload που μας προσφέρεται, μας δίνει πλέον τη δυνατότητα να σηκώσουμε το δικό μας web server από το χώρο μας. Σήμερα λοιπόν θα δούμε τι μπορεί να μας προσφέρει ένας οικιακός web server και πώς μπορούμε να τον φτιάξουμε με το Raspberry Pi και το LAMP.

Το καλό με την αύξηση των ταχυτήτων είναι ότι δεν έχουν αυξηθεί ανάλογα και οι τιμές. Για παράδειγμα στη Θεσσαλονίκη έχουμε δύο εταιρίες που προσφέρουν ταχύτητες στα 100Mbps (up και down), με μόλις 25 ευρώ το μήνα, οπότε η δημιουργία ενός οικιακού web server απευθύνεται πλέον σε όλους! Με τη χρήση επίσης ενός Raspberry Pi μπορούμε να κρατήσουμε ακόμη χαμηλότερα το κόστος, καθώς είναι φθηνό και καταναλώνει πολύ λιγότερη ενέργεια από έναν κανονικό υπολογιστή. Πριν ξεκινήσουμε όμως θα πρέπει πρώτα να απαντήσουμε στο ερώτημα:

Γιατί να θέλει κάποιος να σηκώσει το δικό του web server;

Διαφήμιση

1. Για έξτρα ασφάλεια


Η ανάγκη για την προστασία των εταιρικών δεδομένων είναι γνωστή εδώ και χρόνια και με όλα όσα μαθαίνουμε κατά καιρούς για τη Google, το Facebook και την Amazon, τα πράγματα δεν είναι ενθαρρυντικά ούτε για τα προσωπικά μας δεδομένα. Είτε λοιπόν είσαι εταιρία, είτε φυσικό πρόσωπο, η χρήση του δικού σου web server εγγυάται την προστασία τους. Στο δικό σου server δεν μπορεί να σου πει κανείς τι θα ανεβάσεις, σε πόση ποσότητα και γενικά πώς θα τον χρησιμοποιήσεις. Όλα είναι στα δικά σου χέρια και υπάρχουν άπειρα προγράμματα και εφαρμογές για να κάνεις τα πάντα.

2. Για το χαμηλό κόστος


Πέρα από το χαμηλό κόστος της οπτικής ίνας, της κατανάλωσης ρεύματος και της απόκτησης ενός Raspberry Pi, έχοντας το δικό σου web server γλιτώνεις επίσης και τα έξοδα του hosting. Στο ίντερνετ υπάρχουν διάφορα δωρεάν πακέτα, αλλά είναι τόσο περιορισμένα που στο τέλος σε αναγκάζουν να πάρεις κάποιο επί πληρωμή. Το κόστος κυμαίνεται συνήθως στα 80 ευρώ το χρόνο, αλλά όσο περισσότερος κόσμος έρχεται στη σελίδα σου ή όσο περισσότερο χώρο καταλαμβάνεις, η τιμή αυτή ανεβαίνει. Μπορείς λοιπόν να γλιτώσεις αυτά τα χρήματα και να τα επενδύσεις στη δημιουργία ενός Raspberry Pi cluster.

Raspberry Pi cluster

3. Για την ελευθερία στο λογισμικό


Μπορεί να υπάρχουν ένα σωρό υπηρεσίες hosting, αλλά αυτό που σου προσφέρουν στην πράξη είναι πολύ συγκεκριμένο και περιορισμένο. Υπάρχουν για παράδειγμα εταιρίες όπως το Dropbox και το MEGA, που προσφέρουν χώρο αλλά μόνο για την αποθήκευση των αρχείων σου. Κάποιες άλλες σου δίνουν το δικό τους χώρο, αλλά μόνο για να ανεβάσεις την ιστοσελίδα σου και μάλιστα αποκλειστικά μέσω του WordPress. Πρέπει λοιπόν να γραφτούμε σε περισσότερες από μία υπηρεσίες, να μοιράσουμε τα δεδομένα μας σε αυτές και να χρησιμοποιήσουμε τα δικά τους CMS προγράμματα.

Χρησιμοποιώντας όμως το δικό μας web server, μπορούμε να εγκαταστήσουμε όποιο πρόγραμμα μας αρέσει και να τον κάνουμε ταυτόχρονα:

  • ένα διαχειριστή ιστοσελίδας / blog με το Wordpress,
  • έναν cloud server με το Nextcloud,
  • ένα media server με το Plex,
  • ένα smart home server με το Hass.io,
  • έναν ERP και CRM server για την εταιρία μας με το Dolibarr
  • έναν gaming server και ούτω καθ' εξής.

4. Γιατί μπορείς να το κάνεις επάγγελμα


Η ουσία ενός server είναι να διαθέτει τα περιεχόμενά του από ένα κεντρικό σημείο, σε πολλούς χρήστες. Όταν λοιπόν αποφασίσεις τι θέλεις να κάνεις με τον δικό σου, μπορείς να νοικιάσεις τις υπηρεσίες που παρέχει, με μία μηνιαία συνδρομή σε άλλους χρήστες. Αυτό κάνουμε κι εμείς με τον δικό μας Nextcloud server, στον οποίο φιλοξενούμε δωρεάν τους φίλους μας που έχουν τις ίδιες ανησυχίες με εμάς. Γιατί λοιπόν αυτό να μην εξελιχθεί και σε επάγγελμα αύριο μεθαύριο;

Raspberry Pi server

Διαφήμιση

Η εγκατάσταση του LAMP στο Raspberry Pi


Όλα τα παραπάνω μπορούν να γίνουν πραγματικότητα με την εγκατάσταση του LAMP στο Raspberry Pi, ενός σετ υπηρεσιών που είναι απαραίτητες για τη δημιουργία ενός web server. Το LAMP έχει πάρει το όνομά του από τα αρχικά των "Linux, Apache, MySQL, PHP", δηλαδή των λογισμικών που πρέπει να εγκαταστήσουμε. Χρειαζόμαστε το Linux για λειτουργικό σύστημα, τον Apache server για να προσφέρουμε τις υπηρεσίας μας μέσω browser, τη MySQL για τη διαχείριση της βάσης δεδομένων μας και τέλος την PHP, η οποία είναι η γλώσσα προγραμματισμού των περισσότερων server εφαρμογών.

Το Linux το έχουμε ήδη εγκαταστήσει στο Raspberry Pi μας με τη μορφή του Raspbian. Σημειώνουμε επίσης κάπου την IP του Pi (στο δικό μας παράδειγμα θα χρησιμοποιήσουμε το "192.168.1.99") και προχωράμε στην εγκατάσταση των υπολοίπων.

Για να εγκαταστήσουμε τον Apache server, ανοίγουμε ένα τερματικό και δίνουμε την εντολή:

sudo apt install apache2 -y 

Apache server installation command

Τσεκάρουμε αν έχει εγκατασταθεί σωστά, ανοίγοντας τον browser του Pi στη διεύθυνση "192.168.1.99". Αν όλα έχουν γίνει σωστά, θα δούμε την ακόλουθη εικόνα στον browser μας.

Apache server default page

Για να εγκαταστήσουμε τώρα τη MySQL για τη διαχείριση της βάσης δεδομένων μας, δίνουμε την εντολή:

sudo apt install mysql-server php-mysql -y

Για να ενημερωθεί ο Apache server για τις αλλαγές στο σύστημα, τον κάνουμε επανεκκίνηση με την εντολή:

sudo service apache2 restart

Τέλος για να εγκαταστήσουμε την PHP δίνουμε την εντολή:

sudo apt install php -y

Για να δοκιμάσουμε αν όλα πήγαν καλά, πηγαίνουμε στο φάκελο "html" με την εντολή:

cd /var/www/html
  
Διαγράφουμε το αρχείο "index.html" με την εντολή:

sudo rm index.html

Δημιουργούμε το αντίστοιχο αρχείο "index.php" με την εντολή:

sudo leafpad index.php

Στο αρχείο εισάγουμε τα ακόλουθα, το αποθηκεύουμε και το κλείνουμε:

<?php echo "Eimai kai poly mastoras"; ?>

PHP website sample

Κάνουμε επανεκκίνηση στον Apache με την εντολή:

sudo service apache2 restart

Τέλος ανοίγουμε στον browser τη διεύθυνση "192.168.1.99" και βλέπουμε τη σελίδα που δημιουργήσαμε.

Πώς ανεβάζουμε την ιστοσελίδα μας στο web server


Χωρίς να το έχουμε συνειδητοποιήσει μέχρι στιγμής, έχουμε ήδη ανεβάσει δύο ιστοσελίδες στο server μας! Η πρώτη ήταν το "index.html" που δημιούργησε για εμάς ο Apache server και η δεύτερη το "index.php" που φτιάξαμε για να τεστάρουμε την PHP.

Μια (τακτοποιημένη) ιστοσελίδα όμως αποτελείται συνήθως από το αρχείο "index.html", τους φακέλους "css", "images", "js" και τα επιμέρους αρχεία της. Για να την ανεβάσουμε λοιπόν στο web server μας, το μόνο που χρειάζεται να κάνουμε είναι να πάρουμε όλα αυτά τα αρχεία και τους φακέλους και να τα μεταφέρουμε στο φάκελο "html" του Raspberry Pi, διαγράφοντας πρώτα τα περιεχόμενά του.

A typical website folder tree

Στη συνέχεια ανοίγουμε στον browser τη διεύθυνση "192.168.1.99", όπου μπορούμε να δούμε πλέον τη νέα μας σελίδα. Αν θέλουμε να έχουμε περισσότερες από μία υπηρεσίες ή σελίδες στο server μας, πρέπει να τις βάλουμε σε ξεχωριστούς φακέλους, αλλά πάντα μέσα στο φάκελο "html". Για αυτό θα χρειαστεί βέβαια να κάνουμε και κάποιες έξτρα ρυθμίσεις, οι οποίες περιγράφονται εδώ.

Για να μπούμε σε αυτές θα πρέπει να δώσουμε στον browser την IP του Pi και στη συνέχεια το όνομα του φακέλου στον οποίο βρίσκεται. Για παράδειγμα για να μπούμε στο Nextcloud πρέπει να δώσουμε:

192.168.1.99/nextcloud

Μπορούμε όμως στις ρυθμίσεις του αρχείου virtual hosts να δηλώσουμε κανονικές διευθύνσεις.

Apache server folder with multiple websites

Όλα αυτά μέχρι στιγμής γίνονται τοπικά και μπορούμε να επισκεφτούμε τις σελίδες μας από διάφορες συσκευές, αρκεί να είναι όλες συνδεδεμένες στο ίδιο δίκτυο Wi-Fi. Για να τις ανεβάσουμε πραγματικά στο ίντερνετ, θα πρέπει να ακολουθήσουμε τις οδηγίες για το Let's Encrypt και το DuckDNS που είδαμε παλιότερα.

Πρέπει τέλος να πούμε ότι πουθενά στη διαδικασία εγκατάστασης δε χρειάστηκε να χρησιμοποιήσουμε τη MySQL που εγκαταστήσαμε στην αρχή. Ο λόγος είναι γιατί οι σελίδες με τις οποίες τεστάραμε το LAMP δεν περιελάμβαναν κάποια βάση δεδομένων. Αν θελήσουμε όμως να εγκαταστήσουμε το Wordpress για παράδειγμα, η MySQL είναι απαραίτητη και αυτό είναι κάτι που θα δούμε σε επερχόμενο άρθρο.

Σχόλια

Δείτε επίσης...

Android | Γιατί δε θα αγόραζα ποτέ smartphone της OnePlus

Φεύγω από την Google (μέρος 15) | ''Ξηλώνουμε'' τα Google apps από το Android

Ιδιωτικό απόρρητο | Το αφελές επιχείρημα του ''Δεν έχω τίποτα να κρύψω''

Docker (μέρος 7) | Στήνουμε έναν reverse proxy για τα container μας με το Traefik

Μάθε παιδί μου Linux (μέρος 11) | Δίσκοι, κατατμήσεις και σύστημα αρχείων (filesystem)

Ubuntu Touch 2020 review | Μια πραγματική mobile GNU/Linux διανομή έτοιμη για καθημερινή χρήση

Android | Περιόρισε την παρακολούθηση των εφαρμογών και κόψε τις διαφημίσεις με το TrackerControl

Απόρρητο | ''Μπερδεύουμε'' τον αλγόριθμο Google και Facebook με ψεύτικες πληροφορίες

Android | Βάλε στην ''απομόνωση'' τις εφαρμογές που δεν εμπιστεύεσαι με το Shelter

Docker (μέρος 1) | Τι είναι και πώς το εγκαθιστούμε στον υπολογιστή μας;