Dlouhou dobu používám při vývoji virtuální Ubuntu server, ve kterém mám nainstalované všechny databáze a programy, které nechci mít standardně v instalaci Windows na notebooku. Už delší dobu jsem chtěl do serveru přesunou i webový server a testovací SMTP server, který neodesílá emaily, ale ukládá je do souboru a přitom nepřijít o komfort pracovat z prostředí Windows. Jak se zadařilo popíšu níže.
Původně jsem chtěl zůstat u Ubuntu Serveru, ale nakonec jsem se rozhodl na novém serveru použít Debian. Bylo to hlavně kvůli tomu, abych měl na vývoj systém, u kterého je velká pravděpodobnost, že poběží na i na serveru s ostrou verzí aplikace. Starší verze softwaru, který se v Debianích balíčcích vyskytuje je možné nahradit aktuálnějšími verzemi z dotdeb.org balíčků.
A co se tedy máme nově vytvořeno?
- server se systémem Debian 7.1.0 Wheezy 32bitů přístupný přes SSH bez hesla
- disky rozdělené tak, že není problém spouštět různé servery se stejným datovým a swap diskem (viz. tipy a triky)
- PHP 5.4, Apache 2.2 s PHP
- MySQL 5.5
- PostgreSQL 9.1
- Memcache, Redis a ElasticSearch
- testovací SMTP server
- nastavené sdílení mezi Windows a Debianem
Všechny části jsou volitelné, a pokud některou z nich nebudete potřebovat, instalovat si ji na vlastní server nemusíte. S novou verzí serveru jsem upravil také utilitku Devel79 Tray, která se stará o spouštění různých serverů, monitoring nových emailů a připojení na SSH konzoli serveru.
Stejně jako v prvním návodu i zde bych rád upozornil, že nejsem žádný linux guru. Všechny postupy jsou vygooglené a nějak pospojované dohromady. Něco možná dělám nelogicky, zbytečně složitě, ale jako celek to funguje. Takže pokud tento článek bude číst nějaký odborník na linux, prosím o shovívavost a připadnou poznámku v komentářích. Děkuji…
Obsah
- Příprava virtuálního serveru
- Instalace Debianu
- Základní nastavení
- Nastavení sítě
- Sudo bez hesla
- Nastavení sdílení s Windows
- Instalace OpenSSH serveru a nastavení přihlášení s certifikátem bez hesla
- Přidání dotdeb balíčků
- Instalace PHP
- Instalace a nastavení Apache s PHP
- Instalace MySQL
- Instalace PostgreSQL
- Instalace Memcached
- Instalace Redis
- Instalace ElasticSearch
- Vývojový SMTP server
- BASH skripty pro zálohování o obnovu souborů
- Závěr
- Doporučené nastavení, upgrade a tipy a triky k vašemu virtuálnímu serveru
- Úpravy a novinky v návodu
Příprava virtuálního serveru
Nejprve musíme ve Windows nainstalovat samotný VirtualBox (for Windows hosts). Ten stáhneme z jeho oficiálních stránek https://www.virtualbox.org/wiki/Downloads. Při instalaci je potřeba nainstalovat i součást VirtualBox Networking – VirtualBox Host-Only Networking. Aktuální verze v době psaní článku je 4.2.16.
Jak jsem psal v úvodu, jako server jsem místo Ubuntu Serveru nakonec vybral Debian ve 32bitová edici. Instalační ISO obraz se síťovou instalací, který budeme potřebovat, stáhneme na adrese http://cdimage.debian.org/debian-cd/7.1.0/i386/iso-cd/debian-7.1.0-i386-netinst.iso.
Nyní můžeme spustit VirtualBox a vybráním menu Machine – New spustíme průvodce, který založí náš virtuální server. Postupně v průvodci zadáme následující parametry:
- název serveru Name:, všude budu používat devel79
- jako Type: nastavíme Linux a Version: dáme Debian
- klikneme na Next
- Memory size: nastavíme minimálně na 1024MB
- klikneme na Next
- vybereme Create a virtual hard drive now
- klikneme na Create
- Hard drive file type vybereme VDI (VirtualBox Disk Image)
- klikneme na Next
- Storage on physical hard drive nastaveníme na Fixed size, získáme tím o maličko lepší výkon při IO operacích – Next
- klikneme na Next
- Ve File location and size necháme název disku na devel79 a velikost by nám měla bohatě stačit 3,00 GB
- klikneme na Create
Vybereme náš nový virtuální server, klikneme na něj pravým tlačítkem a vybereme Settings…. Virtuální server upravíme takto:
Karta General
Na záložce Advanced odškrtneme Remember Runtime Changes u Removable Media: a to samé pro Show in Fullscreen/Seamless u Mini Toolbar. Na záložce Description můžeme zadat nějaký popis našeho serveru.
Karta System
Na záložce Motherboard nastavíme:
- Pořadí bootování Boot Order:: 1) CD-ROM 2) Hard Disk
- pokud máme vícejádrový procesor a budeme chtít našemu serveru povolit používat více jader, zaškrtneme Enable IO APIC
- odškrtneme možnost Enable absolute poiting device – to je kvůli tomu, že nebudeme potřebovat USB
Na záložce Processor můžeme nastavit využítí více jader nastavením položky Processor(s):.
Karta Display
Na záložce Video nastavíme Video Memory: na minimum 9 MB.
Karta Storage
- odebereme IDE řadič (Controller: IDE), klikneme na něj a stiskneme klávesu Delete
- u SATA řadiče (Controller: SATA) přidáme nový pevný disk pro swap – klikneme na něj pravým tlačítkem a dáme Add CD/DVD Device – klikneme na Choose disk a vybereme ISO soubor s instalací Debianu
- jako Hard drive file type vybereme VDI (VirtualBox Disk Image)
- Storage on physical hard drive vybereme Fixed size
- název disku zadáme devel79_swap a velikost vybereme 1GB
- u SATA řadiče (Controller: SATA) přidáme nový pevný disk pro data – klikneme na něj pravým tlačítkem a dáme Add CD/DVD Device – klikneme na Choose disk a vybereme ISO soubor s instalací Debianu
- jako Hard drive file type vybereme VDI (VirtualBox Disk Image)
- Storage on physical hard drive vybereme Fixed size
- název disku zadáme devel79_storage a zadáme velikost, která se nám zdá přiměřená pro naše data (u mě je to 100GB)
- u SATA řadiče (Controller: SATA) přidáme CD-ROM – klikneme na něj pravým tlačítkem a dáme Add Hadr Disk – klikneme na Create new disk
1″ class=“alignnone size-full wp-image-396″ />
Karta Audio
Odškrtneme Enable Audio, na serveru zvuk nepotřebujeme.
Karta Network
Na záložce Adapter 1 necháme zaškrtnuto Enable Network Adapter a Attached to: nastaveno na NAT. Rozklikneme Advanced a zkontrolujeme, že typ síťové karty (Adapter Type:) je Intel PRO/1000 MT Desktop (82540EM).
Klikneme na záložku Adapter 2, zaškrtneme Enable Network Adapter a Attached to: nastavíme na Host-only Adapter. Name necháme na VirtualBox Host-Only Ethernet Adapter (pokud tu tato možnost není přeskočte na chvilku sem). Rozklikneme Advanced a opět zkontrolujeme, že jako Adapter type: je vybrána Intel PRO/1000 MT Desktop (82540EM).
Karta USB
Odškrtneme Enable USB Controller.
Karta Shared Folders
Stiskneme Insert, vybereme cestu ke složce (Folder Path:), kde jsou soubory, které budeme chtít v rámci virtuálního serveru používat – hlavně soubory pro Apache a jako Folder Name: zadáme share.
Potvrdíme nastavení (OK) a kliknutím na Start spustíme virtuální server.
Instalace Debianu
Po prvním spuštění serveru nabootuje Debian instalátor. Popíšu moje nastavení, které mi pro vývojový server přijde ideální, pokud máte jiné preference, upravte si je podle svého.
- vybereme Install
- vybereme jazyk English – English
- vybereme zemi Other – Europe – Czech republic
- pro ni neexistuje základní nastavení, vybereme United States
- nastavíme klávesnici American English
- vybereme primární síťovou kartu – Primary network interface eth0: Intel Corporation 82540EM Gigabit Ethernet Controller
- nastavení sítě, zadáme hostname, používám všude devel79
- nastavení sítě, Domain name: necháme prázdné
- heslo roota necháme prázdné, root se pak nebude moc přihlásit
- potvrzení hesla roota necháme opět prázdné
- zadáme jméno uživatele, u mě Developer
- zadáme username, kterým se budeme přihlašovat do systému, u všech služeb volím devel
- zadáme heslo, zase všude volím, devel
- a stejně tak i potvrzení hesla, devel
- rozdělení disku Partition disk, jako Partitioning method vybereme Manual
- vybereme disk SCSI1 (0,0,0) (sda) – 3.2 GB ATA VBOX HARDDISK
- Create new empty partition table on this device? zvolíme Yes
- nyní vybereme pri/log 3.2 GB FREE SPACE
- vybereme Create a new partition
- vybereme Continue
- vybereme Primary
- a na konec vybereme Done setting up the partition
- vybereme disk SCSI2 (0,0,0) (sdb) – 1.1 GB ATA VBOX HARDDISK
- Create new empty partition table on this device? zvolíme Yes
- nyní vybereme pri/log 1.1 GB FREE SPACE
- vybereme Create a new partition
- vybereme Continue
- vybereme Primary
- zvolíme Use as: Ext4 journaling file system
- How to use this partition: vybereme swap area
- a na konec vybereme Done setting up the partition
- vybereme disk SCSI3 (0,0,0) (sdb) – 107.4 GB ATA VBOX HARDDISK
- Create new empty partition table on this device? zvolíme Yes
- nyní vybereme pri/log 107.4 GB FREE SPACE
- vybereme Create a new partition
- zadáme velikost 1 GB a vybereme Continue
- vybereme Primary
- Location for the new partition: zvolíme Beginning
- vybereme Done setting up the partition
- nyní vybereme pri/log 106.4 GB FREE SPACE
- vybereme Create a new partition
- vybereme Continue
- vybereme Logical
- vybereme Mount point: /usr
- vybereme Enter manually
- zadáme /data a pokračujeme Continue
- a na konec vybereme Done setting up the partition
- rozdělení disků dokončíme zvolením Finish partitioning and write changes to disk
- potvrdíme Write changes to disks? – Yes
- Debian archive mirror country: necháme nastavený na Czech Republic
- Debian archive mirror: potom na ftp.cz.debian.org
- nastavení proxy HTTP proxy information (blank for none): necháme prázdné
- můžete si vybrat, zda chcete posílat statistiky použití balíčků do Debianu Participate in the package usage survey? já nemám rád, když systém sám něco odesílá a tak dávám No
- ve výběru software Software selection vybereme pouze Standard system utilities (vybíráme mezerníkem, zbytek si nainstalujeme sami) a dáme Continue
- nainstalujeme zavaděč systému – Install the GRUB boot loader to the master boot record? – Yes
- a nakonec dokončíme instalaci Instalation complete – Continue
Nyní můžeme počítač vypnout z menu Machine – Close… – Poweroff the machine. Zobrazíme si nastavení počítače a provedeme následující úpravy:
Pro fungování sdílení mezi Windows a Debianu, musíme nainstalovat VirtualBox Guest Additions. Otevřeme záložku Storage, vybereme CD-ROM mechaniku, v pravo klikneme na ikonu CD a vybereme Choose a virtual CD/DVD disk file… a najdeme soubor VBoxGuestAdditions.iso, který se nachází v adresáři, kde je VirtualBox nainstalovaný.
Na záložce System potom odškrtneme CD/DVD ROM v Boot order: a přesuneme Hard Disk na první místo.
Zavřeme nastavení a spustíme náš server.
Základní nastavení
Přihlásíme se do systému, uživatelské jméno devel a heslo devel (pokud jste si při instalaci nevybrali jiné). Jako první provedeme upgrade dosud nainstalovaných balíčků. Zadáme:
sudo apt-get update sudo apt-get upgrade
Příkaz sudo se vás občas zeptá na heslo. Zadejte heslo pro přihlášení do systému (v mém případě devel). Při upgradu se také může zobrazit dotaz na potvrzení nainstalování nových verzí, pokračujte zadáním Y.
Pokud jste zvyklí pracovat se správcem souborů ve stylu Norton Commander, nainstalujte si Midnight Commander:
sudo apt-get install mc
Midnight Commander poté spustíme zadáním mc (případně sudo mc s přístupovými právy jako root).
Pro používání sdílení mezi Windows a Debianem, musíme nainstalovat VirtualBox Guest Additions. Při instalaci Debianu se automaticky do systému nainstaluje balíček VirtualBox Guest Additions. Jelikož je dost pravděpodobné, že bude starří než naše verze VirtualBoxu, nejprve ho odinstalujeme.
Nejdříve se podíváme na nainstalované balíčky:
dpkg -l | grep virtualbox
A pak postupně odinstalujeme všechny balíčky:
sudo apt-get remove --purge virtualbox-ose-guest-x11 sudo apt-get remove --purge virtualbox-guest-dkms sudo apt-get remove --purge virtualbox-guest-utils sudo apt-get autoremove
Poté potřebujeme do systému dostat potřebné knihovny pro kompilaci VirtualBox Guest Additions:
sudo apt-get install build-essential sudo apt-get install linux-headers-$(uname -r)
Nyní spustíme instalaci:
sudo sh /media/cdrom0/VBoxLinuxAdditions.run
Pokud nemáme automaticky připojenou CD-ROM, připojíme ji tímto příkazem:
sudo mount /dev/cdrom1 /media/cdrom0
O něco urychlíme spouštění systému a nastavíme zavaděč Grub, aby nečekal 5s před vybráním prvního systému pro zavedení, ale pouze 1 vteřinu:
sudo nano /etc/default/grub
Změníme řádek GRUB_TIMEOUT=5 na GRUB_TIMEOUT=1. Uložíme CTRL+O, ENTER a zavřeme editor CTRL+X. Následně spustíme:
sudo update-grub
Nastavení sítě
Abychom mohli správně používat síť pouze s hostem, musíme nastavit druhou síťovou kartu, kterou máme v systému. Zadáme příkaz:
sudo nano /etc/network/interfaces
a přidáme následující definici:
# The secondary network interface auto eth1 iface eth1 inet static address 192.168.56.101 netmask 255.255.255.0 network 192.168.56.0 broadcast 192.168.56.255
Uložíme CTRL+O, ENTER a zavřeme editor CTRL+X.
Nyní si doporučuji přidat do Windows hosts alias devel79, který ukazuje na tento server.
Sudo bez hesla
Protože jsme na vývojovém serveru, je otravné pořád zadávat heslo při používání příkazu sudo, proto si nastavíme, že příkaz sudo se na heslo ptát nebude. Spustíme:
sudo visudo
A přidáme řádek:
Defaults !authenticate
Soubor uložíme CTRL+O, ENTER a zavřeme editor CTRL+X.
Nastavení sdílení s Windows
Sdílený adresář z Windows připojíme ve vývojovém serveru do adresáře /share.
sudo mkdir /share sudo nano /etc/fstab
Přesuneme kurzor na konec souboru a na novou řádku přidáme následující text:
share /share vboxsf rw 0 0
Soubor uložíme CTRL+O a ENTER a zavřeme CTRL+X a server restartujeme příkazem:
sudo reboot
a po přihlášení se můžeme podívat jesli sdílení funguje zadáním:
ls /share
Měly bychom vidět výpis souborů složky, kterou jsme ve Windows nasdíleli.
Instalace OpenSSH serveru a nastavení přihlášení s certifikátem bez hesla
Pro přístup na server budeme používat SSH. SSH z konzole je pro mne mnohem přívětivější způsob než konzole VirtualBoxu. Protože se jedná o vývojový server, rád bych se přihlašoval rychle bez hesla. Nejprve nainstalujeme OpenSSH server.
sudo apt-get install openssh-server
Nyní si vygenerujeme SSH certifikát bez hesla. Zadáme příkaz ssh-keygen a všechny kroky potvrdíme ENTERem a nakonec svůj soukromý i veřejný klíč (oba budou v adresáři .ssh) zkopírujeme přes /share do Windows.
Privátní klíč poté vymažeme a veřejný přejmenujeme na .ssh/authorized_keys v našem domovském adresáři. Tento klíč se pak bude používat pro přihlášení k serveru:
cd ~ ssh-keygen cp .ssh/* /share rm .ssh/id_rsa mv .ssh/id_rsa.pub .ssh/authorized_keys
Jak se nyní přihlásíme k našeme serveru přes SSH naleznete v tipech.
Přidání dotdeb balíčků
Pro aktuálnější verze PHP, MySQL a Redisu budeme využívat distribuce z dotdeb.org balíčků. Pro aktuální Debian Wheezy to podle mě nějakou dobu nebude třeba. Otevřeme soubor /etc/apt/sources.list.d/dotdeb.list:
sudo nano /etc/apt/sources.list.d/dotdeb.list
a přidáme řádky (zajistí instalaci aktuální verze PHP 5.4):
deb http://packages.dotdeb.org wheezy all deb-src http://packages.dotdeb.org wheezy all
nebo pokud chceme nainstalovat PHP 5.5
deb http://packages.dotdeb.org wheezy-php55 all deb-src http://packages.dotdeb.org wheezy-php55 all
případně k nainstalování staršího PHP 5.3 (další nutné kroky jsou na konci kapitoli o instalaci PHP)
deb http://packages.dotdeb.org squeeze all deb-src http://packages.dotdeb.org squeeze all
Uložíme CTRL+O, ENTER a zavřeme soubor CTRL+X a přidáme klíč z dotdeb.org do systému balíčků:
cd ~ wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | sudo apt-key add - rm dotdeb.gpg sudo apt-get update
Instalace PHP
PHP v aktuální verzi 5.4 nainstalujeme příkazem:
sudo apt-get install php5-cli
Soubor s nastavením php.ini se nalézá zde /etc/php5/cli/php.ini. My v něm nastavíme časové pásmo. Otevřeme si php.ini:
sudo nano /etc/php5/cli/php.ini
A přidáme řádek date.timezone = Europe/Prague (nebo ještě lépe najdeme a nahradíme řádek „;date.timezone = „). Soubor uložíme CTRL+O, ENTER a zavřeme CTRL+X.
Instalace PHP 5.3
Pokud chceme na našem serveru provozovat starší verzi PHP 5.3, musíme do systému nejprve balíčky z Debianu Squeeze, neboť obsahuje některé potřebné knihovny. Otevřeme soubor /etc/apt/sources.list.d/squeeze:
sudo nano /etc/apt/sources.list.d/squeeze
a do něj vložíme následující řádky:
deb http://ftp.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib non-free
Soubor uložíme CTRL+O, ENTER a zavřeme CTRL+X.
Tento zdroj balíků by už k nainstalování PHP verze 5.3 stačil, ale doporučuji použít verzi v dotdeb balíčků, protože verze v Debianu je opravdu již dost stará. Přidáme tedy ještě dotdeb balíčky.
Nyní musíme balíčkovacímu nástroji říci, aby pro PHP používal balíčky z námi přidané zdroje. To provedeme v souboru /etc/apt/preferences.d/php:
sudo nano /etc/apt/preferences.d/php
Kam vložíme následující obsah:
Package: php5* Pin: release o=packages.dotdeb.org Pin-Priority: 700 Package: libapache2-mod-php5 Pin: release o=packages.dotdeb.org Pin-Priority: 700 Package: php-pear Pin: release o=packages.dotdeb.org Pin-Priority: 700 Package: * Pin: release o=packages.dotdeb.org Pin-Priority: 400
V případě použití balíčků z Debianu potom:
Package: php5* Pin: release a=oldstable Pin-Priority: 700 Package: libapache2-mod-php5 Pin: release a=oldstable Pin-Priority: 700 Package: php-pear Pin: release a=oldstable Pin-Priority: 700 Package: php-apc Pin: release a=oldstable Pin-Priority: 700 Package: * Pin: release a=stable Pin-Priority: 600
Tím jsme zvýšili prioritu balíčkům se starší verzi PHP. Více najdete v tipech a tricích. Nyní se všechny balíky týkající se PHP nainstalují ve verzi 5.3.
Instalace a nastavení Apache s PHP
Nainstalujeme Apache 2 a PHP:
sudo apt-get install apache2 sudo apt-get install php5
Nainstalujeme několik základních rozšíření:
sudo apt-get install php5-pgsql sudo apt-get install php5-mysql sudo apt-get install php5-memcache sudo apt-get install php5-curl sudo apt-get install php5-gd sudo apt-get install php5-imagick
V PHP nastavení pro Apache nastavíme časové pásmo. Otevřeme si php.ini:
sudo nano /etc/php5/apache2/php.ini
A přidáme řádek date.timezone = Europe/Prague (nebo ještě lépe najdeme a nahradíme řádek „;date.timezone = „). Soubor uložíme CTRL+O, ENTER a zavřeme CTRL+X.
Při startu Apache dostáváme chybovou hlášku „apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName“, abychom jí opravili, otevřeme si nastavení Apache:
sudo nano /etc/apache2/conf.d/httpd.conf
A přidáme následující řádek:
ServerName devel79
Kvůli používání souborů skrze sdílení VirtualBoxu přidáme ještě řádek:
EnableSendfile Off
který obchází pomalou implementaci souborového systému VirtualBoxu při servírování statických souborů Apachem (jde o problém při používání funkce jádra sendfile()).
Soubor uložíme CTRL+O, ENTER a zavřeme CTRL+X a restartujeme Apache:
sudo /etc/init.d/apache2 restart
Na datovém disku vytvoříme adresář pro Apache a nastavíme mu jako vlastníka uživatele www-data. Do adresáře pak zkopírujeme ukázkové soubory z instalace Apache a z původního umístění je vymažeme:
sudo mkdir /data/www sudo cp -r /var/www/* /data/www sudo chown www-data.www-data /data/www sudo rm -R /var/www
Teď změníme nastavení, aby ukazovalo do nového umístění:
sudo nano /etc/apache2/sites-available/default
Všechny výskyty /var/www změníme na /data/www. Uložíme soubor CTRL+O, ENTER a zavřeme editor CTRL+X. To samé uděláme se souborem pro SSL:
sudo nano /etc/apache2/sites-available/default-ssl
Nakonec znovunačteme nastavení Apache:
sudo /etc/init.d/apache2 reload
Více tipů pro používání Apache naleznete na konci tohoto tutoriálu.
Instalace MySQL
Nejprve nainstalujeme MySQL server a modul pro PHP:
sudo apt-get install mysql-server
Při instalaci se pravděpodobně zobrazí několikrát dotaz na heslo pro uživatele root. Necháme ho prozatím prázdné a pokračujeme zmáčknutím klávesy ENTER. Upravíme nastavení MySQL:
sudo nano /etc/mysql/my.cnf
Najdeme řádek „datadir = /var/lib/mysql“, který změníme na „datadir = /data/mysql“. Do sekce [mysqld] přidáme řádek „skip-name-resolve“. Nakonec najdeme řádek „bind-address = 127.0.0.1“, napíšeme před něj #, takže bude vypadat takto „#bind_address = 127.0.0.1“. Soubor uložíme a zavřeme klasickou kombinací CTRL+O, ENTER, CTRL+X. Následně přesuneme všechna data MySQL na datový disk do adresáře /data/mysql:
sudo mkdir /data/mysql sudo cp -R /var/lib/mysql /data sudo chown -R mysql.mysql /data/mysql sudo /etc/init.d/mysql restart sudo rm -R /var/lib/mysql
Spustíme MySQL konzoli pod uživatelem root a všechny práva přenastavíme na uživatele devel s heslem devel (nebo si vybereme vlastního uživatele, případně můžeme ponechat roota, což se mě osobně moc nelíbí):
mysql --user=root mysql
Do konzole zadáme následující příkazy:
CREATE USER 'devel'@'localhost' IDENTIFIED BY 'devel'; GRANT ALL PRIVILEGES ON *.* TO 'devel'@'localhost' WITH GRANT OPTION; CREATE USER 'devel'@'%' IDENTIFIED BY 'devel'; GRANT ALL PRIVILEGES ON *.* TO 'devel'@'%' WITH GRANT OPTION;
A konzoli ukončíme zadáním:
exit
Restartujeme MySQL server:
sudo /etc/init.d/mysql restart
Znovu se připojíme k MySQL konzoli, tentokrát jako uživatel devel s heslem devel (konzole se nás na něj zeptá).
mysql --password mysql
Vymažeme uživatele root. Pokud jste při instalaci Ubuntu zvolili jiný host name než devel79, upravte poslední příkaz tak, aby odpovídal vašemu host name.
DROP USER 'root'@'localhost'; DROP USER 'root'@'127.0.0.1'; DROP USER 'root'@'::1'; DROP USER 'root'@'devel79';
Konzoli ukončíme:
exit
A server restartujeme.
sudo /etc/init.d/mysql restart
Instalace PostgreSQL
Nainstalujeme PostgreSQL server a modul pro Apache:
sudo apt-get install postgresql postgresql-contrib
Upravíme nastavení pro vzdálený přístup k serveru:
sudo nano /etc/postgresql/9.1/main/pg_hba.conf
Najdeme řádek „local all postgres peer“ a nahradíme ho za „local all devel peer“ (nebo místo devel jiného uživatele, kterého jsme zadali při instalaci Debianu). Dále nahradíme řádku „host all all 127.0.0.1/32 md5“ za „host all all 0.0.0.0/0 md5“, čímž povolíme připojení k serveru odkudkoliv. Uložíme a ukončíme editor.
Vytvoříme adresář na datovém disku a nastavíme mu majitele postgres.
sudo mkdir -p /data/pgsql/9.1/main sudo chown postgres.postgres -R /data/pgsql
Vypneme PostgreSQL:
sudo /etc/init.d/postgresql stop
Dotavé úložiště budeme chtít mít s nastavením porovnávením na češtinu (cs_CZ.UTF-8). Spustíme příkaz:
sudo dpkg-reconfigure locales
Kde by měla být zaškrtnuta volba en_US.UTF-8. My k ní pomocí mezerníku ještě přidáme cs_CZ.UTF-8 a potvrdíme Enterem. Na další obrazovce zvolíme None a také potvrdíme Enterem.
Nyní se v konzoli přihlásíme jako uživatel postgres a vytvoříme nové úložiště pro databázi. Pokud nechceme české porovnávíní, vynecháme parametr –locale=cs_CZ.UTF-8.
sudo su postgres /usr/lib/postgresql/9.1/bin/initdb --pgdata /data/pgsql/9.1/main --locale=cs_CZ.UTF-8 exit
Otevřeme nastavení a zadáme nové datové úložiště a adresu, na které server naslouchá:
sudo nano /etc/postgresql/9.1/main/postgresql.conf
Najdeme „data_directory = ‚/var/lib/postgresql/9.1/main'“ a nahradíme za „data_directory = ‚/data/pgsql/9.1/main'“.
Dále řádek „#listen_addresses = ‚localhost'“ nahradíme za „listen_addresses = ‚*'“ a nakonec „ssl = true“ za „#ssl = true“. Soubor uložíme CTRL+O, ENTER, zavřeme CTRL+X a spustíme server:
sudo /etc/init.d/postgresql start
Znovu se přihlásím jako uživatel postgres a vytvořím nového uživatele devel s heslem devel (nebo jiného uživatele, podle vašich preferencí):
sudo su postgres createuser devel -P
Zadám heslo devel a pak ještě jednou pro potvrzení. Na dotaz jestli je nový uživatel superuser, zadám y (ano je). Nakonec vytvoříme databázi devel, kterou někteří klienti vyžadují pro připojení.
createdb devel exit
Smažeme nepotřebné soubory z datového úložiště, nepotřebné soubory z instalace PostgreSQL serveru a nakonec server restartujeme.
sudo rm /data/pgsql/9.1/main/postgresql.conf sudo rm /data/pgsql/9.1/main/pg_hba.conf sudo rm /data/pgsql/9.1/main/pg_ident.conf sudo rm -R /var/lib/postgresql sudo /etc/init.d/postgresql restart
Instalace Memcached
Službu memcached nainstalujeme příkazem:
sudo apt-get install memcached
Po instalaci upravíme nastavení:
sudo nano /etc/memcached.conf
Upravíme řádek „-m 64“ na „-m 16“, čímž snížíme množství použité paměti a „-l 127.0.0.1“ na „#-l 127.0.0.1“, čímž povolíme připojení na Memcached odkudkoliv. Soubor uložíme CTRL+O, ENTER, zavřeme CTRL+X a Memcached restartujeme:
sudo /etc/init.d/memcached restart
Instalace Redis
Redis nainstalujeme pomocí příkazu:
sudo apt-get install redis-server
Vytvoříme adresář pro data a nastavíme mu správného vlastníka:
sudo mkdir /data/redis sudo chown redis.redis /data/redis
Upravíme nastavení:
sudo nano /etc/redis/redis.conf
Změníme řádek „bind 127.0.0.1“ na „#bind 127.0.0.1“, tím povolíme připojit se na Redis odkudkoliv a řádek „dir /var/lib/redis“ přepíšeme na „dir /data/redis“, čímž změníme úložiště souborů. Soubor uložíme CTRL+O, ENTER a zavřeme CTRL+X a Redis restartujeme.
sudo /etc/init.d/redis-server restart
Nakonec smažeme starý datový adresář:
sudo rm /var/lib/redis -R
Instalace ElasticSearch
Nejprve nainstalujeme Javu:
sudo apt-get install default-jre
Poté stáhneme a nainstalujeme elasticsearch z oficiálního debianího balíčku (můžete se podívat, zda není vydána novější verze):
cd ~ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.3.deb sudo dpkg -i elasticsearch-0.90.3.deb
Vymažeme soubor s balíčkem:
rm elasticsearch-0.90.3.deb
Pokud bychom v budoucnu chtěli elasticsearch odinstalovat, použijeme příkaz:
sudo dpkg -r elasticsearch
Nyní připravíme datový adresář:
sudo mkdir /data/elasticsearch sudo chown elasticsearch.elasticsearch /data/elasticsearch
Upravíme nastavení:
sudo nano /etc/elasticsearch/elasticsearch.yml
Kde přidáme řádku:
path.data: /data/elasticsearch
A restartujeme službu:
sudo /etc/init.d/elasticsearch restart
Vývojový SMTP server
Vývojový SMTP server funguje tak, že všechny emaily uloží do souboru v adresáři /data/emails. Ten může být přímo adresář nebo v mém případě symbolický odkaz na /share, kde se mi emaily ukládají přímo do Windows a utilita Devel79 Tray mi hlídá a zobrazuje nově vytvořené emaily.
Nejprve nainstalujeme exim4:
sudo apt-get install exim4
Spustíme průvodce konfigurací:
sudo dpkg-reconfigure exim4-config
A vyplníme následující hodnoty:
OK
General type of mail configuration
– local delivery only; not on a network
System mail name
– devel79
IP-addresses to listen on for incoming SMTP connections
– necháme prázdné
Other destinations for which mail is accepted
– *
Keep number of DNS-queries minimal (Dial-on-Demand)?
– No
Delivery method for local mail
– mbox format in /var/mail/
Split configuration into small files?
– No
Upravíme nastavení eximu:
sudo nano /etc/exim4/conf.d/router/950_exim4-config_catchall
Kde zadáme:
catch_all: debug_print = "R: catch_all for $local_part@$domain" driver = redirect data = ${lookup{*}lsearch{/etc/aliases}} pipe_transport = address_pipe
Uložíme CTRL+O, ENTER a zavřeme CTRL+X soubor. A otevřeme si soubor /etc/aliases:
sudo nano /etc/aliases
Kam nakonec přidáme řádku, která přesměruje všechny emaily na náš skript:
*: |/etc/exim4/save-email
Upravíme další nastavení exim4:
sudo nano /etc/exim4/update-exim4.conf.conf
Kde změníme řádek „dc_relay_domains=““ na „dc_relay_domains=’*'“. Soubor uložíme CTRL+O, ENTER a zavřeme CTRL+X. Nakonec aktualizujeme konfiguraci a restartujeme službu:
sudo update-exim4.conf.template -r sudo update-exim4.conf sudo service exim4 restart
Vytvoříme si adresář, kam se budou ukládat emaily. Buď jako adresář:
sudo mkdir /data/emails sudo chmod a+w /data/emails -R
Nebo jako symbolický odkaz do sharu na Windows (doporučené):
sudo ln -s /share/path/to/Emails /data/emails
Nyní si vytvoříme skript, který bude emaily ukládat do adresáře:
sudo nano /etc/exim4/save-email
Do souboru vložíme následující obsah:
#!/bin/bash date2string() { date "+%Y%m%d.%H%M%S" } FILE="email-$(date2string).$$.$RANDOM.eml" cat /dev/stdin > /data/emails/$FILE
Nakonec souboru nastavíme práva na spouštění:
sudo chmod a+x /etc/exim4/save-email
BASH skripty pro zálohování a obnovu souborů
Pro snadnou zálohu dat v rámci vývojového server (neplést se zálohou celého pevného disku) jsem napsal dva skriptíky pro zálohování a obnovu celého adresáře. Nejprve nastavíme cestu k našim skriptům do PATH:
nano ~/.bashrc
Na konec souboru připíšeme:
PATH=$PATH:~/scripts export PATH
Uložíme CTRL+O, ENTER a zavřeme CTRL+X. Vytvoříme nový adresář batch v našem domovském adresáři a do něj skripty uložíme:
mkdir ~/scripts nano ~/scripts/backup
Vložíme následující skript pro zálohu dat:
#!/bin/bash USAGE="Usage: backup dir-to-backup" date2string() { date "+%Y%m%d.%H%M%S" } if [ $# -ne 1 ]; then ls -1 /data echo $USAGE else FILE="$1.$(date2string).tar.gz" sudo tar -pcvzf /data/backup/$FILE /data/$1 fi
Skript uložíme CTRL+O, ENTER a zavřeme CTRL+X a otevřeme skript pro obnovu dat:
nano ~/scripts/restore
Vložíme:
#!/bin/bash USAGE="Usage: restore file-to-restore" if [ $# -ne 1 ]; then ls -1 /data/backup echo echo $USAGE else cd / sudo tar -pxvzf /data/backup/$1 fi
Uložíme CTRL+O,ENTER a zavřeme CTRL+X. Skriptům nastavíme práva na spouštění:
chmod a+x ~/scripts/*
Vytvoříme adresář, kam se budou zálohy ukládat a nastavíme mu jako majitele uživatele devel (nebo jiného, pokud jste zadali jiný název při instalaci Debianu).
sudo mkdir /data/backup sudo chown devel.devel /data/backup -R
Pro zálohu dat MySQL, PostgreSQL, Apache, Redisu nebo ElasticSearch použijte následující příkazy (funguje až po restartu systému nebo odhlášení a novém přihlášení):
backup mysql backup pgsql backup www ...
Pro obnovu dat použijte příkaz:
restore SouborDatKObnově
Pokud zadáme pouze restore, vypíší se všechny uložené zálohy.
Nyní je server připraven k použití a můžeme ho vypnout z menu Machine – ACPI Shutdown.
Závěr
Zobrazíme si nastavení serveru a na kartě Storage odebereme CD-ROM mechaniku, nebudeme ji už potřebovat.
Nyní máme server připravený k použití. Ať vám slouží stejně dobře, jako mě. Pokud budeme mít nějaké dotazy nebo návrhy na vylepšení, budu rád, když napíšete do komentářů.
Devel79 Tray
Pokud chcete zkusit komfortnější ovládání vašeho vývojového serveru, rád bych vám doporučil svoji utilitku, vytvořenou tomuto serveru na míru Devel79 Tray.
Doporučené nastavení, upgrade a tipy a triky k vašemu virtuálnímu serveru
Doporučené nastavení sítě
Úprava hosts ve Windows
Osobně mám ve Windows hosts přidán alias pro virtuální server (jak na to například zde http://en.wikipedia.org/wiki/Hosts_(file) nebo programem UpdateHosts), který ukazuje na druhou síťovou kartu na serveru. U sebe mám nastaveno:
192.168.56.101 devel79
Při komunikaci se serverem pak používám místo IP adresy název hosta devel79. Má to i tu výhodu, že stejné nastavení může fungovat přímo z Windows, kde host devel79 odkazuje na IP 192.168.56.101 a stejně tak z virtuálního serveru, kde zase host devel79 automaticky ukazuje na IP 127.0.0.1.
Typ sítě – NAT
Tento typ sítě se používá pro přístup virtuálního serveru k internetu. Ale je zde ještě jedna funkčnost, které lze využít a která souvisí a to je předávání portů. Můžete si nastavit předávání portů mezi systémem Windows a naším virtuálním serverem. V nastavení našeho serveru na kartě Network u první síťové karty rozklikneme Advanced a dole klikneme na Port forwarding. Zde můžeme nastavit porty, které budou bindovány ke všem síťovým rozhraním, které máme v systému (případně můžeme nastavit pouze konkrétní IP adresu). Nastavíme port, který bude použit ve Windows – Host Port a port, na který se bude odkazovat ve virtuálním serveru – Guest Port. Poté budete moci přistupovat ke službám třeba přes 127.0.0.1:port. Pokud toto nepotřebujete kvůli nějaké speciální aplikaci, na které pracujete, doporučuji tento způsob nepoužívat a spíše všechno řešit přes druhou síťovou kartu, které je nastavena jako síť pouze s hostem.
Přehled služeb a jejich portů, které máme nainstalované ve virtuálním serveru:
- Apache, port 80
- MySQL, port 3306
- PgSQL, port 5432
- Memcache, port 11211
- Redis, port 6379
- ElasticSearch, port 9200
Typ sítě – síť pouze s hostem (Host-only adapter)
Pro základní komunikaci s virtuálním serverem se používá Host-only adapter, který umožňuje komunikaci mezi hostitelem a hostem. Pro správné fungování musí být v systému nainstalován a správně nastaven VirtualBox Host-Only Network Adapter. Klikneme na File – Preferences… a vybereme kartu Network. Zde v poli Host-only Networks: musí být minimálně jeden adaptér, který použijeme v nastavení sítě u druhé síťové karty našeho serveru. Pokud zde žádný adaptér není, stiskneme klávesu Insert a vytvoříme ho. Poté na něj dvojklikneme myší a zkontrolujeme, zda má nastavenu IPv4 Address: 192.168.56.1 a IPv4 Network Mask: 255.255.255.0. Bez tohoto nastavení se nepřipojíme na služby běžící na serveru!
Chyba ve VirtualBoxu
Tady bych rád upozornil na chybu, které se u mě vyskytuje, pokud aktualizuji VirtualBox na novější verzi. Při aktualizaci se mi změní IP adresa adaptéru, a i když jí změním zpět, po restartu počítače je zase IP adresa špatně. U mě na to funguje tento trik. Vypnu všechny spuštěné virtuální počítače, vymažu aktuální adaptér, zavřu VirtualBox, spustím VirtualBox, přidám nový adaptér, změním mu IP adresu na 192.168.56.1. Od teď si ji VirtualBox zase pamatuje.
Přístup na server přes SSH pomocí certifikátu bez zadávání hesla
Používání SSH z MSYS
Pokud používáte msys (což mohu vřele doporučit, jedná se o sadu Unix utilit portovaných na systém Windows), přihlásíte se na server zadáním příkazu:
ssh devel@devel79 -i path/to/id_rsa
Kde path/to/id_rsa nahradíme za cestu k souboru id_rsa, který jsme si vytvořili při instalaci SSH serveru. Pokud parametr -i vynecháme, budeme muset při přihlášení zadat heslo.
Putty
Pokud nemáme nainstalované msys, můžeme použít jiného SSH klienta. Třeba hojně používaný program Putty.
Spustíme Putty a jako hostname zadáme devel79. Pak jdeme do nastavení SSH – Auth – Private key file for authentication, kde vybereme náš soukromý klíč ve formátu pro Putty. Ten si vygenerujeme takto. Spustíme program puttygen.exe. Zvolíme z menu Conversions – Import key a vybereme soubor id_rsa. Nakonec klikneme na tlačítko Save private key a potvrdíme, že chceme uložit klíč bez hesla.
Základní ovládání Apache
Pro spuštění, zastavení, restartování a znovu načtení konfigurace slouží následující příkazy:
sudo /etc/init.d/apache2 start sudo /etc/init.d/apache2 stop sudo /etc/init.d/apache2 restart sudo /etc/init.d/apache2 reload
Pro povolení nebo zakázání nějakého modulu, slouží příkazy a2enmod a a2dismod. Například doporučuji povolit modul mod_rewrite. To uděláme příkazem:
sudo a2enmod rewrite
Zakázání tohoto module potom příkazem:
sudo a2dismod rewrite
Po této operaci musíme vždy restartovat celého Apache.
Pro vytvoření virtual hostu musíme založit nový soubor v adresáři /etc/apache2/sites-available a do něj vložíme klasickou definici <VirtualHost …>. Jako DocumentRoot můžeme použít adresář z Windows přes /share/…. Soubor založíme nebo otevřeme příkazem:
/etc/apache2/sites-available/sitename
Kde sitename nahradíme za nějaký náš vlastní název. Abychom pak tento definiční soubor povolili nebo zakázali, použijeme příkaz a2ensite nebo a2dissite. Pro povolení souboru sitename poslouží příkaz:
sudo a2ensite sitename
A pro zakázání pak:
sudo a2dissite sitename
Po této operaci musíme vždy znovu načíst konfiguraci Apache.
Nastavení SSL pro VirtualHosta
Nejpreve musíme v Apachi povolit modul SSL a Apache restartovat:
sudo a2en ssl sudo /etc/init.d/apache2 restart
Poté vytvoříme adresář, kam se uloží self-signet testovací certifikát (prohlížeč nás bude varovat, že certifikát není důvěryhodný, ale pro testovací účely nám to nebude vadit):
sudo mkdir /etc/apache2/keys
Nakonec si vygenerujeme samotný certifikát:
sudo openssl req -new -x509 -days 3650 -sha1 -newkey rsa:1024 -nodes -keyout /etc/apache2/keys/domain.com.key -out /etc/apache2/keys/domain.com.crt -subj '/O=Company/OU=Department/CN=*.domain.com'
Kde days
je počet dnů platnosti certifikátu, keyout
a out
jsou soubory s certifikátem (doporučuji pojmenovat podle domény) a nakonec subj
jsou informace o společnosti a hlavně doména, ke které se certifikát vztahuje (lze použít wildcart typu *.domain.com což znamená všechny subdomény na doméně domain.com). Doménu samozřejmě zvolíme takovou, na které běží vývojová instance našeho webu.
Pokud poté chceme šifrované spojení povolit pro virtual hosta, použijeme v jeho definici následující kód:
SSLEngine on SSLCertificateFile /etc/apache2/keys/domain.com.crt SSLCertificateKeyFile /etc/apache2/keys/domain.com.key
Kde SSLCertificateFile
a SSLCertificateKeyFile
jsou soubory s certifikátem, který jsme si vygenerovali pro konkrétní doménu.
Zálohování MySQL a PostgreSQL
Pro kompletní zálohování MySQL dat ve formátu SQL použijeme příkaz (zeptá se nás na heslo k účtu devel):
mysqldump --all-databases -u devel -p > /share/mysql.sql
Tento příkaz uloží dump na disk do Windows. Pro obnovu z tohoto souboru poté slouží příkaz (opět se zeptá na heslo):
mysql -u devel -p < /share/mysql.sql
Pro kompletní zálohu databáze PostgreSQL ve formátu SQL existuje příkaz:
pg_dumpall --file=/share/pgsql.sql
Tento příkaz uloží dump na disk do Windows. Pro obnovu z tohoto souboru slouží příkaz:
psql < /share/pgsql.sql
Síťová komunikace ze serveru do Windows
Pokud budeme chtít na serveru využít nějakou službu běžící ve Windows, najdeme ji na IP adrese 10.0.2.2. Jedná se o výchozí bránu pro NAT připojení.
Odebrání balíčků
Pro odinstalaci balíčků používám příkaz
sudo apt-get remove --purge package_name sudo apt-get autoremove
Kde package_name je jméno balíčku, který chci odstanit.
Více serverů sdílejícíh disky
Díky rozdělení disků není problém spouštět nad stejnými daty servery s různou konfigurací a s různými verzemi softwaru. V praxi si stačí vytvořit nový virutuální počítač se stejným nastavením jako náš sever. K němu vytvořit kopii systémového disku (File – Virtual Media Manager – devel79.vdi – pravé tlačítko myši – Copy…). Jako systémový disk připojíme nově vytvořenou kopii, swap disk můžeme sdílet a stejně tak datový disk použijeme stejný. Systém si můžeme upravit třeba rozdílnou verzí PHP a pak můžeme jednodušše testovat naše data mezi jednotlivými prostředími. Jen si musíme dát pozor, aby neběžely dva servery zároveň. Nová verze Devel79 Tray již umožňuje jednoduché přepínání mezi více servery.
Nastavení priority balíčků k instalaci
Nastavení priority balíčků k instalaci (pinování) použijeme v případě pokud je některý balíček dostupný z více zdrojů a my potřebujeme nainstalovat ten, který není zrovna v systému nastaven jako prioritní. Vše si ukážeme na instalaci Redis serveru. Pokud máme v systému přidány dotdeb balíčky můžeme Redis instalovat ze dvou zdrojů. Který je v systému defaultní si ověříme příkazem apt-cache policy
:
sudo apt-cache policy redis-server
Dostaneme podobný výstup:
redis-server: Installed: (none) Candidate: 2:2.4.16-1~dotdeb.0 Version table: 2:2.4.16-1~dotdeb.0 0 500 http://packages.dotdeb.org/ stable/all amd64 Packages 2:2.2.12-1build1 0 500 http://ftp.usf.edu/pub/ubuntu/ precise/universe amd64 Packages
Vidíme, že k instalaci je určena verze z dotdeb balíčků. Pokud se podíváme třeba na balíček PHP 5, který jsme nainstalovali ještě před přidáním dotdeb balíčků:
sudo apt-cache policy php5
Uvidíme něco podobného:
php5: Installed: 5.3.10-1ubuntu3.2 Candidate: 5.3.16-1~dotdeb.0 Version table: 5.3.16-1~dotdeb.0 0 500 http://packages.dotdeb.org/ stable/all amd64 Packages *** 5.3.10-1ubuntu3.2 0 500 http://ftp.usf.edu/pub/ubuntu/ precise-updates/main amd64 Packages 500 http://ftp.usf.edu/pub/ubuntu/ precise-security/main amd64 Packages 100 /var/lib/dpkg/status 5.3.10-1ubuntu3 0 500 http://ftp.usf.edu/pub/ubuntu/ precise/main amd64 Packages
Pokud chceme zachovat PHP instalované z debianích repozitářů, ale přitom budeme chtít nainstalovat Redis server z dotdeb repozitářů, musíme:
1) snížit prioritu všech dotdeb balíčků na 400, aby debianí repozitář měl prioritu větší
2) zvětšit prioritu pro redis-server zpět na 500
Vytvoříme soubor /etc/apt/preferences.d/dotdeb
:
sudo nano /etc/apt/preferences.d/dotdeb
A do něj vložíme následující kód:
Package: * Pin: release o=packages.dotdeb.org Pin-Priority: 400 Package: *redis-server* Pin: release o=packages.dotdeb.org Pin-Priority: 500</code>
Nyní si můžeme ověřit nastavení priorit pro dotdeb repozitář:
sudo apt-cache policy | grep dotdeb
S podobným výsledkem:
400 http://packages.dotdeb.org/ stable/all i386 Packages release o=packages.dotdeb.org,a=stable,n=squeeze,l=packages.dotdeb.org,c=all origin packages.dotdeb.org 400 http://packages.dotdeb.org/ stable/all amd64 Packages release o=packages.dotdeb.org,a=stable,n=squeeze,l=packages.dotdeb.org,c=all origin packages.dotdeb.org redis-server -> 2:2.4.16-1~dotdeb.0 redis-server:i386 -> 2:2.4.16-1~dotdeb.0
Ještě ověříme balíček php5:
sudo apt-cache policy php5
Vše už je správně:
php5: Installed: 5.3.10-1ubuntu3.2 Candidate: 5.3.10-1ubuntu3.2 Version table: 5.3.16-1~dotdeb.0 0 400 http://packages.dotdeb.org/ stable/all amd64 Packages *** 5.3.10-1ubuntu3.2 0 500 http://ftp.usf.edu/pub/ubuntu/ precise-updates/main amd64 Packages 500 http://ftp.usf.edu/pub/ubuntu/ precise-security/main amd64 Packages 100 /var/lib/dpkg/status 5.3.10-1ubuntu3 0 500 http://ftp.usf.edu/pub/ubuntu/ precise/main amd64 Packages
Upgrade
Upgrade balíčků
Pro upgrade balíčků nainstalovaných v systému použijte kombinaci příkazů:
sudo apt-get update sudo apt-get upgrade
VirtualBox Guest Additions
S novou verzí VirtualBoxu vždy přichází i nová verze VirtualBox Guest Additions. Doporučuji provádět průběžný upgrade. Postup je úplně stejný jako při první instalaci. Přidáme k serveru CD-ROM mechaniku v nastavení na záložce Storage a připojíme do ní aktuální ISO obraz s VirtualBox Guest Additions. Poté spustíme server, přihlásíme se a spustíme instalaci:
sudo sh /media/cdrom0/VBoxLinuxAdditions.run
Upgrade systému/připojení datového disku k novému serveru
Pokud upgradujeme systém z čisté instalace bez použití utility do-release-upgrade nebo připojíte váš datový disk k jinému serveru je potřeba provést pár věcí. Nejprve přidáme existující disk ve VirtualBoxu v nastavení našeho serveru na záložce Storage. Poté vytvoříme adresář /data a otevřeme si soubor /etc/fstab:
sudo mkdir /data sudo nano /etc/fstab
Do souboru zapíšeme na konec řádku:
/dev/sdb1 /data ext4 rw 0 0
A server restartujeme:
sudo reboot
Při bootavání na nás pravděpodobně vyskočí chyba při kontrole tabulek MySQL. To je způsobeno tím, že systémový uživatel Debianu (debian-sys-maint) má na novém systému jiné heslo, než bylo na starém serveru. Heslo upravíme následovně. Příkazem:
sudo cat /etc/mysql/debian.cnf | grep password
Si necháme zobrazit heslo, které se systém snaží používat. Zobrazí se nám dva stejné řádky „password = <<password>>“. Ono <<password>> si zkopírujeme a pokračujeme spuštěním MySQL konzole (zeptá se na heslo účtu devel):
mysql -u devel -p
A do ní zadáme následující příkaz, kde <<password>> nahradíme za naše aktuální heslo, které jsme získali z výpisu výše.
SET PASSWORD FOR 'debian-sys-maint'@'localhost' = PASSWORD('<<password>>'); exit
Také je možné, že na novém systému budou špatně práva k datovým souborům, protože se přesné identifikátory uživatelů na různých systémech mohou lišit. Proto provedeme kontrolu:
cd /data ls -l
A zkontrolujeme, že každý adresář má správného vlastníka. Pokud tomu tak není, napravíme to následujícím příkazem, kde nahradíme user za konkrétního uživatele a directory za konkrétní adresář (www-data pro adresář www, mysql pro adresář mysql, postgres pro adresář pgsql, redis pro adresář redis a nakonec elasticsearch pro adresář elasticsearch):
sudo chown user.user directory -R
Úpravy a novinky v návodu
2013-09-04: upgrade návodu na Debian Wheezy 7.1.0, instalace PHP 5.4 nebo PHP 5.3, více serverů sdílejících data s swap
2013-05-01: nastavení časového pásma v php.ini (cli i apache2), upravena instalace Redisu, nastavení českého porovnávání v PostgreSQL
Super clanok, dakujem velmi pekne
Díky za tento návod. S úspěchem používám doma i v práci. Podle tohoto návodu se dá instalace ohnout podle vlastních představ.
Ještě jednou díky