Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Témata - Michal Švarc

Stran: [1] 2
1
Server / Dvě instalace php-imagick ze zdroje
« kdy: 14. 06. 2024, 16:53:54 »
Nedávno jsem upgradoval PHP na části serveru.
Mám dvě verze php které jedou zároveň php8.1, php8.3 a asi i díky tomu také dvě verze phpize: phpize8.1, phpize8.3
Pro instalaci imagicku jsem použil lehce upravený postup z Githubu:
Kód: [Vybrat]
cd /usr/share
git clone https://github.com/Imagick/imagick
mv imagick php-imagick8.1
git clone https://github.com/Imagick/imagick
mv imagick php-imagick8.3
cd php-imagick8.1
phpize8.1 && ./configure
make
make install
cd ../php-imagick8.3
phpize8.3 && ./configure
make
make install

Postup se zdá být ok, do chvíle kdy make install vypíše
Kód: [Vybrat]
Installing shared extensions:     /usr/lib/php/20230831/
Installing header files:          /usr/include/php/20230831/

Vypsal jsem si co to přesně dělá
Kód: [Vybrat]
make install --dry-run
/bin/bash /usr/share/php-imagick8.3/libtool --tag=CC --mode=install cp ./imagick.la /usr/share/php-imagick8.3/modules
test -d modules && \
/usr/share/php-imagick8.3/build/shtool mkdir -p /usr/lib/php/20230831
echo "Installing shared extensions:     /usr/lib/php/20230831/"
rm -f modules/*.la >/dev/null 2>&1
/usr/share/php-imagick8.3/build/shtool install -c modules/* /usr/lib/php/20230831
if test "ext/imagick/php_imagick_shared.h"; then \
for i in `echo ext/imagick/php_imagick_shared.h`; do \
i=`/usr/share/php-imagick8.3/build/shtool path -d $i`; \
paths="$paths /usr/include/php/20230831/$i"; \
done; \
/usr/share/php-imagick8.3/build/shtool mkdir -p $paths && \
echo "Installing header files:          /usr/include/php/20230831/" && \
for i in `echo ext/imagick/php_imagick_shared.h`; do \
if test "imagick"; then \
src=`echo $i | /usr/bin/sed -e "s#ext/imagick/##g"`; \
else \
src=$i; \
fi; \
if test -f "/usr/share/php-imagick8.3/$src"; then \
/usr/share/php-imagick8.3/build/shtool install -c -m 644 /usr/share/php-imagick8.3/$src /usr/include/php/20230831/$i; \
elif test -f "/usr/share/php-imagick8.3/$src"; then \
/usr/share/php-imagick8.3/build/shtool install -c -m 644 /usr/share/php-imagick8.3/$src /usr/include/php/20230831/$i; \
else \
(cd /usr/share/php-imagick8.3/$src && /usr/share/php-imagick8.3/build/shtool install -c -m 644 *.h /usr/include/php/20230831/$i; \
cd /usr/share/php-imagick8.3/$src && /usr/share/php-imagick8.3/build/shtool install -c -m 644 *.h /usr/include/php/20230831/$i) 2>/dev/null || true; \
fi \
done; \
fi

V této situaci by mne zajímalo pár věcí:
1) Nejsem si tak úplně jistý, jestli mohu použít více příkazů `make instal za sebou` - to co mi dělá `make instal` jsem si uvědomil až po spuštění na tom druhém adresáři a tahle otázka směřuje k tomu, zda je lepší oba adresáře smazat a zkusit to celé s drobnými úpravami znovu, nebo mohu na tom co už mám znovu spustit `make install` a udělá to to samé
2) Koukal jsem co je v adresáři `/usr/lib/php`, kam se 'instaluje' imagick, a jsou tam mimo jiné adresáře 8.1, 8.3.
Myslíte, že by bylo v pořádku tu nainstalovanou cestu vylepšit tímto adresářem?
Kód: [Vybrat]
cd /usr/lib/php/
mv 20230831 8.1/20230831
to samé by pak třeba šlo udělat i v adresáři
`/usr/include/php/`, kde takové adresáře zatím nejsou

2
Server / Jak přeinstalovat ImageMagick Easy Install?
« kdy: 23. 04. 2024, 10:32:23 »
Kód: [Vybrat]
https://github.com/SoftCreatR/imeiStačí smazat adresář se starou verzí, případně script z cronu a nainstalovat novou?

3
Server / Zprovoznění podpory image/avif v PHP 8.1
« kdy: 23. 04. 2024, 06:02:28 »
Linux: Ubuntu 20.04

Nedávno, před pár týdny, jsem měl podobný problém, imagemagick prostě přestal převádět obrázky na avif. Tehdy jsem zjistil, že se nějak ztratila knihovna libavif, a nakonec jsem zkusil nainstalovat avif podporu pomocí https://github.com/AOMediaCodec/libavif , respektive https://github.com/AOMediaCodec/libavif#build-everything-from-scratch verzi, protože v balíčkovacím systému nic jako libavif již není a přestože jsem nepřišel na to proč, pár týdnů to fungovalo. Teď už zas ne, takže hledám, co by se dalo dělat.

Pro začátek, je potřeba mít na to knihovnu php8.1-imagick, nebo to jde i bez ní?

php8.1-imagick má u nás na serveru závislost na imagemagick-6-common libmagickcore-6.q16-6 libmagickwand-6.q16-6
a s tím ni aktuálně avif nefunguje

při php8.1-imagick nainstalovaném, jsem našel soubor /etc/php/8.1/fpm/conf.d/20-imagick.ini kde se dá změnit cesta, pomocí
Kód: [Vybrat]
extension=/usr/local/lib/ImageMagick-7.1.1/modules-Q16HDRI/coders/magick.so a adresář
/var/lib/php/modules/8.1/fpm/enabled_by_maint/ s prázdným souborem imagick

po odinstalaci zmíněných imagemagick-6* a tím i php8.1-imagick, které se jich drží jako klíště, byl soubor /etc/php/8.1/fpm/conf.d/20-imagick.ini smazán a prázdný soubor imagick se přesunul do /var/lib/php/modules/8.1/fpm/disabled_by_maint/

tak jsem si ten soubor vytvořil znovu a pro jistotu přesunul zpět i ten prázdný soubor

nevím, ale doufám, že by mi to mohlo v php8.1fpm pomoci používat tu verzi z imei, v phpinfo jsem nicméně nezaregistroval žádnou změnu

4
Používám převážně webový prohlížeč Librewolf, a když něco nejde (jako třeba přidávání příspěvků sem do fóra) zkusím nejdříve Firefox.

Librewolf 123.0-1 mi z nějakého důvodu zobrazuje doménové jméno v adresním řádku https://はじめよう.みんな/ jako https://xn--p8j9a0d9c9a.xn--q9jyb4c/
Firefox 123.0-1 a Opera One 107.0.5045.21 to zobrazují správně.

Zajímalo by mě jakým způsobem vlastně tohle zobrazování funguje a jelikož to librewolf evidentně blokuje, skrývá se v tom nějaké bezpečnostní riziko?

Zkoušel jsem to zobrazit i ve starších webových prohlížečích, a zdá se mi že ty toto zobrazování nepodporují (ale zase, zkoušel jsem jen eolie a midori)

5
Software / Je šance na zápis ze tří vstupů zároveň?
« kdy: 07. 11. 2023, 02:28:29 »
Je jedno zda do souboru, nebo na výstup.

Rád bych výpisy těchto tří příkazů
Kód: [Vybrat]
apt search php8.3
apt search php8.2
apt search php8.1

setřídil tak, že se nevypíše první příkaz, druhý příkaz a třetí příkaz za sebou, ale vypíše se první řádek prvního, první řádek druhého, první řádek třetího, druhý řádek prvního, atd.

asi by šlo ty výstupy načíst ve scriptu do polí o číslech řádků a pak to vypsat cyklem, ale zajímalo by mě, jestli neexistuje lepší/snažší přístup

navíc, úplně nejlepší by bylo, seřadit to podle toho, co je za těmi šesti znaky ve výpisu (php8.x)

6
Vývoj / Dokáže Bash spustit příkaz z proměnné?
« kdy: 10. 09. 2023, 12:41:50 »
Kód: [Vybrat]
case "${PrvniVstup}" in  # výraz '"-"[Ss]*)' funguje jak pro '-s' tak pro '-S ale i pro -SSSSSSSSSSsssss', a bez hvězdičky nefunguje vůbec  :-\
      "-ps1")
        prikaz1="ps -C vidsaveV10c -o pid=,args="
        prikaz2="ps -Al U michal | grep yt-dlp"
        echo -en " ${barvaTextBila}${prikaz1}${barvaTextZrusit}"
        ps=$(ps -Al U michal | grep vidsave)
        ps+="\n\n"
        echo -en " ${barvaTextBila}${prikaz2}${barvaTextZrusit}"
        ps+=$(ps -Al U michal | grep yt-dlp)
        ps=$( "$prikaz2" )
        echo -en " ${barvaTextZluta}${ps}${barvaTextZrusit}"
        ;;
      "-ps2")
        prikaz="ps -C yt-dlp -o pid=,ppid=,cmd --sort=time"
        echo -en " ${barvaTextBila}${prikaz}${barvaTextZrusit}"
        ps=$(ps -C yt-dlp -o pid=,ppid=,cmd --sort=time)
        echo -en " ${barvaTextZluta}${ps}${barvaTextZrusit}"
        ;;
      "-ps3")
        prikaz1="ps -C vidsaveV10c -o pid=,args="
        echo -en " ${barvaTextBila}${prikaz1}${barvaTextZrusit}"
        ps=$(ps -C vidsaveV10c -o pid=,args=)
        ps+="\n\n"
        ps+=$(ps -C yt-dlp -o pid=,args=)
        prikaz2="ps -C yt-dlp -o pid=,args="
        echo -en " ${barvaTextBila}${prikaz1}${barvaTextZrusit}"
        echo -en " ${barvaTextZluta}${ps}${barvaTextZrusit}"
        ;;
esac

Zajímalo by mě, jestli se za stejné funkčnosti mohu zbavit jistého opakování, tedy jestli by nešlo něco jako
Kód: [Vybrat]
"-ps2")
        prikaz="ps -C yt-dlp -o pid=,ppid=,cmd --sort=time"
        echo -en " ${barvaTextBila}${prikaz}${barvaTextZrusit}"
        ps=$( "${prikaz}" ) ##!! tohle zrovna nejde škoda
        echo -en " ${barvaTextZluta}${ps}${barvaTextZrusit}"
        ;;

a také by mě zajímalo, zda by takto nějak šel spustit příkaz, od kterého nepotřebuji nic uložit do další proměnné, tedy místo
Kód: [Vybrat]
ps -C yt-dlp -o pid=,ppid=,cmd --sort=time
# to samé ale uložené v proměnné, jako
prikaz="ps -C yt-dlp -o pid=,ppid=,cmd --sort=time"
# později vykonat krz obsah z ${prikaz}

7
Odkladiště / Nelze vytvořit adresář s názvem con
« kdy: 04. 03. 2023, 20:30:19 »
Snažím se vytvořit adresář s názvem con.

mkdir: adresář „/run/media/michal/Elements/stáhnout/con“ nelze vytvořit: Nepřípustný argument

thunar: Nepodařilo se vytvořit adresář "con". Neplatný název souboru

soubory (z gnome3): Chyba při vytváření složky con. Při vytváření složky v /run/media/michal/Elements/stáhnout došlo k chybě. Neplatný název souboru.

Adresář s názvem co nebo conn bez problému projde... To je con nějaké klíčové slovo či co?

8
Server / MariaDB: Access denied for user root
« kdy: 07. 12. 2022, 16:25:11 »
log databáze mariadb:
Kód: [Vybrat]
2022-12-07 14:42:56 0 [Note] InnoDB: Using Linux native AIO
2022-12-07 14:42:56 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2022-12-07 14:42:56 0 [Note] InnoDB: Uses event mutexes
2022-12-07 14:42:56 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2022-12-07 14:42:56 0 [Note] InnoDB: Number of pools: 1
2022-12-07 14:42:56 0 [Note] InnoDB: Using SSE2 crc32 instructions
2022-12-07 14:42:56 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2022-12-07 14:42:56 0 [Note] InnoDB: Completed initialization of buffer pool
2022-12-07 14:42:56 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2022-12-07 14:42:57 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
2022-12-07 14:42:57 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2022-12-07 14:42:57 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2022-12-07 14:42:57 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2022-12-07 14:42:57 0 [Note] InnoDB: Waiting for purge to start
2022-12-07 14:42:57 0 [Note] InnoDB: 10.3.37 started; log sequence number 1663097902255; transaction id 75492375
2022-12-07 14:42:57 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
2022-12-07 14:42:57 0 [Note] Plugin 'FEEDBACK' is disabled.
2022-12-07 14:42:57 0 [Note] Server socket created on IP: '127.0.0.1'.
2022-12-07 14:42:57 0 [Note] InnoDB: Buffer pool(s) load completed at 221207 14:42:57
2022-12-07 14:42:57 0 [Note] Reading of all Master_info entries succeeded
2022-12-07 14:42:57 0 [Note] Added new Master_info '' to hash table
2022-12-07 14:42:57 0 [Note] /usr/sbin/mysqld: ready for connections.
Version: '10.3.37-MariaDB-0ubuntu0.20.04.1'  socket: '/run/mysqld/mysqld.sock'  port: 3306  Ubuntu 20.04
2022-12-07 14:42:57 8 [Warning] Access denied for user 'root'@'localhost' to database 'mysql'

Na internetu jsem našel spoustu návodů jak se téhly chyby zbavit. Potíž je že všechny spočívají v přidání práv rootovi.

Mě by spíše zajímalo, kde bych ten příkaz měl hledat, abych ho mohl odmazat/zneaktivnit, protože databáze bez ohledu na to že na něj root nedostane odpověd (prostě k té db nená přístup), šlape.

9
Software / Připojení čtečky nebo telefonu k linuxu
« kdy: 30. 11. 2022, 17:22:06 »
Jakým program je potřeba mít, případně s jakým nastavením, aby se automaticky připojoval telefon či čtečka k počítači (resp. aby je ten viděl jako úložný prostor)?

10
Vývoj / Jak převést rouru do bash scriptu?
« kdy: 22. 03. 2022, 06:59:57 »
Jednoduchá roura jako je třeba
Kód: [Vybrat]
pwd | ls se dá snadno převést na
Kód: [Vybrat]
SOUBORY=$(ls $(pwd)) (nalezeno zde)
když jsem ale zkusil převést
Kód: [Vybrat]
awk '($(NF-1) = /Ban/){print $NF}' /var/log/fail2ban.log | sort | uniq | tr -s '\n' ','na
Kód: [Vybrat]
failbanlog=$(tr -s '\n' ',' $(uniq $(sort $( awk '($(NF-1) = /Ban/){print $NF}' /var/log/fail2ban.log))))
dostanu tak akorát
Citace
sort: cannot read: 102.164.61.218: No such file or directory

log obsahuje něco jako
Kód: [Vybrat]
2022-03-22 06:37:55,991 fail2ban.actions        [90770]: NOTICE  [sshd] Ban 194.163.129.195
2022-03-22 06:39:20,425 fail2ban.filter         [90770]: INFO    [sshd] Found 176.111.173.242 - 2022-03-22 06:39:20
2022-03-22 06:42:10,058 fail2ban.filter         [90770]: INFO    [sshd] Found 92.255.85.135 - 2022-03-22 06:42:10
2022-03-22 06:48:10,435 fail2ban.filter         [90770]: INFO    [sshd] Found 61.177.172.175 - 2022-03-22 06:48:10
2022-03-22 06:49:47,895 fail2ban.filter         [90770]: INFO    [sshd] Found 179.43.187.173 - 2022-03-22 06:49:47
2022-03-22 06:52:11,570 fail2ban.filter         [90770]: INFO    [sshd] Found 112.85.42.124 - 2022-03-22 06:52:11
2022-03-22 06:52:15,043 fail2ban.filter         [90770]: INFO    [sshd] Found 112.85.42.124 - 2022-03-22 06:52:13
2022-03-22 06:52:17,072 fail2ban.filter         [90770]: INFO    [sshd] Found 112.85.42.124 - 2022-03-22 06:52:17
2022-03-22 06:52:17,131 fail2ban.actions        [90770]: NOTICE  [sshd] Ban 112.85.42.124

11
Vývoj / Bash - převod proměnné do pole
« kdy: 23. 01. 2022, 20:25:22 »
vyduckoval jsem si příkaz a celý šťastný ho přidal do scriptu
Kód: [Vybrat]
vstupsoub='stáhnout_čína.txt'
vstupsoubB=${vstupsoub:0:(-4)}
readarray -d _ -t vstupSouborAr<<<"$vstupsoubB"
 for word in "${vstupSouborAr[@]}"; do
  echo -e "'${word}'"
 done
výsledkem je toto:
'stáhnout'
'čína
'
co by mne zajímalo je, jak se do druhé (nebo možná poslední?) položky pole dostane ten nový řádek (před převodem - řádek s readarray - je to ok)
případně alespoň nějaký tip, kde bych mohl hledat, jak to má vlastně fungovat - manuálovou stránku to nemá a v manuálu bashe se o tom nepíše (nebo jsem slepej ;) )

12
Vývoj / Práce s proměnnými v Bashi
« kdy: 27. 10. 2021, 02:28:21 »
dělám si bashshellový scriptík ke spouštění programu a setkal jsem se s pár věcmi které jsem zatím buď nepochopil, nebo mi alespoň dlouho trvalo, než jsem přišel na to že v tom je chyba

mohl by mě někdo nakopnout, proč to tak je? předem děkuji.

1)
Kód: [Vybrat]
if [ ${adresare[$vyberTyp]} = 'orig' ] || [ ${adresare[$vyberTyp]} = 'veliké' ] # nefunguje dle očekávání s "orig" (uvozovky)
2)
ve ${vstupsoub} je funkční cesta k texťáku

funkční kód:
Kód: [Vybrat]
youtube-dl -ico "${vystupadr}/%(title)s [%(resolution)s] %(id)s.%(ext)s" -a "${vstupsoub}" --all-subs
nefunkční kód:
Kód: [Vybrat]
prikazZaklad="-ic";
prikazVystup="-o \"${vystupadr}/%(title)s [%(resolution)s]_%(id)s.%(ext)s\"";
prikazVstup="-a \"${vstupsoub}\"";

echo -e "\033[;36myoutube-dl\033[0m $prikazZaklad $prikazVystup $prikazVstup --all-subs";
youtube-dl $prikazZaklad $prikazVystup $prikazVstup --all-subs
pro začátek prý nelze načíst soubor z $prikazVstup, ale i poté se zdá že se tomu nelíbí ani ostatní hodnoty, přestože to co se vypíše z echa po ctrl-c ctrl-v normálně funguje

13
Vývoj / Pole a foreach v PHP
« kdy: 06. 11. 2020, 04:58:54 »
Kód: [Vybrat]
<?php
$title 
"Oříšek v PHP";

$vstup "1,2,3,4,5,6,7,8,9";
$vstup2 "1,3,4,5,7,8";

$vstupA explode(','$vstup);

foreach (
$vstupA as &$val)
{
echo "$val * $val - $val = ".($val $val $val)."<br>";
}
$vstupB explode(','$vstup2);

echo 
"<strong>\$vstupA:<br>".str_replace(PHP_EOL"<br>"print_r($vstupA,true))."</strong>";
echo 
"<strong>\$vstupB:<br>".str_replace(PHP_EOL"<br>"print_r($vstupB,true))."</strong>";

$porovnani array_diff((array)$vstupA,(array)$vstupB);
echo 
"<strong>\$porovnani po array_diff((array)\$vstupA,(array)\$vstupB):<br>".str_replace(PHP_EOL"<br>"print_r($porovnani,true))."</strong>";

foreach ((array)
$porovnani as $key => $val)
{
echo "<strong>\$key($key) => \$val($val)</strong><br>";
}
?>

druhý foreach vypíše (pro mě) překvapivé hodnoty a mne by zajímal co možná nejpodrobnější důvod, proč se takto chová

14
Server / Jak nastavit DNS záznamy?
« kdy: 20. 07. 2020, 04:01:45 »
Zařídil jsem si VPS server, koupil doménu.

1) Pokud má člověk jen jednu IP, chápu správně že stačí jediný A záznam směřující na IP VPSky?

2) Jak má vypadat AAAA záznam? V nastavení VPS (u hukotu), mám IPv6 prefix a IPv6 gateway. Pokud to srovnám (od pohledu) s původním přednastaveným záznamem, blíží se tomu spíše IPv6 gateway, nicméně netuším, který z nich použít. Zatím jsem zkusil ten IPv6 prefix. I kdyby to však byla správná volba, trochu mě děsí, že jak IPv6 prefix tak IPv6 gateway, obsahují téměř na konci lomítko / (:0/121 prefix a ::1/48 gateway), což ta původní přednastavená neměla.

3) Pokud všechny poddomény (včetně www) směřují na doménu druhého řádu, je nebo není třeba mít záznamy CNAME pro * i www ?

4) Jak velké nastavovat TTL? Nechápu podle čeho volit správný časový úsek.

15
Software / Problém s mazáním souborů z externího disku
« kdy: 04. 12. 2019, 03:39:39 »
Při zapisování souborů na externí disk se mi zasekl thunar (kterým jsem to kopíroval) a skončil jsem se složkou, jejíž soubory se mi nedaří ani přejmenovat, ani smazat. (výsledek ls a rm na obrázku)
chmod, chgrp a chown se na pohled tváří, že něco změnily, ale po ověření krz ls zůstává vše beze změny. Nějaký nápad, co s tím mohu zkusit udělat?

Na disku je více složek, ale jen tahle jediná je KO.

Stran: [1] 2