Table of Contents
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 obsahovalServerName 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 nadefault-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ředphp
). - Uživatelské adresáře
a2enmod userdir systemctl restart apache2
- Samo nefunguje
php
v uživatelských adresářích. V souborumods-enabled/php8.3.conf
je třeba zakomentovat<IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_flag engine Off </Directory> </IfModule>
phpBB3
- Postupuje se podle návodu na https://www.phpbb.com/community/docs/INSTALL.html
- 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 prohlížeči se otevře stránka https://tagging.korpus.cz/phpBB3/install/app.php/install
- 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
odkomentovatextension=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. (Vconfig.php
config.php
jelocalhost
.)
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ířátkofrap
- 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:
- V
/usr/local/TEITOK/vendor/
rozbalíme soubor stažený zhttps://github.com/smarty-php/smarty/archive/master.zip
- Ve
/var/www/html/teitok
přidáme do.htaccess
tento řádekSetEnv SMARTY_DIR /usr/local/TEITOK/vendor/smarty/smarty/libs/
- Nainstalujeme Corpus WorkBench
https://cwb.sourceforge.io/
:- Stáhneme .deb package z
https://sourceforge.net/projects/cwb/files/cwb/cwb-3.5/deb/
(pozor na pozdější verze) - Nainstalujeme
sudo dpkg -i NAME_OF_FILE.deb
- 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