Gdy leciwe skrypty się buntują – Czyli Instalujemy stare PHP na Bookwormie

Półpałzy zamieńcie na 2 minusy. To WordPress na Eltenie nic dziwnego, że nie działa.
A po co komu taki poradnik? A mi się przyda jak miał bym to jeszcze robić.
Ostatnio technicznie, bo grzebania jest z tym od groma, a ja zastanawiam się czasem jak to się stało, że moja klawiatura bezprzewodowa przetrwała te męki. Nie chcieli byście widzieć w jakim stanie wściekłości byłem kilkanaście razy w ciągu ostatnich 12 godzin.
Dobra. Mamy to. Udało się z cholernym Letsencryptem że domeny są po https tak jak przed updatką całego Linucha, teraz jakieś multisite ale szczerze jakkolwiek byle by to działało. Infrastruktura i skrypty pamiętają jeszcze piękne czasy (Ale piękne tylko pod względem informatycznego chcenia mi się) lat 2017 2019 to trzeba naprawić też PHP, które nie odpala mi tego co działało przed aktualizacjami.
Najpierw warto sprawdzić, jaką mamy teraz wersję tegoż i przygotować sobie ogólnie plik phpinfo w razie konieczności posiadania większej ilości informacji:
Możemy go stworzyć w dowolnym edytorze i wrzucić na ftp, albo też wykreować prosto z samego Win scp lub przez nano w terminalu.
Tym ostatnim robimy to w ten sposób:
"cd nasza-nazwa-katalogu-z-plikami-dostepnymi-przez-www"
Gdy jesteśmy już w odpowiedniej lokalizacji teraz należy napisać np.:
"nano info.php"
po otworzeniu się pliku wkleić poniższe
<?php
phpinfo();
?>
Teraz wystarczy nacisnąć CTRL+X i potwierdzić literką Y utworzenie nowego dokumentu.
Wchodzimy pod adres w przeglądarce. W nowszych wersjach PHP np. z gałęzi 8, informacja wyświetla nam się już w tytule strony.
No więc. Mam ja stare CMSy i inne fajne rzeczy z epoki kamienia łupanego i jak to teraz ruszyć, jak php się rzuca? Dostawałem zwrotkę Error 500, bo strona nie mogła przetworzyć mojego żądania. W logach odkryłem iż pewne sposoby kodowania zostały wyeliminowane w nowszych wersjach PHP. Ale łatwiej jest chyba zrobić downgrade, niż przerabiać wszystkie (Swoją drogą nie moje) skrypty prawda?
Trzeba więc zmienić wersję.
W tym celu, napisałem po prostu
"apt-get install php7.4"
Dostałem w zwrotce:
"Package php7.4 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'php7.4′ has no installation candidate."
Oznacza to mniej więcej tyle, że potrzebujemy zewnętrznego repozytorium.
Znalazłem takie w Tym artykule.
Poniżej przeklejam komendy, które należy wykonać z osobna, każdą po kolei aby dodać je do swojej listy:
"apt install -y apt-transport-https lsb-release ca-certificates wget
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list "
Teraz standardowa procedura updatki systemu:
"apt-get update"
Można już instalować wersję PHP, która nam się przyda.
"apt get-install -y php7.4"
Teraz przy pomocy polecenia:
"update-alternatives –set php /usr/bin/php7.4"
dodajemy manualnie obecnie zainstalowaną wersję do listy alternatyw ustawiając ją jako domyślną.
I można by było pomyśleć, że gotowe!
Tak łatwo nie ma. Nie wierzysz? Sprawdź sobie utworzony wcześniej plik info.php.
Zdziwiony? Co prawda komenda
"php -v "
zwróci nam informację, iż teoretycznie wybrane obecnie jest 7.4, ale w praktyce Nadal będzie 8.x, gdyż należy jeszcze ogarnąć wszystko po stronie Apache.
Sprawdźmy najpierw, czy wszystko poprawnie się zainstalowało.
W tym celu przejdźmy do katalogu
"/etc/apache2/mods-available"
i znajdźmy pliki:
"php7.4.load"
oraz
"php7.4.conf"
Jeśli są obecne, mamy już 90 procent sukcesu.
Ostatnim krokiem jest deaktywacja obecnego modułu i aktywacja wersji poprzedniej.
W tym celu wpisujemy po prostu:
"a2enmod php7.4
a2dismod php8.2"
i restartujemy serwer www
"systemctl restart apache2"
Wszystko powinno teraz zadziałać poprawnie.
Otwórzmy jeszcze raz info.php w przeglądarce. Odświeżmy stronę i sprawdźmy co nam się wyświetli.
Jeśli wszystko poszło zgodnie z planem, a jest to niższa wersja niż 7.3 w tytule okna zobaczymy tylko "phpinfo()", natomiast w treści niżej znajdziemy to co i w nowszych wersjach w tym przypadku
"PHP Version 7.4.33"
Gotowe. Nasze stare skrypty znowu będą działać, a my oszczędzimy se czasu na przepisywanie cudzesów. Nie mówię, że trzeba schodzić aż tak nisko. Można po prostu przejść na PHP7.4, które nadal jest jakimś standardem, aczkolwiek ja musiałem zejść aż tutaj.
Słuchając dobrych .mod / XM w XM playu i odpoczywając po całodziennych bataliach z serwerem chwilę przed świtem pozdrawia Was ukontentowany Ogon.

Linux i szybkie backupy robione z łapy

Uwaga wpis pisany w ultra prymitywny sposób, jak autor tegoż z resztą bo nie chce mi się udawać że jestem hiperpoprawny.
Nie mam energii na grzebanie się w tym całym bajzlu już od dawna, a z miesiąca na miesiąc spada ona jeszcze szybciej. Backupy jednak trzeba robić.
Do tej pory pobierałem wszystko po prostu Win SCP kopiując pliki i później jeszcze to zipując zabezpieczając hasłem. Trwało to ultra długo i mnie szlak trafiał, bo jak mam zahostowane różne strony na różnych CMSach tak mają one niezliczone ilości małych pliczków, po 1 2 kb które srają się wolniej niż cokolwiek innego bo se musi przeliczać debil i zapisywać każdy rozpoczynając transfer od zera czy coś.
Znowu prace serwisowe (Niech to szlak trafi) i znowu trzeba robić ten wstryntny backup, to się na sposób w końcu wziąłem.
tar -cf home.tar /home
i po robocie.
Jak chcemy kompresować, bo nie mamy szybkiego łącza jak ja, to już swoje zajmie ale i tak mniej frustruje jak pasek postępu sunący z prędkością malucha obserwowanego przez gościa na mocnym tripie gdzie czas płynie 100 razy wolniej i odliczać kiedy w końcu dysk z backupami będzie można zgasić to
tar -czf home.tar.gz /home
i już.
A co to robi jak by kto pytał:
c – Nowe archiwum,
z – Kompresja,
f – Nazwa archiwum.

Kiedy chcesz mieć 2 Icecasty – Czyli Poradnik krok po kroku uruchomienia drugiej instancji Icecast 2 na Debianie

A nawet 2 lub więcej :).
Ludzie lubią telefony, telefony nie lubią Shoutcasta 1. Ja lubię Shoutcasta1, nie lubię telefonów ale lubię niektórych ludzi, którzy lubią jednak telefony.
Co teraz?
Stwierdziłem, że dla webowego streamingu drobnej skromnej niepozornej takiej tam pewnej rzeczy warto by uruchomić jednak tego Icecasta. Ale dosyłka na moim domowym łączu jako kolejny strumyk tegoż wynalazku to kolejne niezbyt potrzebne jej obciążenie. Dlatego stwierdziłem, a, pykniemy sobie relaya.
I tu zaczynają się schody, o które można sobie głupi pysk rozwalić i we frustracji tłuc łapami w biurko, klawiaturę czy wyżywać się na biednej sztucznej inteligencji, która i tak odpowie, że przeprasza, że ona nie chciała, ale w gruncie rzeczy to nadal nie wie o co mi chodzi.
Dopisałem najpierw do configa zdefiniowany relay i mountpoint, który miał uruchamiać się na konkretnym porcie.
Co z tego, jak widoczny był na całym Icecaście?
Pogadałem ze znajomymi i dostałem info że pane, to se ne da tak zrobić. No to jak nie łopatą, to kilofem, albo w ostateczności siekierą czy młotkiem
Naprowadzeniem był fakt, że jednak jest to do zrobienia. Potrzeba tylko mieć dwa Icecasty. Ale jak?
Icecast po poprawnej instalacji uruchamia się jako usługa systemowa, którą możemy zarządzać przez systemctl.
Można go jednak odpalić z palca aczkolwiek nie pozwala się włączyć z Roota, to też potrzebny nam będzie inny użytkownik.
Stworzyłem osobny plik konfiguracyjny przeznaczony tylko dla wyznaczonego przeze mnie celu restreamu na konkretnym porcie i uruchomiłem to z palca ale nadal był problem. W domyśle Icecast zapisuje logi w lokalizacji
/var/log/icecast2
do której z poziomu mojego osobnego użytkownika w domyśle nie miał dostępu.
Ponoć możemy nadać mu ten dostęp przez Chown, ale po co? Mam 2 radiowe serwerki, to niech zapisują mi logi osobno. Będzie przynajmniej wiadomo co do czego się odnosi.
W configu linijkę
/var/log/icecast2
zmieniłem na
/home/nazwauzytkownika/icecastlog
A teraz przejdźmy do uruchomienia i poradnika właściwego.
Tworzymy sobie użytkownika np krowa
adduser krowa
Następnie odpalamy nano lub kopiujemy przez ftp plik icecast.xml na swój komputer.
Znajdziecie go w
/etc/icecast2/icecast.xml
Edytujemy wedle własnego uznania.
Teraz wystarczy zmienić mu nazwę i wrzucić do katalogu. Tego samego, bo użytkownicy mają dostęp do /etc.
Teraz przechodzimy do /usr/bin/
cd /usr/bin
Tam znajdziemy plik icecast2.
Do odpalenia serwera z przysłowiowej kociej łapy wystarczy już tylko wpisanie:
./icecast2 -c /etc/icecast2/naszadrugainstancja.xml
Ale serwer sam nie wstanie bez naszej pomocy. W tej sytuacji przyda się utworzenie drugiej usługi.
Aby tego dokonać, należy utworzyć odpowiedni plik. Do tego celu wykorzystamy wbudowany w Linuxa edytor Nano.
sudo nano /etc/systemd/system/icecastalt.service
Alt, abyśmy wiedzieli, który to icecast.
Następnie wklejamy poniższe dostosowując oczywiście linijki do swojej konfiguracji serwera:
[Unit]
Description=Icecast Streaming Media Server alternative service
After=network.target
[Service]
Type=simple
User=krowa
Group=krowa
ExecStart=/usr/bin/icecast2 -c /etc/icecast2/naszadrugainstancja.xml
[Install]
WantedBy=multi-user.target
Drobne objaśnienie:
Czym jest description tłumaczyć raczej nie trzeba.
User=krowa
Tutaj podajemy nazwę użytkownika, na którym ma uruchamiać się nasza usługa.
Group=krowa
Grupa, do której przynależy nasz użytkownik.
ExecStart=/usr/bin/icecast2 -c /etc/icecast2/naszadrugainstancja.xml
Lokalizacja pliku wykonywalnego oraz pliku konfiguracyjnego drugiej instancji Icecasta.
Naciskamy CTRL+X aby zapisać plik. Potwierdzamy enterem i…
Teraz wystarczy tylko przeładować daemona
systemctl daemon-reload
I uruchomić usługę
systemctl start icecastalt
systemctl enable icecastalt
I gotowe!
Możemy dublować sobie setki Icecastów na dowolnych portach i nic nie będzie ze sobą kolidowało.
A jak zrobić relay? O tym już mówi oficjalna dokumentacja, tak więc nie będędublować bytów:
https://www.icecast.org/docs/icecast-trunk/relaying/
Mam nadzieję, że komuś się to przyda, a i oszczędzi nerwów i klnięcia na czym świat stoi.
Dla tych co nie ogarnęli, sorry, już nie umiem w ładne poradniki jak kiedyś. Sam się dziwię, że udało mi się to jakoś składnie napisać.

Suno AI wyszło z bety. Szybki poradnik jak zarejestrować się w nowej appce przy użyciu screenreadera

Suno AI nie jest już w formie bety i trzeba się ponownie zalogować.
Niestety dostępność rejestracji jest kiepska z uwagi na najprawdopodobniej zastosowanie znaczników Aria odcinających screenreadery.
Jak to najlepiej zrobić?
Wyklikać tabulatorem aż przejdziemy do Modal window. Wówczas rozpoznawaniem NVDA+R skanujemy ekran i klikamy na Sign In.
Później znów tabulatorem aby ustawić się w wyskakującym okienku i wybieramy tam dowolną opcję NP w moim przypadku Sign in with Discord. Następnie NVDA+F2 (Przepuść następny klawisz) i dopiero w tedy enter na metodzie rejestracji którą wybraliśmy tabulatorem.

EltenLink