Witam!
W swoim pierwszym poście chciałbym opisać panel admina, który sam zaprojektowałem i z którego mogę zarządzać moim serwerem.
Składa się on z kilku przycisków a każdy z nich po kliknięciu na niego wykonuje określone zadanie.
Za ich pomocą mogę na przykład zrestartować serwer Apache czy wyłączyć, włączyć lub zrestartować serwer FTP z poziomu przeglądarki. Jest to dla mnie duże ułatwienie, ponieważ w momencie kiedy chcę na przykład wyłączyć FTP’a na moim serwerze muszę najpierw się do niego zalogować zdalnie za pomocą protokołu SSH. Następnie muszę wpisać odpowiednią komendę a po wszystkim zakończyć połączenie. Oczywiście zakładam, że mam zainstalowany program, który umożliwi mi to połączenie. W innym przypadku musiałbym pobierać taki program lub skorzystać z SSH, które oferują niektóre strony internetowe. Jednak nie jestem do nich do końca przekonany. Za pomocą tego panelu mogę wejść sobie na serwer z poziomu przeglądarki i nacisnąć przycisk a wszystkie czynności serwer wykona za mnie. O wiele prostszy i wygodniejszy sposób! Dodatkowo dla swojej wygody dodałem poniżej przycisków elementy w których wyświetlany jest aktualny stan serwerów. Zasadę działania wszystkiego opiszę poniżej a także pokażę szablon kodu w przypadku gdybyście chcieli wykonać coś podobnego samemu.
Zasada Działania
Każdy z przycisków ma swój własny skrypt. Wszystkie skrypty przycisków napisane są w języku PHP.
Wszystkie zapisane są w jednym pliku w postaci funkcji. Już w tym momencie jeżeli mamy najmniejsze pojęcie o programowaniu można domyślić się zasady działania. Przyciski w moim panelu tak na prawdę nimi nie są.
Są one divami czyli elementami strony w których zapisany jest kod. Po naciśnięciu na ten element wykonuje się zapisany w nich kod. Jego wykonywanie przebiega następująco:
- Następuje jednorazowe podpięcie pliku php, który zawiera funkcje.
- Następnie ma miejsce wywołanie określonej funkcji. W tym momencie komputer wie, że musi udać się do pliku z funkcjami, który został podpięty, odszukać konkretnie wywołaną funkcję, a następnie wykonać skrypt, który zawiera funkcja.
- Po wykonaniu kodu, jeżeli wszystko przebiegło pomyślnie strona załaduje się ponownie. W przypadku gdy podczas wykonywania skryptu nastąpi błąd i nie wykona się on poprawnie, strona się odświeży ale tym razem pod wybranym przez nas przyciskiem pojawi się komunikat o błędzie.
Zasada działania wyświetlanych statusów serwerów jest bardzo podobna.
Te panele to nic innego jak divy, które zawierają kod php, który wykonuje połączenie z serwerem, wpisuje odpowiednią komendę, a odpowiedź jaką uzyska ze strony serwera trafia do zmiennej, której zawartość jest następnie wyświetlana w tych divach.
Podsumowanie
Jak widać sama idea nie jest bardzo skomplikowana a jak bardzo ułatwia nam pracę. Należy jednak pamiętać aby taki panel zabezpieczyć przed niepowołanymi gośćmi. Można zabezpieczyć go na przykład pisząc panel logowania, który dopiero po wpisaniu prawidłowego loginu i hasła da nam dostęp. Jak działa taki panel, jak wykonałem swój, jakie są jego wady oraz jakie są sposoby na jego wykonanie? O tym opowiem w następnym poście.
Tymczasem dziękuję za uwagę oraz pozdrawiam! Poniżej umieszczam obiecane szablony kodu.
Połączenie z serwerem przez SSH
$connection = ssh2_connect('Adres IP', 22);
ssh2_auth_password($connection, 'login', 'hasło');
$stream = ssh2_exec($connection, 'komenda');
Wyświetlanie wyniku komendy
Do powyższego kody dopisać następujące linijki kodu:
stream_set_blocking($stream, true);
$wynik = stream_get_contents($stream);
echo $wynik;
Jednorazowe podpięcie pliku php
require_once("lokalizacja i nazwa pliku z rozszerzeniem .php");
~BK