SSH i FTP - Keep alive Kategoria: Linux | Autor: Bartłomiej Gałęzia

U niektórych dostawców internetu połączenia FTP i SSH są zrywane po kilku minutach bezczynności.

Można to naprawić poprzez:

1. SSH

cd ~
vim .ssh/config
Host *
ServerAliveInterval 180

2. FTP - Filezilla

Edit -> Settings -> Connection -> FTP

[x] Send FTP keep-alive commands

Thunderbird - Wyłączenie grupowania po wątkach Kategoria: Linux | Autor: Bartłomiej Gałęzia

Edit -> Settings -> Appearance -> Sorting and Threading -> Default Threading -> Unthreaded

Źródło: ChatPGT

Thunderbird 140 (English UI) da się to wyklikać globalnie w jednym miejscu. Zrób tak:

Wyłączanie wątków globalnie (dla wszystkich folderów)

  1. Otwórz Thunderbirda i kliknij ☰ (Application menu) w prawym górnym rogu.

  2. Wejdź w SettingsAppearance.

  3. W sekcji Select default threading for new folders wybierz Unthreaded.

  4. Przewiń niżej do Select folders to apply new settings to i kliknij All existing folders → potwierdź.
    To ustawi „Unthreaded” jako domyślne i zastosuje to do wszystkich dotychczasowych folderów. Mozilla Support

(Opcjonalnie) Dla pojedynczego folderu „tu i teraz”

  1. Wejdź do konkretnego folderu (np. Inbox).

  2. Wciśnij Alt (pojawi się klasyczne menu) → ViewSort byUnthreaded.
    To działa tylko dla bieżącego folderu — globalne ustawienie z kroku wyżej załatwia całość. Mozilla Support

Jeśli chcesz, przy okazji w Appearance możesz też ustawić domyślne sortowanie (np. Default Sort field: Date i Descending) i również zastosować to do wszystkich folderów tym samym przyciskiem All existing folders.

Ubuntu 24 - Folder right-click New file Kategoria: Linux | Autor: Bartłomiej Gałęzia

Po otwarciu dowolnej folderu i kliknięciu prawym klawiszem myszy nie ma opcji "Nowy dokument".

cd vim ~/Templates

touch new_file.txt

Darmowe konto na bitbucket.org ma ograniczenie do 1GB:

Your workspace has exceeded the 1 GB limit and has been placed in read-only mode. Learn more about upgrading your plan and checking storage usage. — Learn more

Na stronie https://bitbucket.org/[nazwa_workspace]/workspace/repositories/ można sprawdzić które repo zajmuje najwięcej miejsca.

Aby usunąć duże pliki w wybranym repozytorium należy:

1. Wyszukać duże pliki w historii:

git rev-list --objects --all \
| git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| grep '^blob' \
| sort -k3 -n -r \
| head -20 \
| awk '{print $3/1024/1024 " MB\t" $4}'

Ten skrypt:
- przeszukuje całą historię (--all)
- pokazuje tylko bloby (czyli treść plików)
- sortuje według rozmiaru
- wyświetla 20 największych plików wraz z rozmiarem

2. Usunąć wybrany plik z historii

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch duzy_plik.zip" --prune-empty --tag-name-filter cat -- --all

3. Wyczyścić śmieci i zmniejszyć rozmiar repozytorium:

rm -rf .git/refs/original/
git reflog expire --expire=now --all
git gc --prune=now --aggressive

4. Wypchnąć zmiany do Bitbucket (UWAGA!!!: to nadpisuje historię):

git push --force --all
git push --force --tags

Uwaga!!!:
To usuwa plik z każdego commita w całym repo.
Jeśli ktoś inny korzysta z repozytorium, musi ponownie je sklonować, bo historia została zmieniona.
Lepiej zrobić backup repo przed tą operacją.

Źródło: https://chatgpt.com/

 

$db['default'] = array(
	'dsn'	=> '',
	'hostname' => 'firebird:dbname=C:\\path\\to\\databases\\db_name.FDB',
	'username' => 'SYSDBA',
	'password' => 'masterkey',
	'database' => 'db_name.FDB',
	'port' => 3050,
	'dbdriver' => 'pdo',
	'dbprefix' => '',
	'pconnect' => FALSE,
	'db_debug' => (ENVIRONMENT !== 'production'),
	'cache_on' => FALSE,
	'cachedir' => '',
	'char_set' => 'utf8',
	'dbcollat' => 'utf8_general_ci',
	'swap_pre' => '',
	'encrypt' => FALSE,
	'compress' => FALSE,
	'stricton' => FALSE,
	'failover' => array(),
	'save_queries' => TRUE
);

Imagick - Batch resize JPG do 50% Kategoria: Linux | Autor: Bartłomiej Gałęzia

for f in `find . -name "*.jpg"`; do convert $f -resize 50% $f; done

Źródło: https://stackoverflow.com/questions/10802606/how-to-batch-resize-images-in-ubuntu-recursively-within-the-terminal

Przy domyślnej konfiguracji emotikony zapisują się jako ???? w bazie danych.

Aby uzyskać poprawne kodowanie należy:

1. Zmienić kodowanie w bazie danych:

ALTER DATABASE baza_danych CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE moja_tabela CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2. Zmienić kodowanie w konfiguracji połączenia z bazą danych.

application/config/database.php
$db['default'] = array(
...
'char_set' => 'utf8mb4',
'dbcollat' => 'utf8mb4_unicode_ci',

...
);

Mikrotik - RouterOS 7.17 - Missing wifi Kategoria: MikroTik | Tagi: mikrotik, wifi | Autor: Bartłomiej Gałęzia

Po aktualizacji Router OS brakuje interfejsu wifi.

Aby go uruchomić należy doinstalować paczkę:

wireless-7.17-mipsbe.npk - w moim przypadku

Znajduje się ona w Extra packages:

https://mikrotik.com/download

https://download.mikrotik.com/routeros/7.17/all_packages-mipsbe-7.17.zip

Zobacz całość

CyberFolks - Error 403 Kategoria: Hosting | Tagi: 403, cyberfolks | Autor: Bartłomiej Gałęzia

Jeśli na którejś stronie hostowanej w CyberFolks.pl wyskoczy Error 403 to jest to kwestia uprawnień do plików.

Wystarczy wykonać w katalogu z plikami strony polecenia:

find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;

Usuwanie pierwszej linii z długiego pliki Kategoria: Linux | Tagi: mysqldump, mysql, tail | Autor: Bartłomiej Gałęzia

tail -n +2 source_file.txt > destination_file.txt

Przydatne przy odtwarzaniu bazy danych gdzie mysqldump dodaje na początku zabezpieczenie:

/*!999999\- enable the sandbox mode */

Źródło: https://stackoverflow.com/questions/339483/how-can-i-remove-the-first-line-of-a-text-file-using-bash-sed-script

Zenbox - Zamawianie konta o określonej nazwie Kategoria: Hosting | Tagi: zenbox.pl | Autor: Bartłomiej Gałęzia

Trzeba do nich napisać na kontakt@zenbox.pl przez zamówieniem konta:

W dniu 18.09.2024 o 12:53, Konrad Matus | Zenbox.pl pisze:
> przed rejestracją hostingu należy do nas napisać, że chce Pan własną nazwę użytkownika hostingu. Następnie po odpowiedzi od mnicha który podejmie zgłoszenie będzie mógł Pan przejść do zamawiania usługi. Osoba, która będzie odpowiadała za akceptację zamówień zostanie powiadomiona o tej sytuacji.

Imagick->readImage error Kategoria: PHP | Autor: Bartłomiej Gałęzia

Poniższy skrypt:

$imagick = new Imagick();
$imagick->setResolution(150, 150);
$imagick->readImage($source_file . '[0]');
$imagick->writeImages($result_file, false);

Wywala błąd:

Fatal error: Uncaught ImagickException: FailedToExecuteCommand `'gs' -sstdout=%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 '-sDEVICE=pngalpha' -dTextAlphaBits=4 -dGraphicsAlphaBits=4 '-r150x150' -dPrinted=false -dFirstPage=1 -dLastPage=1 '-sOutputFile=/tmp/magick-pyOYVsKi7i7SAXNMW5EtwPaRASHaOYu5%d' '-f/tmp/magick-cz6OETDf_gRuXDy_HbCTsBN12F0rxl6A' '-f/tmp/magick-i9pxxZG7729nyd99OG23sqQCQHf9iMH6'' (32512) @ error/ghostscript-private.h/ExecuteGhostscriptCommand/74

Rozwiązanie:

doinstalować ghostscript

 

Źródło: https://stackoverflow.com/questions/24298815/php-uncaught-exception-imagickexception-with-message-failedtoexecutecommand

Zenbox zgłoszenie [#DOPK-2931-RYJH] 

CI3 - Where (OR AND) Kategoria: Codeigniter | Autor: Bartłomiej Gałęzia

$this->db->group_start();
$this->db->where('contracts_id_client_purchaser', $id_client);
$this->db->or_where('contracts_id_client_supplier', $id_client);
$this->db->group_end();
$this->db->where('contracts_active', 1);
$this->db->order_by('id_contracts', 'desc');
$query = $this->db->get('contracts');
php spark make:migration Clients
vim app/Database/2024-01-01-000000_Clients.php
php spark migrate
php spark make:model Clients_model
php spark make:controller Clients

Źródło: https://medium.com/@choirulihwan/how-to-create-crud-operation-with-codeigniter-4-and-react-js-fb54d28c923c

Laravel 10 - CRUD example Kategoria: Laravel | Autor: Bartłomiej Gałęzia

1. Stwórz model

php artisan make:model Company -m

wynik

INFO Model [app/Models/Company.php] created successfully.
INFO Migration [database/migrations/2024_04_21_085712_create_companies_table.php] created successfully.

Zobacz całość

Od razu po ściągnięciu nowego Laravela nie da się uruchomić strony bo system nie znajduje tabeli sessions w bazie.

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'sessions' doesn't exist

Można:

1. Wykonać migracje i utworzyć tabelę z sesjami

2. Wyłączyć zapisywanie sesji w bazie:

vim .env
SESSION_DRIVER=database -> SESSION_DRIVER=file

Źródło: https://arjunamrutiya.medium.com/a-comprehensive-guide-to-laravel-sessions-understanding-and-utilizing-session-methods-a454ae9c55e4

Problem:

PHP Warning: Cannot load module "http" because required module "raphf" is not loaded in Unknown on line 0

Rozwiązanie:

sudo apt install php-raphf

Źródło: https://askubuntu.com/questions/1386960/php-warning-cannot-load-module-http-because-required-module-raphf-is-not-lo

Podczas importu bazy z pliku:

mysql -u root -ppassword -h localhost database < database.sql

Wyskoczył błąd:

ERROR 1153 (08S01) at line 2494: Got a packet bigger than 'max_allowed_packet' bytes

Rozwiązanie:

mysql --max_allowed_packet=100M -u root -ppassword -h localhost database < database.sql

Źródło: https://stackoverflow.com/questions/93128/mysql-error-1153-got-a-packet-bigger-than-max-allowed-packet-bytes

Przy próbie utworzenia symlinku na zenbox.pl lub przy próbie sprawdzenia czy plik istnieje (file_exists($file_path)) otrzymuję takie błędy:

Warning: realpath(): open_basedir restriction in effect. 
File(/home/mojekonto/domains/mojadomena.pl/public_html/system) 
is not within the allowed path(s): 
(/home/mojekonto/domains/mojadomena.stronazen.pl:/tmp:/var/tmp:/home/mojekonto/.tmp:/home/mojekonto/.php:/usr/local/php:/opt/alt:/etc/pki) in 
/home/mojekonto/domains/mojadomena.pl/public_html/index.php
Severity: Warning --> file_exists(): open_basedir restriction in effect.
File(https://blog.napraw.to/my_files/files/notes/445/plik_pdf.pdf) 
is not within the allowed path(s): 
(/home/mojekonto/domains/mojadomena.pl:/tmp:/var/tmp:/home/mojekonto/.tmp:/home/mojekonto/.php:/usr/local/php:/opt/alt:/etc/pki) 
/home/mojekonto/domains/mojadomena.pl/public_html/application/views/admin/docs/last_file_preview_view.php 13

Sam nie mogę nic z tym zrobić. Trzeba to zgłosić do supportu zenbox.pl aby wyłączyli zabezpieczenie open_basedir.

Poniżej odpowiedź od nich:

"... powodem problemu zgodnie z komunikatem błędu jest włączone zabezpieczenie open_basedir w obu domenach - aby symlink mógł działać koniecznie jest jego wyłączenie..."

"Czy ja jestem w stanie to zrobić samodzielnie?"

"Niestety nie, to się wykonuje na poziomie administracji serwerem."