Wiki spuštěna 24. 7. 2025

Instalace Ubuntu 24 na jakobsonovi

Pracujeme na stroji tagging, který pak přejmenujeme.

Apache2

  • Instalujeme apache2
    apt install apache2
  • Získáme SSL certifikát (podle Apache2 : Configure SSL/TLS) anebo si vyrobíme self-signed certifikát (podle Self-Signed Certificate).
    • Let's Encrypt:
      • Postupujeme podle návodu pro Certbot na https://certbot.eff.org/instructions
      • Zvolíme možnost certbot --apache a vyplníme:
        • E-mail: hana.skoumalova@ff.cuni.cz
        • Se vším souhlasíme
        • Doména: jakobson.korpus.cz
        • vhost: default-ssl.jakobson.korpus.cz
      • Vyzkoušíme automatické obnovování:
        renew --dry-run
      • Automatické obnovování se dělá pomocí
        systemctl list-timers
        NEXT                             LEFT LAST                               PASSED UNIT                           ACTIVATES                       
        Mon 2025-07-28 22:39:00 CEST     6min Mon 2025-07-28 22:09:08 CEST    23min ago phpsessionclean.timer          phpsessionclean.service
        Tue 2025-07-29 00:00:00 CEST 1h 27min Mon 2025-07-28 00:00:34 CEST            - dpkg-db-backup.timer           dpkg-db-backup.service
        Tue 2025-07-29 00:00:00 CEST 1h 27min Mon 2025-07-28 00:00:34 CEST            - logrotate.timer                logrotate.service
        Tue 2025-07-29 03:33:34 CEST  5h 1min Mon 2025-07-28 22:00:00 CEST    32min ago plocate-updatedb.timer         plocate-updatedb.service
        Tue 2025-07-29 06:21:44 CEST       7h Mon 2025-07-28 11:53:30 CEST            - apt-daily.timer                apt-daily.service
        Tue 2025-07-29 06:31:23 CEST       7h Mon 2025-07-28 06:24:23 CEST            - apt-daily-upgrade.timer        apt-daily-upgrade.service
        Tue 2025-07-29 07:31:12 CEST       8h Mon 2025-07-28 05:22:28 CEST            - man-db.timer                   man-db.service
        Tue 2025-07-29 09:54:00 CEST      11h -                                       - snap.certbot.renew.timer       snap.certbot.renew.service
        Tue 2025-07-29 10:14:08 CEST      11h Mon 2025-07-28 19:03:21 CEST            - motd-news.timer                motd-news.service
        Tue 2025-07-29 20:36:40 CEST      22h Mon 2025-07-28 20:36:40 CEST 1h 55min ago update-notifier-download.timer update-notifier-download.service
        Tue 2025-07-29 20:46:40 CEST      22h Mon 2025-07-28 20:46:40 CEST 1h 45min ago systemd-tmpfiles-clean.timer   systemd-tmpfiles-clean.service
        Sun 2025-08-03 03:10:25 CEST   5 days Sun 2025-07-27 03:10:43 CEST            - e2scrub_all.timer              e2scrub_all.service
        Mon 2025-08-04 19:04:14 CEST   6 days Mon 2025-07-28 22:28:37 CEST 3min 46s ago update-notifier-motd.timer     update-notifier-motd.service
      • Upravíme /etc/apache2/apache2.conf, aby obsahoval
        ServerName jakobson.korpus.cz

        a odkomentujeme

        Redirect permanent "/" "https://jakobson.korpus.cz/"

        v /etc/apache2/sites-enabled/000-default.conf

    • Self-signed:
      • Instalujeme
        apt-get install apache2 openssl

        (nejspíš už je hotovo).

      • Můžeme přegenerovat vlastní certifikát
        make-ssl-cert generate-default-snakeoil --force-overwrite
      • Přepíšeme soubor /etc/apache2/sites-available/default-ssl.conf a přejmenujeme ho na default-ssl.tagging.korpus.cz.conf
        <VirtualHost *:443>
                ServerAdmin hana.skoumalova@ff.cuni.cz
         
                DocumentRoot /var/www/html
         
         
                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined
         
                #   SSL Engine Switch:
                #   Enable/Disable SSL for this virtual host.
                SSLEngine on
         
                #   A self-signed (snakeoil) certificate can be created by installing
                #   the ssl-cert package. See
                #   /usr/share/doc/apache2/README.Debian.gz for more info.
                #   If both key and certificate are stored in the same file, only the
                #   SSLCertificateFile directive is needed.
                SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
                SSLCertificateKeyFile   /etc/ssl/private/ssl-cert-snakeoil.key
         
                #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
                <FilesMatch "\.(?:cgi|shtml|phtml|php)$">
                        SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                        SSLOptions +StdEnvVars
                </Directory>
        ServerName tagging.korpus.cz
        </VirtualHost>
      • Uděláme symlink ze ../sites-enabled/
      • Do /etc/apache2/apache2.conf přidáme řádky
        # Added after enabling SSL
        #
        ServerName tagging.korpus.cz
  • Restartujeme apache
    service apache2 restart

MySQL

Čerpáno z Install and configure a MySQL server

  • Instalujeme mysql-server
    apt-get install mysql-server
  • Zkontrolujeme, jestli běží
    service mysql status
  • Zkontrolujeme síťový status (ať je to, co chce)
    ss -tap | grep mysql
    LISTEN 0      151                 127.0.0.1:mysql                0.0.0.0:*     users:(("mysqld",pid=13422,fd=23))
    LISTEN 0      70                  127.0.0.1:33060                0.0.0.0:*     users:(("mysqld",pid=13422,fd=21))
  • Přidání uživatele s heslem (root heslo nepotřebuje, ale nikdo se nemůže přihlásit jako root):
    mysql> CREATE USER 'skoumal'@'localhost' IDENTIFIED BY 'Z23...';
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> GRANT ALL ON *.* TO 'skoumal'@'localhost' WITH GRANT OPTION;
    Query OK, 0 rows affected (0.02 sec)

    obdobně pro korpus.cz:

    mysql>  CREATE USER 'skoumal'@'%.korpus.cz' IDENTIFIED BY 'Z23...';
    Query OK, 0 rows affected (0.03 sec)
    
    mysql> GRANT ALL ON *.* TO 'skoumal'@'%.korpus.cz' WITH GRANT OPTION;
    Query OK, 0 rows affected (0.03 sec)

    i když to asi není vůbec třeba.

PHP

Instalujeme PHP

apt install php

Zprovoznění pod Apachem

  • Funguje to samo (html má přednost před php).
  • Uživatelské adresáře
    a2enmod userdir
    systemctl restart apache2
  • Samo nefunguje php v uživatelských adresářích. V souboru mods-enabled/php8.3.conf je třeba zakomentovat
    <IfModule mod_userdir.c>                                                                                                                                                                                       
        <Directory /home/*/public_html>                                                                                                                                                                            
            php_admin_flag engine Off                                                                                                                                                                              
        </Directory>                                                                                                                                                                                               
    </IfModule>

phpBB3

  • Stáhne se nejnovější verze z https://www.phpbb.com/downloads/ a případně i jazykový balíček
  • Zip se rozbalí do /var/www/html - vznikne adresář phpBB3 a případně se přidá i další jazyk
  • V záložce INSTALOVAT se provede kontrola požadavků. V případě, že něco chybí, musí se doinstalovat:
    • Podpora MySQL:
      apt install php-mysql php-curl
    • mbstring: V /etc/php/8.3/[apache2|cli]/php.ini odkomentovat
      extension=mbstring
      extension=mysqli
      extension=zip
    • Podpora XML/DOM:
      apt-get install php-xml
    • (Možná restartovat apache2)
  • Nastavení administrace a databáze:
    • admin:Z23…
    • FFUK
    • MySQL s MySQLi
    • localhost
    • admin
    • Z23…
    • phpbb3
    • phpbb_
    • Cookie secure:: yes
    • Force server URL settings: no
    • Server protocol: https://
    • Domain name: tagging… Přejmenovat!!!
    • Server port: 443
    • Script path: /phpBB3
    • SMTP server address: smtp.korpus.cz
    • SMTP user name: skoumal
  • Při přenosu staré databáze na nové místo postupujeme podle Transferring Your Board to a New Host or Domain
  • Po přenosu jsou platná tato jména:
    • admin:Vel…
    • skoumal:10…
  • Po přejmenování stroje se musí přepsat config.php. (V config.php je localhost.)

dokuwiki

  • Postupujeme podle https://www.dokuwiki.org/install (mírně zastaralý)
  • Požadavky jsou (snad) splněny
  • Vše se rozbalí pod /var/www/html/
  • V nastavení apache nesmí být čitelné adresáře a musí být povoleno .htaccess:
    <Directory /var/www/>
            Options -Indexes +FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>
  • V hlavním adresáři dokuwiki se použije .htaccess.dist
  • Uděláme si farmu:
    • Instalujeme plugin Farmer Plugin
    • V Apachi musíme povolit mod_rewrite
    • Založíme farmu ../Farm a zvířátko frap
    • Věci pro ÚTKL necháme pod dokuwiki
    • Pluginy:
      • Anchor
      • comment
      • farmer
      • hidden
      • jplayer
      • sectiontoggle
      • smtp: smtp.korpus.cz:25 (nic dalšího není potřeba)
      • Wrap
  • Přeneseme data z utkl.ff.cuni.cz:
    • utkl
    • Všechno ostatní, co bylo “nahoře” zkopírujeme pod utkl (a pak musíme opravit cesty)
    • wiki:user:skoumal
    • media

TEITOK

  • Naklonujeme TEITOK z gitlabu:
    git clone git@gitlab.com:maartenes/TEITOK.git
  • Zkopírujeme všechno, co je ve /var/www/html/teitok
  • Nainstalujeme Smarty:
  • Nainstalujeme Corpus WorkBench https://cwb.sourceforge.io/:
  • Zkompilujeme programy v /usr/local/TEITOK/src
    sudo g++ -std=c++11 -o /usr/local/bin/neotagxml neotagxml.cpp pugixml.cpp functions-c11.cpp
    sudo g++ -std=c++11 -o /usr/local/bin/neotagtrain neotagtrain.cpp pugixml.cpp functions-c11.cpp
    sudo g++ -std=c++11 -o /usr/local/bin/tt-xpath tt-xpath.cpp pugixml.cpp functions-c11.cpp
    sudo g++ -std=c++11 -o /usr/local/bin/tt-cwb-encode tt-cwb-encode.cpp pugixml.cpp functions-c11.cpp
    sudo g++ -std=c++11 -o /usr/local/bin/tt-cwb-xidx tt-cwb-xidx.cpp pugixml.cpp functions-c11.cpp
    sudo g++ -std=c++11 -o /usr/local/bin/tt-cqp tt-cqp.cpp pugixml.cpp functions-c11.cpp

    (čas od času zkontrolujeme, jestli při updatu nepřišel nový zdroják)

  • Zkopírujeme /usr/local/TEITOK/projects/check do /var/www/html/teitok a otevřeme ho v prohlížeči. Řekne nám, co ještě chybí.
  • Nastavíme automatické updaty (pod uživatelem, který instaloval program z gitu)
    crontab -l
    30 05 * * * cd /usr/local/TEITOK && git pull

Povolení rc.local

Protože je jakobson virtuál, musí se některé věci dělat zvenčí, tzn. musí je udělat Pavel. Něco se dá ale pořídit pomocí /etc/rc.local, což není adresář, ale jeden skript:

  • Vytvoříme skript /etc/rc.local:
    #!/usr/bin/bash
     
    mount -t tmpfs -o size=100G tmpfs /mnt/ramdisk
    mkdir /mnt/ramdisk/tmp
    chmod go+w /mnt/ramdisk/tmp
     
    # last line must be exit 0 
    exit 0

    a uděláme ho spustitelný.

  • Zjistíme, jestli je povolený:
    sudo systemctl is-enabled rc-local.service
    sudo systemctl status rc-local.service
  • Pokud ne, povolíme ho:
    sudo systemctl enable rc-local.service
    sudo systemctl start rc-local.service

    a znovu zkontrolujeme status

    sudo systemctl status rc-local.service

QR Code
QR Code utkl:admin:ubuntu-24-jakobson (generated for current page)