Skocz do zawartości
Zaloguj się, aby obserwować  
Rafał Jankowski

Alternatywa dla Nanoweb. Pytanie o programowanie własnego panelu administracyjnego

Polecane posty

Witam

 

Chciałbym dla własnych, lokalnych zastosowań napisać w PHP panel administracyjny do serwera linuksowego. Poszukiwania informacji na ten temat zakończyły się na anglojęzycznym artykule: Write Your Own Virtual Host Control Panel - Part 1 . Opisuje on sposób w jaki według niego warto napisać panel. Jest to użycie napisanego w PHP mini serwera httpd - Nanoweb. Dane i logi przechowywane miały by być w bazie danych SQLite, a całość napisana w PHP. Dla własnych testów udało mi się zainstalować ze źródeł Apache 2.4, PHP 5.4 i MySQL 5.6 + PHPMyAdmina 4.0, czyli maksymalnie najnowsze stable/beta typowego oprogramowania serwerowego. Nanoweb i SQLite mają swoje lata i o ile zrozumiałem ze stron projektów to są już nie rozwijane. Poszukuję propozycji lepszego rozwiązania z bardziej aktualnym oprogramowaniem i ewentualnymi poradami na temat pisania paneli serwerowych (tak, aby bardziej pasowały do nowiutkich wersji Apache etc. ). Interesowały by mnie także porady odnośnie bezpieczeństwa takich aplikacji.

 

Pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Logi np Nginx'a czy Apache możesz równie dobrze odczytać za pomocą readfile();

 

@edit

 

Co do porad, najlepiej polecam Ci abyś najpierw zobaczył jak wygląda ręczne konfiguracja wszystkiego, typu dodawania stron, pod stron do Apache/Nginx/etc. czy przypinanie, tworzenie nameserwerów w Bindzie/PowerDNS/etc.

Edytowano przez FanPL (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

FanPL, postawiłem Binda dla lokalnej sieci, Apache znany jest mi chyba od 2-3 lat, a tym bardziej nie boję się konfiguracji i z całą resztą też sobie spokojnie poradzę. Jedynie czego szukam to bardzo lekki serwer http, którego jedynym zadaniem byłoby serwowanie panelu (w artykule który podałem jest to wyjaśnione, że w przypadku pokićkania się Apache - nie tracimy nadal naszego panelu). Po prostu taka mała inicjatywa i chęć kolejnej nauki. Pomyślałem teraz o ewentualnie wykorzystaniu do wszystkiego NodeJS? Taki znaczek zapytania, bo wy wiecie lepiej to chcę wiedzieć, czy to kiepski pomysł.

 

@edit

 

A co do logów to nie chodziło mi o logi Apache czy DHCP etc. Tylko o przetrzymywanie tego, co leci z panelu do "pośrednika" wykonującego dalej operacje typu dodanie strefy DNS itp. Oczywiście właściwie nawet wygodniej by było przechowywać to w jakimś pliku tekstowym, bo ewentualnie ułatwiony dostęp z poza panelu niż trzymanie tego przez RDBMS

Edytowano przez Rafał Jankowski (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość nrm

Ogólnie to sens jest (zależy od zastosowania, np. reverse proxy), choć w przypadku, który podał Rafał - nie ma, nieco absurdalny pomysł ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Powiedziałem, że mam zainstalowany, a nie, że panel akurat nim ma zarządzać. Możliwe, że sprowadzi się to nawet do jakiejś obsługi serwera Minecrafta czy czegokolwiek. Po prostu chciałbym uniezależnić panel, a tak to wymusza użytkowanie Apache czy innego "potężnego". Według mnie to własnie mniej sensowne jest rozwiązanie polegające na użytkowaniu przez panel potężnego serwera (np. Apache) jeśli potrzebuje on jedynie serwowanie i nasłuchiwanie na danym porcie HTTP. A wytłumaczcie jak miałoby wyglądać restart samego Apache? Przykładowo: Panel wysyła z jakiegoś powodu błędne konfiguracje, które późnej daemon odczytuje, dopisuje je do plików konfiguracyjnych Apache. Restartuje. Bach, Apache nie wstał. Do Panelu nie ma dostępu. Oczywiście daemon może sprawdzać wcześniej konfigurację, ale to tylko krytyczny przykład.

 

Znalazłem ciekawy skrypt napisany przez polaka: PHPMultiServer i myślę, że to prawie to czego szukam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zasadniczo to zacznij od innych założeń.

Gdyż sam webserver + skrypty w PHP to dość kontrowersyjny pomysł.

Przede wszystkim pomyśl o daemonie, który będzie sterował wszystkimi procesami związanymi z działaniem panelu, a nie będzie to oparte na przetważanych na bieżąco requestach tworzonych przez skrypt www.

Moim zdaniem jest to zdecydowanie ciekawsze rozwiązanie, które umożliwia większe pole do popisu, a część zadań była by zdecydowanie prostsza w rozwiazaniu.

 

Reasumując, raczej zacznij od stworzenia sobie założeń, później ewentualnie możesz poddać je dyskusji na forum, w ten sposób zdecydowanie stworzysz coś bardziej wartościowego bazując na doświadczeniach większej ilości ludzi.

Edytowano przez malu (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość nrm

W takim razie my nie jesteśmy w stanie zrozumieć o co Ci chodzi ;) Jak już tak bardzo chcesz użyć w/w klasy php to sugeruje zamiast niej przynajmniej użyć wbudowanego serwera http w PHP ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Cały czas chodzi mi o daemona, który by po prostu przetwarzał zapytania od Panelu. Oczywiście nie w formie zmień plik A na taki i taki bo to w ogóle nie miałoby najmniejszego sensu.

 

nrm, na prawdę dzięki za przypomnienie. Właściwie zapomniałem, że najnowszy php ma wbudowany serwer (to chyba od 5.3 się pojawiło, tak?)

 

To trochę inaczej zadam pytanie. Jakie są wasze rozwiązania odnośnie serwowania samego panelu administracyjnego?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość nrm

Od PHP 5.4

 

Serwowanie panelu czyli front-end zależy najpierw od przyjętego rozwiązania: inaczej projektujesz w typie "standalone" czyli np. DIrectAdmin - jedna instalka per jeden serwer, a inaczej jak robisz np. centralne miejsce sterujące wszystkimi serwerami we flocie.

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×