====== 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 [[https://www.server-world.info/en/note?os=Ubuntu_24.04&p=httpd&f=3|Apache2 : Configure SSL/TLS]]) anebo si vyrobíme self-signed certifikát (podle [[https://wiki.debian.org/Self-Signed_Certificate|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.cza odkomentujeme Redirect permanent "/" "https://jakobson.korpus.cz/"v ''/etc/apache2/sites-enabled/000-default.conf'' * Self-signed: * Instalujemeapt-get install apache2 openssl(nejspíš už je hotovo). * Můžeme přegenerovat vlastní certifikátmake-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'' 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 SSLOptions +StdEnvVars SSLOptions +StdEnvVars ServerName tagging.korpus.cz * 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 apacheservice apache2 restart ===== MySQL ===== Čerpáno z [[https://documentation.ubuntu.com/server/how-to/databases/install-mysql/|Install and configure a MySQL server]] * Instalujeme mysql-serverapt-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ářea2enmod userdir systemctl restart apache2 * Samo nefunguje ''php'' v uživatelských adresářích. V souboru ''mods-enabled/php8.3.conf'' je třeba zakomentovat php_admin_flag engine Off ===== 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 **[[https://www.phpbb.com/support/docs/en/3.3/kb/article/transferring-your-board-to-a-new-host-or-domain/|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'': Options -Indexes +FollowSymLinks AllowOverride All Require all granted * 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: * V ''/usr/local/TEITOK/vendor/'' rozbalíme soubor stažený z ''https://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) * Nainstalujemesudo 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 0a 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.servicea znovu zkontrolujeme status sudo systemctl status rc-local.service