Panel admina

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:

  1. Następuje jednorazowe podpięcie pliku php, który zawiera funkcje.
  2. 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.
  3.  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