Jak zainstalować serwer WWW na Raspberry Pi (Apache + PHP + MySQL)
ⓘ Ten artykuł mógł zostać częściowo lub całkowicie przetłumaczony przy użyciu narzędzi automatycznych. Przepraszamy za wszelkie błędy, które może to spowodować.
Po utworzeniu karty SD, i po uruchomieniu Raspberry Pi po raz pierwszy, są duże szanse, że chcesz użyć jako serwer WWW.
Dlaczego Raspberry Pi jako serwer WWW ?
Ale dlaczego używać Raspberry jako serwer WWW, a nie przy użyciu usługodawców specjalizujących się w web hosting?
Po pierwsze, z ekonomicznego punktu widzenia, należy wiedzieć, że usługi hostingowe nie są darmowe i że trzeba płacić co miesiąc / rok. W przeciwieństwie do Maliny, którzy po prostu trzeba do połączenia.
W dodatku, wybierając Maliny, masz możliwość modyfikacji usług, jak chcesz (przykłady: rozmiar dysku, hosting bazy danych, itp.), co na ogół nie jest w przypadku wyspecjalizowanych gospodarzy, Które często sprzedają hosting współdzielony z niskiej zdolności konfiguracyjnej.
Jednakże, aby wspierać więcej użytkowników, należy użyć Raspberry Pi 3 (Pi 3 można znaleźć tutaj), Raspberry Pi z 1 GB pamięci RAM, a nie Raspberry typu B + (512 MB pamięci RAM)
Pytanie, które teraz powstaje jest, jak zrobić serwer WWW na Raspeberry Pi ?Installation du serveur Apache avec Raspbian
Co to jest Apache ?
Po pierwsze, zainstalujemy Apache, który jest serwerem WWW jako takim.
Gdy mówimy o serwerze WWW, często myślimy o maszynie, ale termin ten odnosi się również do oprogramowania, które pozwala maszynie analizować żądania użytkownika (w formie http), i zwracać plik odpowiadający żądaniu (lub błąd, jeśli plik nie został znaleziony, lub zapytanie zostało źle sformułowane).
Jako część Apache, jest to oprogramowanie, o którym mówimy.
W tej chwili Apache jest najczęściej używanym serwerem internetowym, z około 60% udziałem w rynku. Apache ma swoją własną licencję, używaną przez wiele innych projektów. Ponadto, masowe użycie Apache’a (który stał się standardem dla serwerów WWW), w połączeniu z jego dużą popularnością, doprowadziło do powstania ogromnej ilości dokumentacji, kursów i innych książek dotyczących jego użycia i bezpieczeństwa, takich jak ta książka.
Czy to dla Raspberry Pi i Raspbiana, czy też dla maszyny o bardziej ogólnym przeznaczeniu, Apache jest więc bezpiecznym wyborem, a umiejętności, które będziesz w stanie zdobyć na ten temat, zawsze będą przydatne.
Instalacja Apache
Przed zainstalowaniem serwera upewnij się, że mamy aktualną maszynę. Aby to zrobić musimy mieć prawa administratora, albo dzięki poleceniu sudo.
sudo apt updatesudo apt upgradesudo apt update
Gdy Raspberry Pi jest już aktualne, zainstalujemy serwer Apache.
sudo apt install apache2
Przy okazji skorzystamy z tego, aby nadać prawa do pliku apache, dzięki któremu można łatwo zarządzać swoimi stronami. Aby to zrobić, uruchom następujące polecenia:
sudo chown -R pi:www-data /var/www/html/sudo chmod -R 770 /var/www/html/
Sprawdź, czy Apache działa
Po zakończeniu instalacji, możemy przetestować, że Apache działa poprawnie, przechodząc do adresu Raspberry.
Aby to zrobić, konieczne jest, aby spróbować uzyskać dostęp do Maliny z portu 80 (ten port nie jest otwarty z zewnątrz, będzie musiał zrobić od samego Raspberry). Nie martw się, to jest bardzo proste. Wystarczy otworzyć przeglądarkę internetową Raspberry, i przejdź do „http://127.0.0.1”. Powinieneś wtedy dostać stronę z komunikatem jak „To działa! „I mnóstwo innego tekstu.
Jeśli nie masz jeszcze GUI na swoim Raspbian, lub używasz SSH do łączenia się z Maliną, możesz użyć następującego polecenia:
wget -O check_apache.html http://127.0.0.1
To polecenie zapisze kod HTML strony w pliku „check_apache.html” w bieżącym katalogu.
Więc wystarczy odczytać plik za pomocą komendy
cat ./check_apache.html
Jeśli widzisz zaznaczone w jakimś miejscu w kodzie „It works! ” to znaczy, że Apache działa.
Apache używa katalogu „/var/www/html” jako root dla twojej strony. Oznacza to, że gdy wywołasz swoją Malinę na porcie 80 (http), Apache będzie szukał pliku w „/var/www/html”.
Na przykład, jeśli wywołasz adres „http://127.0.0.1/example”, Apache będzie szukał pliku „example” w katalogu „/var/www/html”.
Aby dodać nowe pliki, strony, itp, będziesz musiał dodać je do tego katalogu.
Możesz teraz użyć swojej Maliny do stworzenia strony w HTML, CSS i JavaScript, wewnętrznie.
Jednakże, możesz chcieć szybko pozwolić na interakcje między stroną a użytkownikiem. Na przykład, aby pozwolić użytkownikowi na rejestrację, itp. Do tego będziesz potrzebował PHP.
Instalacja PHP na Raspberry Pi
Co to jest PHP ?
Po pierwsze, powinieneś wiedzieć, że PHP jest językiem interpretowanym. I tak jak w przypadku serwerów, akronim PHP może mieć kilka znaczeń. W rzeczywistości, kiedy mówimy o PHP, możemy mówić albo o języku, albo o interpreterze.
Tutaj, kiedy mówimy o instalacji PHP, oznacza to, że zainstalujemy interpreter, aby móc używać tego języka.
PHP (tym razem język) jest głównie używany do tworzenia dynamicznych stron, to znaczy, że użytkownik wysyła informacje do serwera, który zwraca zmodyfikowane wyniki zgodnie z tymi informacjami. Odwrotnie, strona statyczna nie dostosowuje się do informacji dostarczanych przez użytkownika. Jest ona zapisana jako plik raz na zawsze i zawsze będzie dostarczać tę samą treść.
PHP jest darmowy i utrzymywany przez PHP Foundation, jak również Zend Enterprise i różne inne firmy (należy zauważyć, że Zend jest również autorem słynnego frameworka Zend PHP, szeroko stosowanego i uznanego w świecie ” biznesu”).
Jest to jeden z najczęściej używanych języków programowania, a nawet najczęściej używany do programowania stron internetowych, z około 79% udziałem w rynku.
Powtarzam, wszystkie umiejętności, które możesz zdobyć, na temat języka, lub na temat instalacji i konfiguracji interpretera, zawsze będą przydatne. Możemy więc tylko doradzić ci naukę PHP, który jest naprawdę wspaniałym językiem i zbyt często niedocenianym.
Jak zainstalować PHP
Ponownie użyjemy administratora do zainstalowania PHP z wiersza poleceń.
sudo apt install php php-mbstring
Kontrola, czy PHP działa
Aby wiedzieć, czy PHP działa poprawnie, nie jest to bardzo skomplikowane, a metoda jest dość podobna do tej używanej dla Apache.
Najpierw usuwasz plik „index.html” w katalogu „/var/www/html”.
sudo rm /var/www/html/index.html
Następnie tworzysz plik „index.php” w tym katalogu, za pomocą tej linii poleceń
echo "<?php phpinfo ();?>" > /var/www/html/index.php
Od tego momentu, operacja jest taka sama jak w przypadku kontroli Apache. Próbujesz wejść na swoją stronę, i powinieneś otrzymać wynik zbliżony do tego obrazka (jeśli nie masz interfejsu, użyj tej samej metody co poprzednio, i poszukaj słów „PHP Version”).
Tablica wygenerowana przez komendę phpinfo na Raspberry.
Baza danych MySQL dla twojego serwera
Bezpośredni DBMS co to jest ? Dlaczego MySQL ?
Gdy już skonfigurowaliśmy PHP, prawdopodobnie będziesz chciał przechowywać informacje do wykorzystania na swoich stronach. Do tego celu najczęściej używa się baz danych.
Założymy więc DBMS (Database Management System), czyli MySQL.
MySQL jest darmowym, potężnym, masowo używanym DBMS (około 56% udziału w rynku darmowych DBMS). Również w tym przypadku MySQL jest tak niezbędny do rozwoju, niezależnie od języka, że musisz go bezwzględnie poznać i opanować, na przykład dzięki tej książce.
Jak zainstalować MySQL
W tym celu zainstalujemy mariadb-server i php-mysql (który będzie służył jako łącznik między php i mysql)
sudo apt install mariadb-server php-mysql
Sprawdź, czy MySQL działa poprawnie
Aby sprawdzić działanie MySQL, tym razem skorzystamy tylko z wiersza poleceń. W tym celu po prostu połączymy się za pomocą polecenia:
sudo mysql --user=root
Nie usuniemy domyślnego użytkownika root mysql i utworzymy nowego użytkownika root mysql, ponieważ domyślny może być używany tylko z kontem root Linuksa, a więc nie jest dostępny dla skryptów webserver i php.
Aby to zrobić, po połączeniu się z MySQL, po prostu wykonaj te polecenia (zamień password
na hasło, które chcesz) :
DROP USER 'root'@'localhost';CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
Więc masz teraz serwer WWW, podłączony do PHP i MySQL. To wszystko, czego potrzebujesz.
(Przy następnych połączeniach, będziesz mógł połączyć się z mysql bez użycia sudo, za pomocą polecenia mysql --user=root --password=yourmysqlpassword
).
Add PHPMyAdmin
Instalacja PHPMyAdmin nie jest absolutnie konieczna. W tej instalacji, nie będziemy dbać o żadne specjalne ustawienia bezpieczeństwa !
Instalacja PHPMyAdmin jest całkiem szybka i łatwa, musimy po prostu użyć menedżera pakietów za pomocą tej komendy :
sudo apt install phpmyadmin
Program instalacyjny PHPMyAdmin zada ci kilka pytań. Co do części dbconfig-common
, wybierz, aby jej nie używać (ponieważ mamy już skonfigurowaną naszą bazę danych). Jeśli chodzi o serwer, dla którego chcemy skonfigurować PHPMyAdmin, wybieramy Apache. A hasło roota jest takie samo jak to, które ustawiłeś dla MySQL.
Powinieneś także włączyć rozszerzenie mysqli używając powyższej komendy :
sudo phpenmod mysqlisudo /etc/init.d/apache2 restart
Sprawdź czy PHPMyAdmin działa poprawnie
Aby sprawdzić czy PHPMyAdmin działa, po prostu spróbuj się do niego dostać, używając adresu twojego Raspberry, a następnie /phpmyadmin. Na przykład, lokalnie będzie to http://127.0.0.1/phpmyadmin
Jeśli nadal otrzymujesz błąd, może to być spowodowane tym, że PHPMyAdmin został przeniesiony do innego katalogu. W tym przypadku spróbuj wykonać polecenie
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
Teraz możemy uzyskać dostęp do PHPMyAdmin z przeglądarki Raspberry Pi, z adresem url: http://127.0.0.1/phpmyadmin
Udostępnianie serwera z sieci
Twój serwer WWW jest gotowy. Jednak prawdopodobnie nie możesz uzyskać do niego dostępu z Internetu. Rzeczywiście, byłoby konieczne, że twój modem do przekierowania żądań do maliny, dobre porty.
Aby umieścić te przekierowania w miejscu, a nawet uzyskać adres URL, należy spojrzeć na DynDNS i port forwarding!
.