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.
A po co to robić, skoro php jest podatne na wszelakie zagrożenia?
Dobra, to dawaj, przepisz mi całe cms-y i inne rzeczy które nie są moje. Powodzenia. Czekam na rezultaty. A po co to robić? Świat nie stoi na czystym html-u i index ofach.
500 internal server error to jakiś taki niewiele pomocny kod błędu. /var/log/apache2/error.log na domyślnym vhoście Twoim przyjacielem.