Blog

  • PHP driver a Microsoft SQL Server-hez

    Van egy projektünk, ahol egy Microsoft SQL Server-hez kell csatlakozni, mert az ERP rendszer amihez kapcsolódunk az ebben tárolja az adatait. A projekt költöztetve lesz egy erősebb szerverre, így kénytelen voltam újra beállítani a PHP és ODBC drivereket, ami nem volt egyszerű, mert egyrészt elfelejtettem, másrészt több FPM verzió van fent, ami bonyolította a beállítást.

    Szóval aki erre adja a fejét, annak leegyszerűsítendő, írtam egy sorvezetőt.

    Ubuntu 22.04 a rendszer, először tegyük fel a függőségét:

    sudo apt-get install unixodbc-dev
    

    Majd jöhet a kiterjesztés telepítése

    sudo pecl -d php_suffix=8.2 install sqlsrv
    sudo pecl -d php_suffix=8.2 install pdo_sqlsrv
    printf "; priority=20\nextension=sqlsrv.so\n" > /etc/php/8.1/mods-available/sqlsrv.ini
    printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/8.1/mods-available/pdo_sqlsrv.ini
    sudo phpenmod -v 8.2 sqlsrv pdo_sqlsrv
    sudo systemctl restart php8.2-fpm
    

    Itt a php_suffix=8.2 csak akkor kell, ha több PHP verzió van a rendszeren. Ha ez megvan, akkor tudjuk ellenőrizni

    pecl list
    php8.2 -i | grep extension_dir
    

    Az ODBC driver valamivel egyszerűbb, mivel az alábbi linken lévő shell script tökéletesen elvégzi a dolgát!

  • Cristo rant

    Hogy lehet egy szolgáltatás lemondása után úgy lerontani a felhasználói élményt, hogy még véletlenül se akarj újra az előfizetőjük lenni? Hát így, ahogy a Cristo csinálja.

    A sztori kezdetben jól indult, a Cristo Cascot fizettem elő, amihez Cristo Pro előfizetés kell. Ennek feltétele, hogy a OBDII csatlakozón keresztül csatlakozó Beat nevű eszközt bepattintsd az autóba. Innentől az alkalmazás csinál útnyilvántartást, küld push üzenetet ha elmozdul az autó, jelzi hogy mikor állsz fizetős parkoló zónában, szóval csupa hasznos dolog, bár ezek nélkül nyilván lehet élni.

    Onnan kezdett rosszra fordulni a sztori, hogy pár hónappal az éves fordulóhoz képest vittem a kocsit a szokásos éves átvizsgálásra. Ilyenkor el kell távolítani az eszközt a kocsiból és lejelenteni az alkalmazásban, hogy szerviz miatt nem érhető el.

    Na itt az történt, hogy kicsit elhúzódott a leadás, illetve nem is vettem észre azonnal a push üzenetet. Mikor ránéztem a telefonomra már azt látom, hogy megszűnt a szerződés, csak az álló helyzetre érvényes a Casco. Na mondom ez de jó, hívom az ügyfélszolgálatot, persze segíteni nem tudnak, újra elölről az összes adattal, fotózással kössem újra.

    Megtörtént, majd rá egy hónapra jön az email, hogy felmondták a szerződésem. Semmi indoklás, semmi magyarázat. Nagy nehezen emailben jött egy válasz, hogy kivezetik a terméket.

    Na és akkor a legjobb a végén jött. Ahogy említettem a Pro előfizetés előfeltétele a Casconak, így a lejárat előtti nap mivel még használtuk este a kocsit, így gondoltam, majd a hosszú hétvége után lemondom. De nem ám így, éjfélkor pontban levonták a következő éves 17.000 Ft-ot. Na mondom semmi gond, kérek visszatérítést, minden normális szolgáltató ilyenkor azonnal visszautalja a „tévesen” levont összeget.

    De itt persze nem így ment, az ügyfélszolgálat első körben erősködött, hogy ezt márpedig benéztem, mert nem mondtam le időben. De ha visszaküldöm az eszközt, akkor majd jól meggondolják, hogy kaphatok-e vissza pénz. Ápr. 22-höz képest majd egy hónapig gondolkodtak rajta, mire a sokadik mail, telefon és csetüzenet után végre hajlandóak voltak visszafizetni az összeget. Szóval többet nem lesz Cristom. Pont.

  • SSH kulcsos hitelesítés

    Készítsünk egy kulcsot

    ssh-keygen -t ed25519 -C "your_email@example.com"
    vagy
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    

    A publikus kulcsot másoljuk a szerverre manuálisan a ~/.ssh/authorized_keys fájlba vagy az alábbi parancsot használva:

    ssh-copy-id user@your_server_ip
    

    Teszteljük a kapcsolatot:

    ssh user@your_server_ip
    

    Buktatók:

    • nincs a port engedélyezve a tűzfalon
    • ha elneveztük a kulcsot, akkor használjuk a -i kapcsolót
    ssh user@your_server_ip -i ./.ssh/keyname
    
    • ha a kulcsot kézzel rakjuk be, akkor szóköz kerül bele
    • Ubuntu esetén nem elég az sshd újraindítása
    sudo systemctl daemon-reload
    sudo systemctl restart ssh
    

  • Uptime lekérése

    Ha kiváncsiak vagyunk az időre, hogy mióta fut a gépünk / szerverünk, akkor erre több lehetőségünk is.

    Nézzük Linux alatt:

    • uptime parancs
    • uptimed csomag, mely után használhatjuk az uprecords parancsot
         #               Uptime | System                                     Boot up
    ----------------------------+---------------------------------------------------
    ->   1   567 days, 01:02:55 | Linux 4.19.0-0.bpo.9-amd  Thu Oct 12 07:26:03 2023
         2   210 days, 15:33:31 | Linux 4.19.0-0.bpo.9-amd  Fri Oct  7 08:47:43 2022
         3   159 days, 06:30:18 | Linux 4.19.0-0.bpo.9-amd  Sat May  6 00:52:32 2023
         4    62 days, 23:16:51 | Linux 4.19.0-0.bpo.9-amd  Mon Jul 25 07:19:57 2022
         5    19 days, 13:54:18 | Linux 4.19.0-0.bpo.9-amd  Tue Jul  5 10:41:51 2022
         6     8 days, 09:25:47 | Linux 4.19.0-0.bpo.9-amd  Wed Sep 28 23:21:41 2022
         7     2 days, 16:03:13 | Linux 4.19.0-0.bpo.9-amd  Mon Sep 26 06:45:29 2022
         8     0 days, 02:00:08 | Linux 4.19.0-0.bpo.9-amd  Mon Jul 25 01:06:19 2022
    
    

    Ugyanerre Windows alatt szintén több lehetőségünk van:

    • Powershell megoldás
    (get-date) – (gcim Win32_OperatingSystem).LastBootUpTime
    
    • systeminfo parancs
    • és használható a „net statistics workstation” is

  • TLD helyi fejlesztéshez

    Régebben gondot okozott, hogy local környezetben milyen tld-t használjak. Nyilván egyedi de valami frappánsra volt szükség, az alábbiakat használtam az évek alatt, ha valakinek szintén gondolatébresztőre lenne szüksége:

    • .lh
    • .local
    • .localhost
    • .lan
    • .test
    • .int (internal)
    • .dev

    Vigyázat, az utolsó kettő valós TLD, ezeket csak akkor használjuk, ha biztosak vagyunk benne, hogy ilyen domainek megtekintésére nem lesz szükségünk. Magam részéről a .test és .lh van használatban jelenleg.

  • Abaliget körtúra

    Április 12-én tettem meg ezt a túrát, melynek útvonalát alább csatolom:

    Ugyan az Abaligeti peca- és csonakázó tótól kisebb kaptatóval indul az út, de mivel ott még friss az ember, így különösebb gondot nem okoz. Az első szakasz abszolút kellemes, szép erdős vidéken haladunk, majd nagy meglepetésre egy nagy rétre érkezünk Petőczpusztán, itt az uránybányászat idején több ház állt, egy kis harangtorony most is megvan. A lezárt légaknánknak hangulata van, itt döntöttem el, hogy elmegyek a többi lezárt légaknak felé is. Hiszen tavaly az éves 2 éjszakás, 3 napos túránk alatt is érintettük a IV. légaknát, de nem mentünk oda megnézni. Most megtettem.

    Innen újra északnak vettem az irányt ami megint kellemes erdei sétát jelentett, addig amíg ki nem értem az Orfű felé tartó műútra. Az nem volt kellemes, mert a viszonylag korai időhőz képest is már nagy forgalom volt. Nagyon vártam a letérőt, így eltekintettem arról, hogy majd Abaligetig a műúton menjek. Legalább láttam a Gubacsos kulcsosházat, ami nagyon szépen fel lett újítva, egy pár éjszakát biztos megérne.

    Az utolsó szakaszon épp tájékozódási futás zajlott, meglepő módon kereszül kasul szaladtak a versenyzők az erdőben. Még kora délután volt amikor visszaértem, de nem bántam, mert így is kellemesen elfáradtam.

    A túra adatai:

    • Táv: 14.26 km
    • Szint: 432 m
    • Sebesség: 4.00 / 3.72 km/h (mozgásban / teljes)
    • Idő: 03:33:17 / 03:49:48 (mozgásban / teljes)

  • Fájlok létrehozása Linuxon

    Egy új eszközt ismertem meg a napokban, amit mindjárt be is mutatok a témával kapcsolatban, de előbb nézzük meg, hogy milyen lehetőségünk van fájlok létrehozására linux alatt:

    touch teszt.txt
    

    Ez a legegyszerűbb megoldás, ez egy 0 byteos fájlt eredményez, de lehet hogy nekünk egy nagyobb fájlra van szükségünk pl. sebesség teszteléséhez, ehhez használhatjuk a dd-t.

    dd if=/dev/urandom of=random_data.bin bs=1M count=50
    

    Ebben a parancsban egy véletlenszerű adatokkal megtöltött 50MB-os fájl készítünk, a paraméterek:

    • if: input fájl, bemeneti forrás
    • of: output fájl, létrahozandó fájl
    • bs: blokkméret
    • count: blokkok száma
    dd if=/dev/zero of=ures_fajl.bin bs=1 count=0 seek=1G
    

    Ez pedig egy 1GB méretű valóban üres fájlt hoz létre, a seek paraméterrel adhatjuk meg, hogy hány blokkot hagyjon ki a bemeneten.

    De ettől van egy szebb megoldás is ugyanerre, mégpedig a fallocate parancs, mivel ez nem tölti fel adatokkal a fájl, használata:

    fallocate -l 5G test5G.bin
    

    Ez azonnal lefoglalja a helyet a fájlrendszerben, de nem inicializálja a fájlt adatokkal.

  • IMAP szinkronizálás

    Előforduló üzemeltetési feladat lehet, hogy két szerver között költöztetni kell a levelezést, ehhez nagyszerű eszköz az Imapsync mellyel könnyen megoldható a feladat. Ehhez a perl scripthez számos függőséget kell telepíteni, amit legegyszerűbben az alábbi leírás alapján tehetünk meg.

  • Ház karbantartás

    A minap azon gondolkodtam, hogy milyen komoly összeg fenntartani egy 21. századi lakóépületet.

    Amíg albérletben voltunk, akkor nem tartottam túl nagyra, hogy mekkora dolog az állagmegóvás, illetve a berendezés karbantartása. Mondjuk egyrészt sokan valóban elhanyagolják, meg ha cserélik is, akkor mindenből a legolcsóbbat. A mohácsi 3 albis évünk alatt csak egy csaptelep, egy aljzat, meg a redőny ment tönkre, az utóbbi kettő nem is lett normálisan megoldva.

    Nade mióta beköltöztünk az új házba itt aztán van sok felmerülő költség. Gázkazán, klíma, vízlágyító, szellőztető, vízszűrő, központi porszívó, hogy csak párat említsek. Pedig tényleg jó szakik jönnek és szerintem még közepes árfekvésből megússzuk.

    Na egy lényeg, hogy aki most építkezik vagy tervezi, annak érdemes azt is figyelembe venni, hogy ki fog karbantartani és milyen alkatrészekre lesz szükség.

  • Indulunk…

    Na sikerült az új szerveren is összepattintani a blogot. Merthogy megint blogolni kezdek. Sok minden érdekel, sok dologgal foglalkozok, szeretném, ha eljutna máshoz is, hátha hasznosnak találják néhányan.

    Igazából ez már nem az első blogírási próbálkozásom, mert volt egy korábbi blog, amit több évig írtam, még Goldenblog helyezést is értem el vele. De aztán nem jöttek az új posztok, elavult lett sablon is amit használtam, talán az a tárhely is megszűnt ahol volt és így elkallódott sajnos.

    Ezért is izgalmas most újra belefogni. Témákat tekintve minimális változás lesz a korábbihoz képet, ott informatika, webfejlesztés, szoftverek volt a fő téma, itt is ezt tervezem, pár személyes ihletettségű témával kiegészítve, illetve pár témában el fogom mondani a (tényeken alapuló) véleményem. Szóval lesz némi személyes jellege is az új blognak.

    Köszöntök minden olvasót, csapjunk is bele!