Kategorie: IT

Raspberry Pi jako domácí "miniServer" Apache

Již nějakou dobu mám u sebe doma Raspberry Pi a již od první myšlenky na objednání mělo předurčeno, k čemu bude sloužit. Raspberry Pi je díky své velikosti a spotřebě předurčeno k nejrůznějším bastlířským projektům, mně však v základu bude sloužit jako domácí "mini server". Jak na to?

Raspberry Pi - LAMP server

Autor: KdoSiOdJinud | Vydáno: 8.3.2013 23:40 | Přečteno: 22204x | Komentářů: 2

Budeme předpokládat, že máte k Raspberry Pi čistou paměťovou SDHC kartu a staženou aktuální verzi os, který chcete na naší hračce provozovat. Já zvolil Rasbian z této adresy.

Instalace samotného systému na kartu je poměrně jednoduchá, stačí se řídit cca těmito intrukcemi:

www.cdr.cz/clanek/raspberry-pi-recenze/instalace-systemu-na-SD

Po úspěšné instalaci systému nás čeká první start, Já osobně jsem doma neměl žádný monitor s HDMI a kupodivu ani žádnou klávesnici, proto jsem připojil Raspberry ethernetovým kabelem k routeru. Zapnutí systému se spouští ihned po zapojení napájení, proto jakmile vše pozapojujete, raspberry se k routeru přihlásí (předpokladem je automatické DHCP, což většina lidí doma mít bude :) ). Raspberry nám teď bliká, svítí no zkrátka to vypadá hezky, jak se tedy připojit?

Jak se připojit k Raspberry Pi přes SSH

Distribuce Rasbian nám dává do výnku otevřené SSH, proto nebudeme spekulovat nad jinými možnostmi a této možnosti využijeme. Potřebujeme znát IP adresu, kterou raspberry dostalo, uživatelské jméno a heslo.

Jakou má moje Raspberry Pi IP adresu?

Opět jednoduchá záležitost, variant jak adresu zjistit je několik:

  • nahlédneme do routeru na aktuálně připojená zařízení

  • oscenujeme síť třebas pomocí Nmap

  • tipujeme (tuty variantu nedoporučuji, sic se brzy trefíte - ale copak chcete být tak trapní a adresu tipovat? )

Pokud známe adresu našeho Raspberry máme vyhráno, Rasbian je přednastaven s účtem:

Uživatelské jméno: pi
Heslo: raspberry

Připojení přes SSH v linuxu

  • spusťte terminál
  • zadejte pi@123.123.123.123 (za zavináčem je adresa raspberry)
  • potvrďte
  • zadejte heslo, potvrďte a máte konzoli našeho milovaného raspberry

Raspberry - login with ssh

Připojení přes SSH z windows

Stáhněte si klienta pro SSH, klasicky typicky a oblíbeně to bude Putty, vyplňte ip adresu, jméno a popřípadě v SSH->Auth načtěte soubor s vaším ssh privátním klíčem.

Klikněte na připojit, zadejte heslo a jsme tam - máme konzoli.

Nastavení Raspberry Pi, instalace Apache a užitečných nástrojů

Při prvním spuštění se tedy zalogujeme do Raspberry Pi těmito údaji (popřípadě přihlásíme rsa klíčem):

Jméno: pi
Heslo: raspberry

Jako první věc doporučuji si raspberry poštelovat v základním configu, ten spustíme tímto příkazem:

sudo raspi-config

V tomto configu jednoduše v grafickém prostředí (jelikož je to opravdu jednoduché nebudu popisovat jednotlivé kroky) provedeme tyto akce:

  • změníme heslo uživatele
  • změníme heslo roota
  • vypneme grafické prostředí
  • nastavíme locale na cs_CZ.UTF-8
  • nastavíme timezone
  • nastavíme expand_rootfs na povoleno

Po tomto základním nastavení doporučuji ještě fixnout bug v kodovaní češtiny, který u českých znaků nastává. Provedeme to následovně:

sudo nano /etc/environment

...přidáme následující dva řádky:

LC_ALL=cs_CZ.UTF-8
LANG=cs_CZ.UTF-8

A pomocí CTRL+X a následným ENTERem uložíme. Tímto jsme si připravili Rasbian a můžeme pokračovat v instalaci LAMP serveru.

SSH a přístup pouze na základě RSA klíče (veřejný a privátní klíč)

Další krok není tak úplně zásadní, ale pro pohodlnost a bezpečnost doporučuji nastavit přihlašování k SSH za pomoci jen a pouze RSA klíče. Pokud tedy RSA klíč nemáte, vygenerujete si jej. :)

Pokud tedy máme soubory rsa_id a rsa_id.pub. Soubor rsa_id obsahuje váš privátní klíč a v žádném případě by se neměl dostat z vaší režije, nikdy jej nikomu nezasílejte ani ho nikam neuploadujte.

Aby tedy Raspberry pochopilo, respektive ssh, že se chceme přihlašovat bez hesla a pouze pomocí klíče je třeba přidat náš veřejný klíč (rsa_id.pub) do autorizovaných klíčů. Proto si otevřeme soubor rsa_id.pub a klíč zkopírujeme a následně jej předáme raspberry.

sudo nano /home/pi/.ssh/authorized_keys

Vložíme náš veřejný klíč a opět pomocí CTRL+X a ENTER uložíme.

Nyní doporučuji se z raspberry odhlásit příkazem "exit" a znovu se pomocí SSH přihlásit, pokud nejsme dotazováni na heslo je vše v pořádku a můžeme pokračovat. Pokud se vás stále SSH dotazuje na heslo, zkontrolujte správné umístění souborů s klíči. Pokud by jsme zakázali přihlášení s heslem a nechali pouze rsa login, ztratili by jsme možnost se vzdáleně přihlásit. Pokud pak člověk nemá k dispozici monitor s HDMI, HDMI kabel a USB klávesnici je jak se říká nahraný :)

Zablokujeme přístup na raspberry pomocí hesla:

sudo nano /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes

Opět pomocí CTRL+X a ENTER uložíme.

Raspberry Pi - jak nainstalovat LAMP server

LAMP server jak každý určitě známe znamená:

  • L - Linux
  • A - Apache
  • M - MySql
  • P - PHP

Jdeme tedy instalovat jednotlivé součásti, ty můžeme buď nainstalovat postupně, nebo prostě balíčkovači předáme informaci o všech požadovaných balících a on postupně nainstaluje vše potřebné.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get -y install apache2 mysql-server php5 php5-mysql postfix

Ověření funkčnosti jednotlivých částí:

Instalace užitečných nástrojů, které já osobně používám:

sudo apt-get install htop git-core mc
sudo wget "http://downloads.sourceforge.net/adminer/adminer-3.6.3.php" -O /var/www/adminer.php

Pokud jste si všimli, na Raspberry je spousta pinů a je krásně až sexy jednoduché na těchto pinech nastavovat logické hodnoty 0/1 nebo komunikovat přes RxD TxD. Pro snadné ovládání tedy doporučuji instalovat gpio projekt:

git clone git://git.drogon.net/wiringPi
cd wiringPi
git pull origin
./build
cd ..
sudo rm -rf wiringPi

Nápovědu k ovládání gpio získáme zadáním příkazu:

gpio -h

Rozepisovat se tady o gpio je nad rámec, ale nápověda je stručná a přímá.

Raspberry Pi a automount externího HDD

Pokud budete chtít připojit k Raspberry externí hdd, může se vám stát, že se nebude automaticky připojovat. Řešením je editace souboru fstab, který se při startu postará o správné připojení disku, v příkladu disk připojuji s právy 777, tzn. každý může dělat cokoliv. :)

Nejprve si zjistíme, kde máme disk připojený:

sudo fdisk -l

Já ho měl na /dev/sda1, takže pokračujeme dál:

sudo nano /etc/fstab

Přidat tento řádek (za předpokladu, že disk je formátován na fat32):

/dev/sda1 /media/Disk vfat user,rw,umask=000 0 0

Při přidávání řádku si dejte opravdu pozor na oddělování údajů, odděleny jsou tabulátorem a nesmí tam být ani mezera navíc. Pokud je řádek přidaný, tak ještě vytvoříme adresář, do kterého jsme zadali připojování:

sudo mkdir /media/Disk

Po těchto všemožně nemožnejch úpravách doporučuji restart, který trvá řádově několik vteřin, maximálně minut:

sudo reboot

...a máme hotovo :) Nyní při zadání IP Raspberry uvidíme funkční apache server s root adresářem ve /var/www

Jelikož jsme instalovali adminera od Jakuba Vrány, můžeme se pokusit připojit i k databázi a zkontrolovat její funkčnost. Adresa je ve formátu:

10.0.0.166/adminer.php (kde ip je ip raspberry)

Pro sledování výkonu můžete při připojení přes ssh zadat příkaz:

htop

Pro přehlednou správu souborů můžete využít Midnight Commander

mc

Ukončíte je klasicky CTRL+C

Zálohování

Pozor, vytváření bitové zálohy může (a většinou trvá dlouho). Osobně mám ext. disk, na který sem zálohu ukládal, formátovaný na FAT32, takže nemohu vytvořit soubory větší než 4G a proto zálohu pomocí funkce split rozházím do několika menších souborů. Adresy oddílů jsou opět podle mé instalace, mohou se lišit, vše potřebné zjistíte zadáním příkazu:

sudo fdisk -l

Vytvoření zálohy:

sudo dd if=/dev/mmcblk0 | gzip -c | split -b 2000m - /media/Disk/backup_raspi.img.gz.

Obnovení zálohy:

sudo cat /media/Disk/backup_raspi.img.gz.* | gzip -dc | dd of=/dev/mmcblk0

Tip na závěr

Dominantní společnost v poskytování internetu (je řeč o O2) poskytuje standartně pro své klienty veřejné IP adresy, u kterých nezaručuje, že jsou pevné. Má IP se mi za více jak půl roku nezměnila, takže při správném nastavní mohou klienti o2 mít přístupné své Raspberry odkudkoliv.

Tip 2 na závěr

Pokud máte k připojený externí hdd a máte internet od o2, nic vám nebrání stahovat soubory (filmy ne, samozřejmě jen legální linuxové distribuce) odkudkoliv na tento disk. Stačí se připojit a využít notoricky známý wget. V mém případě:

wget "www.linuxovedistribuce.cz/mojeoblibena.iso" -O /media/Disk/mojeoblibena.iso

I po zavření terminálu (né přes CTRL+C) se vám oblíbená distribuce bude stahovat a po příchodu ze školy nebo z práce máte vše na zlatém podnosu.

Závěrem

Instalace LAMP na Raspberry je jak vidíte hračka, v dalších dílech o Raspberry si povíme jak server více zabezpečit, jak se připojovat a spravovat databázi přes terminál a další užitečné leč pro mnohé běžné věci. :) Doufám, že článek byl alespoň pro některé přínosný. Dotazy rád zodpovím. :)

V tomto článku je naznačeno mnoho věcí o kterých bych se rád rozepsal podrobněji a více se jim věnoval. To bude muset ale počkat do příštího článku, přeci jen jeden článek o deseti tématech a sto stránkách není zrovna oblíbený :).

Komentáře rss

Pokud hledáte službu či máte dotaz mimo téma článku, využijte prosím sekci Nabídky / poptávky.


, wiringPi odpovědět

Užasný.
Kde muže byt problém?

pi@raspberrypi:~$ cd wiringPi
pi@raspberrypi:~/wiringPi$ git pull origin
Already up-to-date.
pi@raspberrypi:~/wiringPi$ ./build
wiringPi Build script
=====================

WiringPi Library
[UnInstall]
make: Nothing to be done for 'all'.
[Install Headers]
[Install Dynamic Lib]

WiringPi Devices Library
[UnInstall]
make: Nothing to be done for 'all'.
[Install Headers]
[Install Dynamic Lib]

GPIO Utility
make: Nothing to be done for 'all'.
[Install]

All Done.

NOTE: To compile programs with wiringPi, you need to add:
-lwiringPi
to your compile line(s) To use the Gertboard, MaxDetect, etc.
code (the devLib), you need to also add:
-lwiringPiDev
to your compile line(s).

, Výkon odpovědět

Velmi pěkné. Díky za článek.
Zajímal by mě výkon, především file serveru - předpokládám samba? Zvládá práci s více soubory zároveň bez zadýchání?
Používám LAMP na starém PC (Pentium 13 let staré), ale spotřeba je neúnosná.
Díky za odpověď
josef.ansl@gmail.com