Server

Een sftp verbinding naar je Raspberry Pi

Vervolg op het artikel van 4 februari “Installeer WordPress op een Raspberry Pi

SFTP

Als je WordPress hebt geïnstalleerd op je server wil je ook regelmatig backups maken, bestandsrechten aanpassen, plugins en thema’s installeren etc. Dat kan op verschillende manieren. Een van de makkelijkste manieren is het gebruiken van het sftp protocol. In tegenstelling tot FTP (File Transfer Protocol) gebruikt sftp een SSH verbinding om contact te leggen met je server. Dat is natuurlijk veel veiliger.  Wat je nodig hebt is een (s)ftp client op je gewone computer. In dit voorbeeld gebruik ik Filezilla maar er zijn natuurlijk meer smaken voorhanden.

FileZilla

Onder Ubuntu installeer je FileZilla met

sudo apt-get install filezilla

Open FileZilla en vul onder Host vervolgens het protocol gevolgd door het IP adres van je Raspberry Pi in. Bijvoorbeeld:

sftp://192.168.1.31

Dat je vervolgens ‘Gebruikersnaam en Wachtwoord” moet invullen lijkt mij duidelijk. De 1e keer zal je worden gevraagd of je de hostsleutel te bewaren. Je kan het vinkje aankruisen waardoor je Raspberry Pi als vertrouwde bron hebt gekenmerkt.

sftp-filezilla

Vervolgens wordt de verbinding opgebouwd en kom je terecht in de /home/pi van je Raspberry Pi. Navigeer vervolgens naar /var/www/ (gebruik je invoerregel achter “Externe site:” om bij je WordPress bestanden te komen.

Nautilus

Mogelijk ook handig om te laten zien dat je onder je bestandsbeheerder ook met sftp kan werken. In dit voorbeeld gebruik ik Nautilus (GNOME/Unity). Onder Nautilus kan je met de toetscombinatie CTRL+L de locatiebalk activeren. Daarin kan je verbinding maken met je server (zie afbeelding voor syntax).

sftp_nautilus

 

Installeer WordPress op een Raspberry Pi

Er zijn vele toepassingen te bedenken om je Raspberry Pi nuttig te maken. Zelf heb ik er voor gekozen om er een WordPress website op te laten draaien. Hieronder laat ik stapsgewijs de daarvoor  benodigde stappen zien. De instructies hieronder worden uitgevoerd op een Raspberry Pi 2 waarop de laatste versie draait van Raspbian (31-01-2015).  Maar deze instructies gelden natuurlijk net zo goed voor een Ubuntu of Debian computer. Hoewel een wifi dongle prima werkt heb ik er voor gekozen om de Raspberry Pi te verbinden met mijn router via een ethernet (eth0) aansluiting.

raspberrypi_2

Voorbereidingen

Maak aantekeningen van je vorderingen. Er worden meerdere users en wachtwoorden gebruikt voor Raspberry Pi, MySQL root, MySQL gebruiker en voor WordPress.  En je moet (voor deze howto) natuurlijk Raspbian hebben geïnstalleerd op je Raspberry Pi. Daarbij is het handig om onder Advanced Options te kiezen voor het aanzetten van de SSH server. Op die manier kan je comfortabel van achter je eigen desktop je server bereiken. Onder mijn desktop (Ubuntu) is het een kwestie van een terminal openen met daarin het volgende commando:

ssh pi@hetipadresvanjeraspberrypi

Dat IP adres is van belang. Je moet ervoor zorgen dat je Raspberry Pi altijd van hetzelfde IP adres wordt voorzien. Normaal gesproken wordt een IP adres uitgedeeld door je DHCP server van je router. Dat is handig maar dat zal echter niet altijd hetzelfde IP adres opleveren. Daarom begin je met het creëren van een statisch IP adres.

Maak een statisch IP adres aan

Log in op je Raspberry Pi

bekijk de uitvoer van:

Hoe maak je een mysql dump?

Naast Linux op je desktop heb je mogelijk ook nog een server draaien. Dat kan bij je thuis zijn of je maakt gebruik van een webserver bij een provider.

Mocht je bij een provider een zgn. shared website hebben dan is het meestal niet mogelijk om middels een ssh verbinding binnen te komen. Met behulp van bijv. FTP is het niet lastig om bestanden heen en weer te versturen tussen je desktop en server. Maar hoe pak je dat aan als je een backup of restore wilt uitvoeren van een op de webserver draaiende mysql database?

Hier behandel ik dan drie mogelijkheden die ik zelf heb geprobeerd. Je maakt óf gebruik van phpmyadmin, óf van je terminal of middels een script in de grafische interface (Plesk, Directadmin etc.) van je provider.

Let op: Mocht je dit willen proberen dan doe je dat voor eigen risico. En voor de goede orde, de terminal en crontab is bij mij de absolute favoriet.

PHPMYADMIN

Dit programma kan je óf zelf installeren óf je maakt gebruik van je providers DB Manager wat ook vaak een versie van phpmyadmin is. Als je database is geselecteerd kies je voor het export tabblad, kiest vervolgens voor selecteren alle tabellen en maakt in de regel gebruik van de default ingestelde waarden. Maar als je een grote database hebt draaien is het best nog lastig om die backup fatsoenlijk binnen te krijgen. Bijvoorbeeld omdat de te exporteren omvang is beperkt door de provider. Het is dan ook veel handiger om het via je terminal te doen. Daarvoor heb je wel medewerking nodig van de provider. Die moeten in hun firewall jouw IP adres vrijgeven voor mysql diensten. Je provider heeft dan waarschijnlijk wel een eis dat je zelf met een zgn. fixed IP adres moet werken. Als dat allemaal gelukt is ga je als volgt te werk:

MySQL dump maken vanuit je terminal

Open een terminal en installeer de mysql client. Onder Ubuntu 11.04 gaat dat met:

sudo apt-get install mysql-client-5.1

Vervolgens voer je in je terminal een commando in met de volgende syntax:

 

mysqldump -h DOMEINNAAM -u DATABASE_USERNAAM -pWACHTWOORD DATABASENAAM > GEWENSTE UITVOERNAAM.sql

 

De groot afgedrukte aanwijzingen pas je dus aan met je eigen gegevens. En dan gewoon in kleine letters. Let op dat de optie -p meteen wordt gevolgd door het database wachtwoord. Je zal bij het uitvoeren van deze opdracht zien dat je heel snel je database krijgt aangeleverd (in je /home/user map)

Als je dit nu wilt automatiseren dan kan je op je desktop (of op een Linux based NAS of home server) een crontab maken. Open je terminal en voer in:

 

crontab -e

 

Je krijgt dan mogelijk (bij de 1e keer) een vraag welke editor je wil gebruiken. Kies daar je eigen voorkeur (nano) en voeg helemaal onderaan het commando in zoals hierboven stond vermeld maar dan met toevoeging van de Unix tijdnotatie en het pad naar de opdracht.

Ik wil bijvoorbeeld elke nacht om 03:00 uur een dump maken en dan kies voor het commando:

 

0 3 * * * /usr/bin/mysqldump -h DOMEIN -u DATABASE USER -pWACHTWOORD DATABASENAAM > /home/USERNAAM/GEWENSTE UITVOER NAAM`date +'%Y-%m-%d'`.sql

 

Let op: De groot afgedrukte namen aanpassen aan je eigen gegevens, inclusief USERNAAM en zorg dat de ` tekens staan voor en achter dit gedeelte`date +%Y%m%d` gevolgd door de .sql extensie. De gewenste uitvoernaam wordt dan voorzien van een datumnotatie wat archivering een stuk makkelijk maakt.

Als je met Nano de regel goed hebt geplaatst save je dat bestand en verlaat de editor . Dan wordt op dat moment de opdracht klaar gezet voor uitvoer. Met het terminal commando crontab -l kan je dat overigens controleren.

MYSQL DUMP vanuit Plesk ..

Heb je bij je provider geen MYSQL toegang verkregen dan kan je de crontab (zonder de uitvoer en exportpaden) inbrengen in de in Plesk/Directadmin etc. aangeboden functieruimte. Gebruik daarvoor de documentatie van je provider want je wilt er wel voor zorgen dat de uitvoer wordt weggeschreven naar een veilige zone op je webserver óf dat de uitvoer wordt gemaild.

In een volgend artikel laat ik dan zien  hoe je een database backup weer terug kunt plaatsen met behulp van een handig script genaamd bigdump.php.

(Met dank aan Andries Filmer)

Spotify en Linux

De muziekindustrie ondergaat grote veranderingen. Toen vinyl werd vervangen voor cd kwam ook de digitalisering op gang. Daardoor gingen veel mensen een  mp3 verzameling aanleggen want je wilde immers “alles hebben”. Maar het lijkt erop dat we nu genoegen kunnen nemen met het beschikbaar krijgen van muziek.

Met een dienst als Spotify kan je immers altijd naar jouw favoriete muziek luisteren. Achter de computer, vanaf je mobiele telefoon of vanaf bijv. je mediaserver.

Op het eerste gezicht lijkt het alsof alleen Windows & Apple gebruikers worden bediend. Maar er is ook een een zgn. preview build voor Linux aanwezig. Je moet dan wel een premium of een unlimited account hebben.

Er staan instructies op Spotify’s downloadpagina voor Linux en daarmee is de speler snel geïnstalleerd en staat het daarna ook keurig vermeld in je Toepassingen menu (onder Audio en video)

Er is nog wel ruimte voor verbeteringen maar Spotify is zeer bruikbaar gebleken. Om het goed te kunnen testen heb ik een premium account afgesloten zodat ik ook vanaf mijn HTC Desire HD kan luisteren. Maar ik had vooral behoefte om Spotify te gebruiken vanaf mijn Logitech Squeezebox Classic.

Dat is op zich niet zo lastig ware het niet dat je daarvoor een plugin moet installeren onder Squeezebox server. Tot voor kort had ik altijd begrepen dat die plugin alleen maar beschikbaar was Intel aangedreven hardware. Bij Digiplace staat echter een QNAP TS-419P en daarin zit een ARM processor.

Gelukkig is daar nu verandering in gekomen en wordt ook die ARM cpu ondersteund. De plugin staat zelfs gewoon klaar in je Squeezebox server. Vinkje plaatsen, account gegevens en voorkeuren invullen, server opnieuw opstarten en spelen maar.

In 1e instantie lijkt het niet te werken. Je moet echter naar je Internetradio scrollen om daar Spotify te vinden. In 1e instantie heb ik het geactiveerd op de webinterface van Squeezebox maar de Android applicatie “Squeeze Commander” biedt ook hier uitkomst.

Daarmee is je Android telefoon een prachtige grafische remote afstandbediening geworden en die is prima geschikt om ook je Spotify aan te sturen.

Mocht je muziek met mij willen delen dan ben ik als Digiplace te vinden onder Spotify en Last.fm.

Hoe verbind je Ubuntu automatisch met een Samba share op een QNAP NAS?

Liever een NFS oplossing? Kijk dan hier (werkt veel beter op een Linux computer)

Als je naast je ‘gewone’ computer ook nog andere computers in je netwerk hebt hangen dan wil je daar op enig moment natuurlijk ook naar toe kunnen gaan. Als die andere computers werken onder Windows dan maak je daarvoor meestal gebruik van het zgn. Samba protocol. Het werkt snel, wordt goed ondersteund door Linux en je kan er zondermeer gebruik van maken via bijvoorbeeld Nautilus. Samba is zo ingeburgerd dat ook Linuxservers Samba bijna standaard aan boord hebben.

Het is eenvoudig om verbinding te krijgen met een samba share. In nautilus tik je in smb://usernaam@ipadresvanserver/sharenaam en je komt binnen. Maar is het niet gemakkelijker om het automatisch te doen? Je zet je computer aan en de samba share is beschikbaar. Hoe dat gaat staat in dit artikel.

Aan de slag op de server

In mijn situatie gaat het om een gewenste permanente  verbinding tussen mijn Ubuntu desktop en een in mijn netwerk opererende QNAP NAS (TS-419P). Die NAS geeft de mogelijkheid om met Samba te werken. Dankzij de eenvoudige webinterface van QNAP is het een kwestie van een vinkje plaatsen bij de Netwerk Services.

Het instellen van de cliënt

Op de desktop moet er wel wat meer gebeuren. Om te beginnen installeer je het pakket smbfs met het commando sudo apt-get install smbfs

The SMB/CIFS protocol provides support for cross-platform file sharing with Microsoft Windows, OS X, and other Unix systems.

Omdat ik specifiek wil dat een share op mijn QNAP NAS constant is gemount moet ik ervoor zorgen dat bij het booten de inloggegevens van die NAS bekend zijn. Daarom maak je een klein onzichtbaar tekstbestandje (gksudo gedit /root/.naslogin) en plaatst daarin je gebruikersnaam en je wachtwoord. Let wel..de gebruikersnaam en het wachtwoord van de gebruiker op je NAS.

In dit voorbeeld noem ik  dat bestand dus .naslogin waardoor de PUNT ervoor zorgt dat het bestand niet automatisch zichtbaar wordt weergegeven. In dit bestand komen maar twee regels tekst te staan:

username=
password=

En inderdaad, achter het = teken komt dan de gebruikersnaam en wachtwoord te staan van de gebruiker op die NAS. Omdat het bestand onzichtbaar in de /root map komt te staan heeft het in ieder geval een veilig plekje gevonden.

Dit bestand moet je aanpassen met het commando: sudo chmod 600 /root/.naslogin

Vervolgens open je met rootrechten wederom je editor en past het bestand /etc/hosts aan (gksudo gedit /etc/hosts) In dit bestand voeg je het IP adres van je server met daarachter de netwerknaam toe. De standaard netwerknaam van een QNAP NAS is QNAP en als je die niet zou hebben veranderd komt er dus QNAP achter het IP adres van je NAS te staan.

De volgende stap is het aanmaken van een zgn. mountpoint. Dat is een map die straks de complete inhoud van de QNAP share laat zien alsof het op jouw computer staat. Je maakt die map aan met het commando sudo mkdir /media/mapnaam. In dit voorbeeld noem ik die map dus ‘mapnaam’

Die map moet je vervolgens even goed in zijn rechten zetten. Vanuit de terminal doe je dat met het commando sudo chmod 777 /media/mapnaam

We zijn er nu bijna. Je moet nu het bestand /etc/fstab aanpassen. Dat doe wederom met rootrechten en dus met gksudo gedit /etc/fstab. Maak het venster van gedit wat groter zodat alles keurig wordt uitgelijnd en voeg een nieuwe regel toe met de volgende syntax:

//ipadresvanjeserver/sharenameopserver /media/mapnaam cifs credentials=/root/.naslogin,rw,iocharset=utf8,dir_mode=0777,file_mode=0777  0 0

Let dus goed op dat je de juiste waardes vermeld (ipadres, mapnaam, sharenaam en inlogbestand). Als het allemaal correct is wordt de verbinding gemaakt als je daarna het commando sudo mount -a intikt in je terminal. Je ziet dan een icoon van de share op je bureaublad verschijnen.

Tot slot:

Als je hierna je computer herstart zie je meteen weer dat icoon op je bureaublad staan én een vermelding in Nautilus. Als je liever geen icoon op je bureaublad ziet staan dan kan je kiezen om sudo gconf-editor in te voeren en dan het  vinkje te verwijderen bij de entry:  Apps/nautilus/desktop.. volumes_visible.

Scroll naar boven