Uživatelské nástroje

Toto je starší verze dokumentu!


Instalace Cyclosu na Ubuntu server 16.04 na vpsFree

WORK IN PROGRESS - návod je zatím nekompletní

Momentálně vpsFree podporuje jen Ubuntu server 14.04. Upgrade na 16.04 proto využívá balíku update-manager-core a příkazu do-release-upgrade.

Základní nastavení serveru před upgradem na 16.04

  1. přes vpsAdmin (https://vpsadmin.vpsfree.cz/) vytvořit nové playground VPS s Ubuntu server 14.04
  2. vygenerovat si heslo roota, to si uložit do správce hesel (Keepass2) a opsat si IP adresu IPv4
  3. v /etc/hosts lokálně si případně doplnit záznam pro IP adresu, aby stačilo zadávat jen doménové jméno, např. dev.rozletse.cz
  4. přihlásit se jako root na vps přes ssh (ssh root@dev.rozletse.cz)
  5. přes adduser si vytvořit vlastního uživatele
  6. přidělit uživateli sudo práva přes sudo usermod -aG sudo username
  7. zkusit se na nového uživatele v novém okně přihlásit a vyzkoušet příkaz sudo su, jestli uživatel opravdu má sudo práva
  8. pro pohodlnost si nainstalovat mc a mcedit, sudo apt-get udpate && sudo apt-get install mc mcedit
  9. zabezpečit ssh server: sudo mcedit /etc/ssh/sshd_config. zakázat login roota: PermitRootLogin No, a změnit port z 22 např. na 10022: Port 10022
  10. povolit si přihlášení přes rsa public key, z lokálního PC zkopírovat záznam z ~/.ssh/id_rsa.pub a ten vložit do souboru authorized_hosts na serveru (~/.ssh/authorized_hosts)
  11. opravit přístupová práva k této složce na serveru, chmod 700 ~/.ssh a chmod 600 ~/.ssh/authorized_keys
  12. vygenerovat si české locales, sudo locale-gen cs_CZ.UTF-8 a nastavit si časovou zónu, sudo dpkg-reconfigure tzdata
  13. upgradovat všechny balíky 14.04: sudo apt-get upgrade

Upgrade na 16.04

  1. nainstalovat balík update-manager-core: sudo apt-get install update-manager-core
  2. provést upgrade na novou LTS verzi: sudo do-release-upgrade -d
  3. schválit dočasné spuštění záložní instance sshd na portu 1022, povolit reload ssh, a případné přepsání konfiguračních souborů novými verzemi schválit (a/y)
  4. na konci povolit restart serveru

Přihlášení po upgradu na 16.04

  • pokud byl ugprade úspěšný, do 30 s po restartu se lze znovu přihlásit a mělo by nás přivítat nové Ubuntu 16.04:
ssh -p 10022 dev.rozletse.cz
Welcome to Ubuntu 16.04 LTS (GNU/Linux 3.16.6-042stab113.11 x86_64)
 
 * Documentation:  https://help.ubuntu.com/
Last login: Sat Apr 23 15:25:50 2016 from xxx

Bash autocompletion

  • pro pohodlnou další práci je vhodné nainstalovat autocomplete: sudo apt-get install bash-completion a znovu se přihlásit, případně ještě upravit /etc/bash.bashrc

Instalace základních serverů

  1. webserver Apache (apache2), MySQL (MariaDB), Java JRE (openjdk-8-jdk-headless) a Tomcat (tomcat8): sudo apt-get install openjdk-8-jdk-headless mariadb-server-10.0 apache2 tomcat8 tomcat8-admin tomcat8-user php libapache2-mod-php Neinstalovat openjdk-9, není kompatibilní s tomcatem

Nastavení SSL

  • nutné zabezpečit přístup do Tomcat managera, Tomcat servletů na nativních portech, a přesměrovávat virtualhosty Apache na SSL na portu 443, případně zajistit všechny další služby (webmin, phpmyadmin/adminer apod.)

Let's encrypt

TODO

Nefunguje na WInXP krom Firefoxu

Běžné SSL certifikáty

TODO

Dále se uvádí nešifrované http spojení na portu 8080/80, pokud jde o ssl tak 8443 nebo 443.

Příprava Tomcat GUI manageru

  1. upravit login v /etc/tomcat8/tomcat-users.xml a přiřadit se do skupiny manager-gui
  2. přihlásit se v dev.rozletse.cz:8080/manager

Příprava SQL databáze

  1. zabezpečit SQL server např. dle návodu http://www.yassl.com/files/yassl_securing_mysql.pdf nebo pomocí skriptu mysql_secure_installation
  2. nainstalovat phpmyadmin či adminer, či ručně vytvořit nového SQL uživatele a databázi (např. cyclos/cyclos):
    sudo mysql -uroot -p
    create database cyclos;
    grant all on cyclos.* to cyclos@localhost identified by 'heslo-sql-uzivatele-cyclos';
    flush privileges;
    exit
  3. v případě existující databáze kterou je nutné migrovat exportovat dosavadní SQL databázi
    mysqldump -u cyclos -p cyclos > cyclos-db.sql

    , a tu pak znovu importovat,

    mysql -u cyclos -p cyclos < cyclos-db.sql

Příprava WAR servletu s Cyclosem

  1. stáhnout zip s cyclos3 z https://sourceforge.net/projects/cyclos/files/Cyclos3/3.7.3/cyclos_3.7.3.zip/download a rozbalit jej, nebo zkopírovat existující cyclos z existujícího serveru ze složky tomcatu/webapps
  2. upravit war soubor nebo zkopírovaný cyclos v souboru cyclos/WEB-INF/classes/cyclos.properties - zejména nastavit SQL server, databázi a username
  3. zabalit zpátky do waru: jar cvf cyclos.war .
  4. ve /var/lib/tomcat8/conf/server.xml odkomentovat řádek s connector port 8009 pro AJP/1.3
  5. v /etc/default/tomcat8 nastavit JAVA_OPTS následovně:
    JAVA_OPTS="-Djava.awt.headless=true -Xms192m -Xmx768m -XX:+UseConcMarkSweepGC -XX:MaxPermSize=192m"

    , restartovat službu tomcatu: sudo service tomcat8 restart. Bez tohoto navýšení paměti se spuštění Cyclosu nezdaří a spouštění se může zaseknout ve smyčce konzumující naplno CPU, aniž by se kdy Cyclos dokázal spustit

  6. war soubor přes tomcat manager deploynout: context path /cyclos, a zadat adresu war souboru v rámci filesystému serveru, např. /home/brozkeff/cyclos-config/cyclos.war

Test funkčního Cyclosu

Přístup na Cyclos z portu 80 příp. 443/ssl přes reverzní proxy Apache2

  1. povolit modul proxy_ajp v Apache: sudo a2enmod proxy_ajp
  2. V příslušném Virtualhostu Apache (např. /etc/apache2/sites-enabl)ed/000-default.conf) doplnit následující řádky a restartovat Apache2 (sudo service apache2 restart)
    ProxyPass /cyclos ajp://127.0.0.1:8009/cyclos
    ProxyPassReverse /cyclos ajp://127.0.0.1:8009/cyclos
  3. Cyclos by tímto měl být přístupný přímo přes port 80 nebo 443 v případě ssl u Apache: http://dev.rozletse.cz/cyclos / https://dev.rozletse.cz/cyclos

Další věci tímto návodem neřešené

  • jiné služby na serveru (mailserver)
  • nastavení domén a DNS záznamů
  • zálohování
  • konfigurace Cyclosu úplně nanovo v případě, že nejde jen o přenos existující databáze a war souboru s upravenou grafickou šablonou a překladovými klíči