V minulém článku jsme nainstalovali a provedli základní nastavení webového serveru Apache, interpreta PHP a databázového serveru MySQL. Posledním krokem k získání základního programového vybavení serveru bude instalace FTP serveru pro snadnou správu souborového systému na serveru a instalace rozhraní phpMyAdmin pro snadnou správu databáze MySQL, nainstalované v minulém článku.
Instalace FTP serveru
Programů zajišťujících funkcionalitu FTP (File Transfer Protocol) serveru je více, my nainstalujeme jeden z nejznámějších, a podle reakcí uživatelů také nejlepších, známý pod zkratkou vsftpd, neboli Very Secure FTP Daemon. Very secure, protože se jedná o jeden z nejlépe zabezpečených programů, a daemon, protože tak jsou označovány UNIXové programy, běžící na pozadí systému bez nutnosti interakce s uživatelem a vyčkávající na nějakou událost, například právě na žádost FTP klienta o připojení k serveru.
Instalaci provedeme již známým příkazem
sudo aptitude install vsftpd
Nyní je třeba FTP server nakonfigurovat. Otevřeme tedy konfigurační soubor příkazem
sudo nano /etc/vsftpd.conf
(cesta k souboru se může lišit podle verze UNIXu) a v něm nalezneme následující parametr, který nastavíme na NO, čímž zakážeme anonymní přihlašování k serveru, tedy
anonymous_enable=NO
Provedené změny nezapomeneme při opouštění editoru klávesovou kombinací CTRL+X uložit a běh serveru podle nových nastavení zajistíme jeho restartem příkazem
sudo service vsftpd restart
V toto nastavení již server funguje. Jako přihlašovací údaje lze použít údaje kteréhokoli uživatele v systému, tedy například údaje pro uživatele pi, přičemž přihlášení proběhne do domovského adresáře daného uživatele. To je ovšem nepraktické. Vzhledem k tomu, že budeme FTP využívat pro nahrávání souborů budoucího webu, buď nastavíme jako domovskou složku uživatele pi složku /var/www příkazem
usermod -d /var/www/ pi
nebo ještě lépe, vytvoříme nového uživatele speciálně pro účely FTP, tedy
sudo useradd -d /var/www ftp-user
sudo passwd ftp-user
sudo chown ftp-user /var/www
První příkaz vytvoří uživatele ftp-user a nastaví mu požadovaný domovský adresář, druhým příkazem provedeme nastavení hesla pro tohoto uživatele a třetím nastavíme tohoto uživatele vlastníkem svého domovského adresáře (což, jak by se mohlo zdát, není automatické).
Zbývá server otestovat, připojíme se pomocí programu FileZilla. Samozřejmě existuje nepřeberné množství dalších klientů, včetně integrace FTP klienta do průzkumníka Windows (vřele nedoporučuji), stačí použít Google. Vyplníme IP adresu serveru a přihlašovací údaje.
rozhraní FTP klienta FileZilla
Instalace rozhraní phpMyAdmin
Rozhraní pro správu MySQL databáze je posledním základním kamenem webového serveru. Instalaci provedeme příkazem
sudo aptitude install phpmyadmin
Během instalace příslušnou volbou nastavíme server Apache 2 pro běh phpMyAdmina, čímž si značně zjednodušíme práci. Zbývá jen do složky /var/www/phpmyadmin nakopírovat soubory webového rozhraní. Ty stáhneme z domovského webu aplikace jako archiv příkazem
wget odkaz-na-stazeni.tar.gz /var/www
a následně do stejné složky rozbalíme příkazem
tar -xvzf nazev-souboru.tar.gz
Nyní již na adrese http:/ /ip-serveru/phpmyadmin nalezneme funkční webové rozhraní pro správu databáze.
Shrnutí
Zprovoznili jsme připojení k serveru přes FTP a administrační rozhraní pro správu MySQL databáze phpMyAdmin. Nyní jež máme vše potřebné pro základní běh webového serveru. V příštím článku se budu věnovat bezpečnostním rizikům a patřičnému nastavení takového serveru z nich vyplývajících.
41 Comments
Ahoj, díky za návod, pomohl.
Jen bych chtěl upozornit na možno chybu:
sudo nano /etc/vsftpd/vsftpd.conf
vytvoří nový soubor (prázdný, pochopitelně), v nové verzi Raspbianu je to asi jinak, každopádně pokud to tak někdo má tak je to
sudo nano /etc/vsftpd.conf
tam už to nastavení je.
Díky za info, opraveno.
Mám starší Raspbian verzi 2012-08-07.
Tak nastal problém. Ještě včera přenos souborů fungoval, ale teď se sice přihlásím, proběhne výpis složky, funguje mazání i přejmenování souborů ale nefunguje přenos na server: "451 Failure writing to local file." Hledal jsem na netu, ale nic kloudného jsem nenašel. Nějaké nápady?
oprávnění souborů, restart pi, reinstall vsftpd.
Jinak nevím ...
Vyřešeno.
Bylo potřeba rozšířit oddíl s linuxem.
Pokud by to někdo potřeboval:
1) do konzole napsat: sudo raspi-config
2) vybrat "expand-rootfs"
3) potvrdit reboot
4) operace trvá 10-15 min
Nemělo by být spíše
tar -xvzf <jmeno.souboru> ?
Sice nejsem autor ale ano "tar -xvzf" je na rozbalení zato "tar -cvzf" je na zabalení pro ty co to zkouší je připravena pěkná hláška :) Cowardly refusing to create an empty archive
Díky za upozornění, máte pravdu. Opraveno. Zvláštní, že na to někdo upozorní až 2 roky od zveřejnění návodu.
Díky za návod, ale měl bych dotaz. FTP server vsftpd jsem nainstaloval a vše valí, ale pokud kopíruju na ftpko větší množství dat (cca 3000 souborů, 60 MB) dojde v průběhu kopírování k zamrznutí a znovu se to rozběhne asi po cca 1 minutě. Nemá na to vliv, zda kopíruji na SD kartu nebo externí USB disk. Pokud stejné množství dat zkusím překopírovat přes SSH (winscp), tak proběhne vše bez problémů. Pokud sleduju běžící procesy pomocí "top", tak ve chvíli, kdy kopírování zatuhne, tak "chcípne" i vsftpd, vše ostatní jede bez problémů. Nevíte, čím to může být?
Ahoj,
podíval bych se do konfiguračních souborů vsftp, jestli tam nejsou nějaká omezení. Ale je to divné, kopíroval jsem podobné objemy dat a vše mi chodilo bez problému.
Ještě drobnost. Pro neznalé, jako jsem třeba já je potřeba doplnit nutnost instalaci gd knihovny php. Několik dní jsem přemýšlel, proč mi obrázky nefungují. Ono totiž na windows je v těch WAMP balíkách už GD2 obsažená, tady ne. příkaz je sudo apt-get install php5-gd
Obrázky by měly fungovat v základu i bez této knihovny.
Ale díky za info.
Zdravím,
mám na RP instalovaný xbian připojený přes kabel k routru. K tomu samému routru je přes wifi připojen ntb. Pokud přes FTP kopíruji soubory na externí USB disk (USB3.0), který je připojen k RP, dostabu se na datový tok max. kolem 600kB/s. Pokud kopíruji soubor na paměťovou kartu RP, dostanu se max. na 2MB/s. V čem je problém? Jak je možné, že je to tak pomalé na externí disk. Jaké jsou vaše hodnoty při přenosu souborů? Nějak si neumím představit, že někdo na RP provozuje NAS.
Díky.
Tak to nevím, tento problém jsem zatím neřešil.
Možná to nezvládá ovladač toho disku, ale je to jen domněnka.
Patrně máš na USB disk (USB3.0) jako souborový systém NTFS.
nevím jestli je to jen záležitost nynější verze, ale musel jsem v sftpd.conf krom toho co jsi napsal výše, ještě navíc "odpoznámkovat" local_enable=YES; write_enable=YES; nejsem si jistý jestli je to všechno, ale dokud jsem to neudělal nešlo přes ftp mazat a zapisovat soubory, ber to jako případnou poznámku začátečníkům, co sem určitě budou ještě chodit...a abych nezapomněl dobrá práce, díky za tut (pro začátečníka v linuxu a serverech pecka)
cavko pocuj mam probel vsetko mam poinstalovane ale akonahhle chem skopirovat stranku a prenies ju cez ftp vo adresara www tak mi ftp vyhodi chybu nevies v com by to mohlo byt zle ?? vdaka
No takhle opravdu netuším.
Alespoň jakou chybu to vypisuje by bylo fajn vědět :-).
v /etc/vsftpd.conf by bylo ještě dobrý odkomentovat lokální uživatele "local_enable=YES" :-)
super návod, děkuju
Ahoj, pokud někomu nejde zápis na FTP, přesto že má odkomentáváno local_enable a write_enable, tak ještě doporučuji místo sudo chown ftp-user /var/www použít sudo chown -R ftp-user /var/www
Ještě jsem zjistil, že se soubory nahrané přes FTP ukládají s chmod 600, což znemožní zobrazení souborů. Aby se ukládaly s chmod 644, a tím se i zobrazily, tak stačí v konfigu odkomentovat hodnotu local_umask=022
Zvláštní, mě to fungovalo i bez toho.
Každopádně díky za info.
Ahoj potřeboval bych poradit, zprovoznil jsem ftp server podle návodu a potřeboval bych abych mohl nahrávat stránky na usb flash disk, pripojil jsme fleshku pomoci prikazu mount /dev/sda1 /var/www/ ale nahrávat tam nemužu. Děkuji za každou radu
Mám podobný problém, Debian, moutnutý externí disk, obsah vidím ale nemohu nahrávat ani přepisovat. Poradí někdo? Děkuji.
Pěkný článek. Děkuji
A co slíbené pokračování, bude?
Díky
Bude. Někdy. Momentálně píši diplomovou práci a státnicuji, takže není mnoho času na zábavu :-).
Podle návodu jsem rozchodil server a nainstaloval na něj Drupal 7. Vše zatím funguje jak má, jen mi nejde zapnout v Drupalu čistá URL.
A pak ještě jedna drobnost. Nejdou mi instalovat nové moduly přímo z Drupalu. Píše mi to: "Instalace modulů a témat vyžaduje FTP přístup k serveru." S tím jsem se nikde na webhostingu nesetkal. Ale není to tak podstatné, na rozdíl od webhostingu používám Drush.
Ta čisté URL mě ale trápí a nevím co s tím.
Díky za radu
Můžete mi prosím poradit,jak nastavit čisté URL? Už se s tím probírám delší dobu, ale stále se nedaří. Vám to, jak koukám, funguje bez problémů.
Díky
Dobrý den,
pro čisté URL (v Drupalu) je třeba mít zapnutý rewrite module, pro Apache je to mod_rewrite. Ten je potřeba povolit na serveru, pak může být ještě problém v souboru .htaccess. Více zde.
Zdravím, děkuji za návod- Jediné co jsem nepochopil jak mám nakopírovat soubory webového rozhraní. Můžete mi někdo poradit přesně jakým přílazem stáhnout a rozbalit. Nevím jaký odkaz napsat aby se to stáhlo. Děkuji
Na windows nebo linuxu?
Může být klidně obojí, já to zkoušel přes linux. Díky
Jednoduše se tam dají soubory nakopírovat třeba přes FileZillu, viz google. Je to jak pro win, tak pro linux.
zdravim,
viete mi poradit nefunguje mi prikaz
usermod -d /var/www/ pi
vyhadzuje mi to hlasku
usermod: user pi is currently used by process 678
Ahoj, mám problém - ani ne s Raspberry - jako MySQL. Instalalce proběhla v pohodě, Apache běží, PHP taky, ale mělo se to během insstalace zeptat na heslo do MySQL, což se nestalo. Předpokládám, že podle jiných instalací je uživatel root bez hesla, ale nechce mě to tam pustit. Jsem Linux začátečník, tak nevím, kde mám hledat chybku. Prosím, co jsem udělal špatně? Díky.
Dobrej,
jen malý dotaz když uploaduju obrázky pomoci FTP jak nastavit složku aby obrázkům přidělovala správné práva aby byly na webu zobrazena.
Dobrý den,
to závisí na FTP klientovi, který používáte. Obvykle se to dá najít v nabídce po kliknutí pravým tlačítkem na složku, něco jako "oprávnění souborů" a podobně. Oprávnění bych nastavil na 644, tj. čtení pro všechny, a zápis jen pro vlastníka.
Zdravím, už se tím úspěšně prokousávám, ale chtěl bych Pi3 webserver použít na místo serveru Thingspeak.com, kde si sbírám data z Arduina-ESP8266, přes domácí wifi router. Nevím jak to síťově spojit. Se samotnou zobrazovací aplikaci si nějak poradím , ale nevím jak nasměrovat data z ESP8266 do webserveru Pi3. Za případné tipy děkuji.
Dobrý den,
nevím co je to přesně za data, a nemám zkušenosti z Arduinem, ale napadá mě použít buď nahrávání přes FTP, nebo přímo do databáze. Pro podobnou aplikaci jsem používal nahrávání přes FTP, data (v textovém souboru) jsem nahrával průběžně přes FTP do Raspberry, kde jsem je pak vyčítal zobrazovací aplikací, když přišel požadavek na vykreslení.
Dekuji za odpoved, bylo by to nahravani primo do databaze, protoze server a ardu sensory jsou stale zapnute. Datovy typ je klasicky integer. Ardu-esp jako sberac dat a Pi3 maji svoje IP na vnitrni siti,nevim co nastavit aby server pi3 vzal data z dane vnitrni IP Arda. Nastaveni Ardu na odeslani dat na server neni problem. Zamerem je nahradit omezene externi free data cloudy svym raspi, myslim ze by to mohlo byt i na dalsi povedny a uzitecny tutorial. Dekuji