Od jakiegoś czasu (3 lata) myślałem nad stroną, która miała być dla małej grupy informatyków. Ot takie forum, baza wiedzy, aktualności i profile. Wiosną tego roku udało się zrobić działającą wersję, która jednak ciągle miała jeden problem – nie była publicznie dostępna. Oczywiście można było postawić ją gdzieś na “darmowym” hostingu, ale ilość ograniczeń z tym związanych skreśliła pomysł. Płatne rozwiązania też nie wchodziły w grę, ze względu na koszty. No ale skoro na warsztacie ciągle działa NAS Synology, a routerem jest pfSense, to nie powinno być jakiegoś większego problemu?
Od strony CMS nie ma nic odkrywczego – WordPress i kilka wtyczek. Dostęp do strony tylko po zalogowaniu, bez możliwości otwartej rejestracji. Pierwotnie strona powstawała na lokalnym serwerze LAMP. Oczywiście nie było szans aby przekierować ruch zewnętrzny do sieci lokalnej na ten serwer. Najprostsze co mogłem zrobić to wykupić domenę, wykupić hosting i przegrać wszystko w nowe miejsce. Mogłem też postawić stronę na tymczasowej domenie podpiętej do mojego NASa. Pierwsze rozwiązanie generowało koszty i późniejsze problemy z przeniesieniem praw własności do domeny na nowego właściciela. Na warsztatowej infrastrukturze nie będzie strona działać zbyt szybko i potencjalnie narażam się na ataki z Internetu. Po przeanalizowaniu za i przeciw, padło na własne hostowanie stronki. No przynajmniej do czasu, aż nie zostanie przygarnięta na profesjonalny serwer i zadziała na normalnej nazwie.
Krok pierwszy to przeniesienie danych. Do tego posłużyła wtyczka Duplicator. Nawet w wersji darmowej można zrobić pełną kopię plików i bazy, wraz ze skryptem instalującym wszystko w nowej lokalizacji i pod nową nazwą.
Krok drugi to nowa nazwa. Tu z pomocą przychodzi usługa DynDNS no-IP podłączona do warsztatowego routera pfSense. Czemu akurat no-IP? Bo użytkuję od kilku lat i jeszcze nie miałem problemów. Sprawdza się do monitoringu wizyjnego, podłączania VPN dla routera z kilkoma WANami, czy wszędzie tam, gdzie jest usługa ze zmiennym adresem IP jak Neostrada.
Krok trzeci – przekierowanie portów. Oczywista reguła dotyczy przekierowania wszystkiego co ma trafić na HTTP/80 i HTTPS/443 na adres mojego Synology. Teoretycznie wpis był banalny: adres typu * z portem typu *, który trafia na na adres portu WAN z portem HTTP/80, przekieruj na adres Synology z portem HTTP/80. Z sieci lokalnej trafiałem jednak na panel sterowania pfSense, a od Internetu trafiałem w pustkę. Skanowanie, pingowanie, czyszczenie DNS – nic. W reszcie kasowanie reguły i jej ponowne dodanie. Nadal nic. Wchodzę więc na NASa aby sprawdzić logi, a tam też pustka. Patrzę jednak na adres mojego NASa i na wpis w przekierowaniu i coś mi się nie zgadza. Wpisałem oczywiście adres NASa Synology, ale …. z pracy. Mała korekta adresu IP i wszystko ruszyło, to znaczy moim oczom pokazał się panel WebStation.
Krok czwarty czyli osadzenie strony i ustawienie WebStation. Synology to Linux, tylko z ładną nakładką graficzną. Zamiast więc ścieżki /var/www/html mamy /volumeX/web. Kopia strony powstała w wyniku działania Duplicator’a, trafiła do podkatalogu /volume1/web/nowanazwa, a w WebStation dodałem kolejną pozycję hostów wirtualnych. W tym momencie udało się już wywołać plik PHP instalacji strony wraz z bazą. Sukces …. nie do końca.
Krok piąty – baza danych. WordPress współpracuje z MySQL czyli również z MariaDB w wersji 10. Aby więc uruchomić stronę należy mieć też pustą bazę i usera z prawami zapisu do niej. Wszystko przygotowałem za pomocą phpMyAdmin, ale test połączenia z bazą dał wynik negatywny. I znowu po wielu próbach przyszło olśnienie. Ustawiając adres serwera bazy danych nie wystarczy podać adres IP czy wpisać localhost. W przypadku silnika MariaDB (przynajmniej na Synology) w polu adresu trzeba dodać wpis localhost:/run/mysqld/mysqld10.sock. I piszę to w wersji pogrubionej ponieważ często tego zapominam.
I to wszystko. Po tej akcji, czyli ustawieniu prawidłowych ustawień bazy danych, wszystko poszło bezproblemowo.
Teraz czas na testy i dodanie userów, którzy powiedzą mi, czy robiłem stronę, która do czegoś się nadaje, czy też pomysł zupełnie się nie przyjął.