Prywatna chmura na Raspberry Pi

Jak już kiedyś pisałem, Raspberry Pi to komputer potencjalny. Sam w sobie nie stanowi niczego specjalnego, lecz użyty we właściwy sposób może posłużyć do stworzenia ciekawych rzeczy. Co powiecie na własną, prywatną chmurę? Brak ograniczeń pojemności i transferów. Nie ma zagrożenia, że operator przegląda pliki użytkowników, albo wyda na każde żądanie zagranicznym instytucjom.

Rozwiązaniem problemu prywatnej chmury jest ownCloud zainstalowany na Raspberry Pi. Fakt, trzeba trochę zainwestować i poklepać w klawiaturę, ale może warto spróbować? Tak czy inaczej, do uruchomienia własnej chmury potrzebujemy:

  • Raspberry Pi,
  • Przenośny dysk twardy lub inny nośnik na USB,
  • Zasilacz

Dla estetów przyda się jeszcze jakaś obudowa, choć moim zdaniem nie jest to najważniejsza część tego typu projektów. Pełna instrukcja dostępna jest tutaj.

Zapowiedź: 8 wyjść cyfrowych dla Raspberry Pi po I2C

Na razie tylko w formie zapowiedzi wideo:

W niedalekiej przyszłości opublikuję poradnik jak do Raspberry Pi dodać 8 bitowy port równoległy sterowany przy pomocy magistrali I2C. A skoro będziemy już mieli port równoległy to czemu nie użyć go do sterowania równymi rzeczami? Diody LED to absolutne minimum. A całość oprogramujemy w Pythonie, bo to podobno bardzo trendy ostatnimi czasy.

Instalacja WordPress na Raspberry Pi

Jak pisałem tutaj, na Raspberry Pi nie zbudujemy sensownego serwera WWW (po prostu wydajność obliczeniowa jest za niska). Nie przeszkadza to oczywiście próbować, co częściowo opisałem w tym wpisie.

Dzisiaj idziemy krok dalej i na serwerze WWW, zbudowanym w oparciu o Raspberry Pi i system operacyjny Raspbian Weezy, zainstalujemy i uruchomimy popularną platformę blogową WordPress.

Czytaj dalej

Nadanie dostępu zdalnego do serwera MySQL

Standardowo zainstalowany i uruchomiony serwer MySQL na systemach linuxowych nie przyjmuje połączeń zewnętrznych. Jest to standardowe zachowanie zapewniające podstawowe bezpieczeństwo. W końcu, nie można się włamać zdalnie do czegoś, co nie jest dostępne. Czasami trzeba jednak do serwera łączyć się z zewnątrz. Choćby po to, aby serwerem zarządzać. Aby było to możliwe należy:

  1. zezwolić MySQL na nasłuch na interfejsie sieciowym. Aby to zrobić:
    1. edytujemy plik my.cnf sudo nano /etc/mysql/my.cnf
    2. znajdujemy wiersz bind-address = 127.0.0.1 i stawiamy przed nim znak #. Spowoduje to włączenie nasłuchu serwera na wszystkich interfejsach sieciowych podłączonych do serwera. Jeśli chcemy zezwolić na dostęp po wybranym interfejsie, podajemy konkretny adres IP
    3. restartujemy serwer sudo service mysql restart
  2. zezwolić użytkownikowi MySQL , na przykład root, na łączenie się przez zdalny interface:
    1. mysql -u root -p
    2. GRANT ALL PRIVILEGES ON *.* TO [email protected]"%" IDENTIFIED BY "podaj_haslo"; (zamiast podaj_hasło wpisz hasło użytkownika root)
    3. exit;

I to wszystko. Od tego momentu, użytkownik root MySQL może łączyć się zdalnie z serwerem.

Raspberry Pi w roli serwera WWW

Kilka wpisów do tyłu napisałem, że na Raspberry Pi nie uruchomimy sensownego serwera WWW. Zdania podtrzymuję i za jakiś czas przedstawię na to dowody. Nie zmienia to jednak faktu, że stos LAMP możemy zainstalować, uruchomić i używać.

Punktem wyjścia będzie przygotowanie systemu operacyjnego, czyli na przykład Raspbian Weezy. Po zainstalowaniu, skonfigurowaniu i zalogowaniu się do konsoli:

Aby mniej pisać zaczynamy od root’a, czyli

sudo su

Instalujemy Apache i PHP5

apt-get install apache2 php5 libapache2-mod-php5

Dodajemy do tego MySQL

apt-get install mysql-server mysql-client php5-mysql

I to tyle. Nasze Raspberry Pi stało się właśnie pełnoprawnym serwerem WWW działającym pod kontrolą Apache, PHP5 i system baz danych MySQL. Dopełni szczęścia potrzebujemy już tylko restartu apacza

service apache2 restart

Po tej operacji otwarcie w przeglądarce adresu naszego serwerka powinno zaowocować słynnym „It Works!”, a my możemy w katalogu /var/www umieścić pierwsze treści. Najlepiej statyczne, bo wydajność PHP jest skromna, ale o tym w następnym odcinku.

Czego nie można zrobić z Raspberry Pi?

Raspberry Pi przebojem podbija świat. Komputerek wielkości karty kredytowej jest prawdziwym hitem. Fabryki nie nadążają z produkcją, a na zamówienia od oficjalnych dystrybutorów czeka się kilka tygodni. Dlaczego? Co takiego niezwykłego jest w malutkim komputerze o wydajności procesora porównywalnej z Pentium II 300MHz i sprzętowym dekoderze x264?

Jeśli popatrzymy na same podzespoły z jakich jest złożony, to nie ma w nim absolutnie nic ciekawego. Procesor ARM7, 256 lub 512 (w nowych wersjach) MB pamięci RAM, 2 porty USB, HDMI, dźwięk i port LAN. Współczesne telefony potrafią mieć potężniejsze wnętrzności (nie licząc USB i LAN) niż Raspberry Pi. A jednak stosunkowo niska cena, całkiem spory wybór oprogramowania i „potencjalność” małej płytki z przylutowanymi układami sprawiają, że dla wielu jest on objawieniem mijającego roku.

W cyklu wpisów przedstawię kilka pomysłów na wykorzystanie Raspberry Pi, lecz zacznijmy od rzeczy przykrych, czyli do czego raczej nie użyjemy RPi ze względu na jego ograniczenia:

  1. RPi nie zastąpi „normalnego” komputera. Da się oczywiście uruchomić Raspbiana w trybie graficznym, używać myszki,  przeglądarki internetowej, lecz jest to P.O.W.O.L.N.E. Bardzo. Mi się odechciało po kilku minutach. Zapominamy o tym i kropka,
  2. Na RPi nie postawimy sensownego serwera WWW. Jakiś postawimy. Jest Apache, jest PHP, MySQL. Wszystko jest. Tyle tylko, że wydajność słabiutka. O ile jeszcze z serwowaniem statycznych htmli jakoś sobie to radzi i osiągałem nawet wynik na poziomie 100req/s. Całkiem nieźle jak na takie maleństwo. Niestety, uruchomienie prostego skryptu PHP obniżyło ten wynik 50 krotnie o 2,1req/s. A to nawet bez podłączenia do MySQL. O tym więc zapominamy, choć jakąś prostą stronę domową można na tym trzymać. A włączenie APC z oficjalnych źródeł generowało co chwila ‚Segmentation fault”,
  3. Mikrokontrolerów i innych specjalizowanych układów, gdyż jest zbyt duże/zbyt szybkie/za drogie i pobiera zbyt dużo prądu.

Jeśli więc nie zastąpi tych trzech rzeczy, a lista jest zapewne dużo dłuższa, to co zastąpi? Trochę tego i trochę tamtego. Lecz od zastępowania ważniejsze są nowe drogi które otworzy. Ale o tym za jakiś czas.