php w mailinabox


Uprzedzam ,że uruchomienie php w mailinabox nie jest wspierane domyślnie ze względów bezpieczeństwa. Wszelkie uwagi że inne elementy jak nextcloud czy webmail również działają w oparciu o php więc dlaczego strona nie może działać świadczą o niewiedzy ponieważ wymienione elementy stanowią spójną całość. Idąc dalej proces wdrożenia tych elementów z obsługą php został przemyślany od strony bezpieczeństwa krok po kroku i tym samym dogłębnie przeanalizowany by wyeliminować ewentualne zagrożenia. Dlatego również moje osobiste zdanie na ten temat jest takie że nie zalecam! Chyba że wiesz co robisz!

A teraz do roboty! Postaram się to opisać najprościej jak się da. Logujemy się do naszego serwera przez ssh i uruchamiamy sobie mc. Przechodzimy do lokalizacji jak poniżej:

/home/user-data/www/

W tej lokalizacji musimy utworzyć sobie plik konfiguracyjny. Nazwa tego pliku musi odpowiadać nazwie domeny / subdomeny . Przyjmujemy że nasza domena nazywa się po prostu domena.pl Więc nasz plik konfiguracyjny musi wyglądać jak poniżej:

domena.pl.conf

Jeżeli mamy subdomene np. o nazwie test.domena.pl to plik konfiguracyjny musi wyglądać jak poniżej:

test.domena.pl.conf

Zanim zajmiemy się plikiem konfiguracyjnym domena lub subdomena musi wskazywać na odrębny folder. Czyli powinno wyglądać to jak poniżej:

/home/user-data/www/domena.pl

lub

/home/user-data/www/test.domena.pl

Przerywnik bezpieczeństwa – Jeżeli nie wiesz jak to zrobić odpuść sobie mailinabox a tym bardziej uruchomienie php! Idąc dalej  tworzymy nasz plik konfiguracyjny i wklejamy do niego zawartość jak poniżej:

location / {
try_files $uri $uri/ /index.php;
fastcgi_index index.php;
fastcgi_pass php-fpm;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}

Plik konfiguracyjny musi znajdować się w katalogu www. Jest to bardzo ważne! Poniżej przykład dotyczący domeny:

/home/user-data/www/domena.pl.conf

Następnie uruchamiamy narzędzie dostępne w mailinabox ,które dopiszę obsługę naszego pliku konfiguracyjnego do nginx:

/mailinabox/tools/web_update

i na koniec restartujemy nginx:

sudo service nginx restart

Jeszcze taka techniczna uwaga! Jeżeli chcecie uruchomić coś w folderze wskazanej wyżej domeny lub subdomeny, np folder o nazwie abcd plik konfiguracyjny musi wyglądać tak:

location / {
try_files $uri $uri/ /index.php;
fastcgi_index index.php;
fastcgi_pass php-fpm;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
location /abcd/ {
}

php w mailinabox – Proces jest oczywiście odwracalny i polega on na usunięciu pliku konfiguracyjnego domeny lub subdomeny ,które to nie mają już wspierać obsługi php. I następnie ponownie uruchamiamy dostępne narzędzie  „web_update” i restartujemy nginx. To by było na tyle lecz pamiętaj że robisz to na własną odpowiedzialność ponieważ:

Nie jest to domyślnie obsługiwana funkcja i nadal zdecydowanie odradzam dokonywanie takich modyfikacji jeżeli nie wiesz co robisz, ponieważ włączenie PHP dla konkretnej domeny lub subdomeny może narazić Twój serwer na uaktywnienie luki w zabezpieczeniach, jeśli nie będziesz bardzo ostrożny. Pisząc ostrożny znaczy że – kod php potrafi wywołać wiele nieprzewidzianych funkcji od strony serwera jeżeli zakres Twojej wiedzy odnośnie samego php nie pozwala na analizę tego kodu a sam kod stanowi element stworzony przez osoby inne. Pamiętaj że głównym założeniem mailinabox jest obsługa poczty internetowej z dostępem do takich elementów jak webmail, kontakty, kalendarz. Witryny internetowe powinny być utrzymywane na innym serwerze a sam mailinabox posiada specjalnie stworzoną to tego funkcję o nazwie Niestandardowy DNS dostępną bezpośrednio w panelu sterowania Mail-in-a-Box.