Bądź na bieżąco - RSS

Kontener WordPress i strefa czasowa

31 maja, 2023 | Brak Komentarzy | Kategoria: Linux, Porady
Kontener WordPress

Wirtualizacja i kontneryzacja są zdecydowanie technikami zmieniającymi sposób w jaki budujemy swoje usługi. O ile kiedyś przygotowanie np. własnej (nawet) statycznej strony www wymagało przygotowania serwera, później zainstalowania i skonfigurowania oprogramowania (nie wspominając, że najpierw w pocie czoła składało się coś na kształt peceta hmm… serwerowego) o tyle obecnie cały proces znacznie się skrócił bo dostajemy gotowe moduły do uruchomienia czy to w środowiskach wirtualizacyjnych, czy to na platformie dla kontenerów.

Oczywiście nie ma rozwiązań doskonałych i nawet coś tak łatwego w utrzymaniu jak kontenery ma swoje ułomności. Jedną z nich, dosyć często występującą, jest brak obsługi strefy czasowej w przypadku bardzo popularnego systemu CMS jakim jest WordPress. Jest to zadziwiające, że w przypadku oficjalnego obrazu dostępnego w serwisie Docker Hub nie pomyślano o tym. Być może nie jest to wada, która będzie uciążliwa od pierwszych minut funkcjonowania naszej strony ale szybko ujawni się jeśli włączymy np. dwustopniową autoryzację podczas logowania do panelu administracyjnego. Poniżej opisuję krótko jak naprawić tą niedogodność.

W internecie można znaleźć dużo porad na ten temat jednak tak naprawdę tylko jedna z nich sprawdziła się w moim przypadku. Dotyczy ona konfiguracji w oparciu o plik YAML dla konfiguracji Docker Compose. Przy korzystaniu z Portainera, czyli narzędzia, które zdecydowanie mogę polecić nie tylko początkującym, jest to w zasadzie najprostsza droga dla budowania całkiem skomplikowanych konfiguracji.

Rozwiązanie w całości opiera się na dopisaniu kliku linijek tekstu we wspomnianym pliku konfiguracyjnym:

services:
  service_name:
    volumes:
      - "/etc/timezone:/etc/timezone:ro"
      - "/etc/localtime:/etc/localtime:ro"

Jeśli zapewnimy prawidłową konfigurację systemu hosta kontenerów – mam na myśli strefę czasową – to praktycznie kontener WordPress skopiuje te ustawienia do swojego obrazu. Tylko tyle i aż tyle. Zatem do roboty!

MG

Tagi: , ,

SupportCandy czyli obsługujemy zgłoszenia

8 lutego, 2023 | Brak Komentarzy | Kategoria: Linux, Porady
SupportCandy

Ostatnio systemy obsługi zgłoszeń stają się coraz bardziej popularne. Począwszy od bardzo skomplikowanych i rozbudowanych, które możemy wykupić jako usługę w chmurze, poprzez gotowe do użyciu kontenery Docker a skończywszy na prostych ale równie skutecznych rozszerzeniach do popularnych platform CMS. Tym razem chciałem skupić się na tych ostatnich.

Ponieważ od wielu lat korzystam głównie z WordPressa dlatego swoje poszukiwania skoncetrowałem na tej platformie. W sieci można znaleźć dość bogatą ofertę. Społeczność WordPressa należy do jednej z największych. Rozmaitych wtyczek nie brakuje. Z oczywistych względów powinniśmy jednak szukać prostej w obsłudze, dobrze zintegrowanej z pocztą elektroniczną oraz udostępniającej tłumaczenie w języku polskim. I tutaj może nas spotkać zaskoczenie ponieważ jak się okazuje nie jest łatwo znaleźć takie oprogramowanie.

Ostatecznie po kilku próbach, paru instalacjach oraz dyskusjach z użytkownikami zdecydowaliśmy się na wtyczkę SupportCandy i to nie tylko dlatego, że można skorzystać z jej bezpłatnej wersji. Przede wszystkim SupportCandy dosyć dobrze integruje się z obsługą poczty. A jeżeli zainstalowaliśmy dodatkowo wtyczkę WP Mail SMTP to praktycznie nic więcej nam nie potrzeba.

Kolejną cechą jest obsługa tzw. shortcodes, czyli małych fragmentów kodu wywoływanych specjalnym znacznikiem w tekście strony, co znacznie ułatwia dodanie rozbudowanych funkcji do statycznych elementów strony. Na przykład użycie frazy:

[wpsc_create_ticket]

spowoduje dodanie formularza z możliwością założenia zgłoszenia.

Od strony obsługi zgłoszeń, w panelu administarcyjnym pojawia się dodatkowa zakładka, która przenosi nas do przejrzystego panelu obsługi. Z bardzo przydatnych funkcji można wymienić przede wszystkim możliwości śledzenia realizacji zadania na skali czasu. Dostępne są ponadto wszystkie funkcje takie jak zamknij, zduplikuj czy usuń, typowe dla każdej platformy.

Ostatnią rzeczą, o której warto wspomnieć jest tłumaczenie wtyczki. Jest ona na tyle popularna, że w sieci można znaleźć gotowe pliki z językiem polskim. Nie mniej zdecydowałem się na kolejną wtyczką czyli GTranslate, która umożliwia tłumaczenie strony w locie za pomocą Google Translator. Jest to nieco inne podejście. Zdarzają się jeszcze drobne, śmieszne błędy. Jednak na pewno umożliwia bardzo szybkie wdrożenie na czym we wspólczesnym świecie coraz bardziej nam zależy.

MG

Tagi: , ,

BulletProof Security

21 marca, 2015 | Brak Komentarzy | Kategoria: Linux, Porady, Windows

WordPressZabezpieczanie stron zbudowanych w oparciu o platforme WordPress jest czynnością, która powinna wejść w nawyk każdemu autorowi. Dotyczy to zresztą nie tylko WordPressa ale również Joomli i Drupala. Wiem, że jednym z głównych argumentów za wyższością dwóch ostatnich CMS-ów jest ich większe bezpieczeństwo ale nie ma co zaprzeczać, że ostatnio WordPress stał się bardzo popularny i stale powiększa się grono jego użytkowników. Poza tym nie ma co się oszukiwać bo stara prawda głosi, że każdy system jest tak bezpieczny jak jego administrator. Zatem krótko i na temat – jeżeli nie jesteś super administratorem, nie chesz zajmować się konfiguracją plików .htaccess, chcesz po prostu komfortowo, bez zbędnych problemów prowadzić bloga lub po prostu swoją stronę www, to jako jedną z pierwszych zainstaluj wtyczkę BulletProof Security. Nie ma ona może zbyt przyjaznego interfejsu i wymaga poświęcenia około 30 minut na konfigurację ale każda z nich to bardzo dobrze spędzony czas! Nie będę dalej opisywał jej możliwości bo przecież każdy może to sprawdzić sam. A na prawdę warto.

Tagi: , , ,

WordPress – włamanie w celu rozsyłania spamu (Apache+PHP+Postfix)

17 stycznia, 2015 | Brak Komentarzy | Kategoria: Linux, Porady

HackerWordPress jako bardzo popularne narzędzie jest często obiektem ataków w celu przejęcia zawartości strony. Podmiana treści serwisu przez hackera jest widocznym skutkiem złamania zabezpieczeń. Sama w sobie nie jest jednak tak groźna jak np. wykorzystanie naszego serwera do rozsyłania spamu (co może spowodować umieszczenie go na czarnych listach). Najczęściej atakujący starają się umieścić w strukturze katalogów serwisu przygotowane skrypty PHP (w formie plików), które następnie wykorzystują do wysyłania maili. Co zrobić, żeby zabezpieczyć się przed tą formą ataku?

Przede wszystkim konieczne jest wykonanie 2 czynności: (a) ograniczenie zainstalowanych motywów do niezbędnego minimum oraz (b) usunięcie wszystkich zbędnych wtyczek (bywają takie, które z powodu słabej jakości kodu umożliwiają natychmiastowy dostęp do serwera). Kolejną rzeczą jest uniemożliwienie przesłania spreparowanego zapytania do naszego serwera. Absolutnym minimum jest przygotowanie pliku .htaccess z odpowiednimi regułami. Jeśli chcemu pójść na skróty można skorzystać ze zbioru gotowych reguł: http://perishablepress.com/5g-blacklist-2013/. W zasadzie dzięki tym dwóm prostym krokom uzyskamy przynajmniej minimalny poziom zabezpieczeń strony w WordPressie. Dodam jeszce, że na końcu .httaccess można  dopisać linijkę

RewriteRule ^(php\.ini|\.htaccess) - [NC,F]

która zabezpieczy nas przed modyfikacją zawartości plików index.php i właśnie .htaccess co z kolei uniemożliwi np. przekierowanie wywołań naszej strony na inny serwer www.

Jednak w jaki sposób powstrzymać doraźnie atak na nasz serwer (jeśli już doszło do niego). Przy założeniu, że korzystamy z domyślnej konfiguracji Apache trzeba zatrzymać wysyłanie poczty z konta www-data. Edytujemy plik /etc/postfix/main.cf i dodajemy na końcu wiersz

authorized_submit_users = !www-data, static:all

Natstępnie wczytujemy nową konfiguracje serwera poczty:

/etc/init.d/postfix reload

Teraz musimy wyczyścić kolejkę maili oczekujących na nadanie:

postsuper -d ALL

Przechodzimy do najbardziej monotonnej częsci całego procesu. Edytujemy plik /etc/php5/apache2/php.ini, żeby znaleźć (i odkomentować lub zmienić na postać przedstawioną poniżej) fragment:

mail.add_x_header = On
mail.log = /var/log/phpmail.log

Pierwsza spowoduje dodanie nagłówka do wszystkich maili nadawanych z wykorzystaniem PHP a druga włączy logowanie informacji na ten temat (do pliku /var/log/phpmail.log). Teraz pozostaje nam żmudne przeglądanie pliku z logami w celu śledzenia historii ataku oraz usuwania niepożądanych plików (zawierających np. skrypty PHP), które są wykorzystywane do rozsyłania spamu.

MG

Tagi: , , , ,

Jak naprawić URL po przeniesieniu witryny WordPress pod nowy adres

7 grudnia, 2013 | Brak Komentarzy | Kategoria: Bez kategorii, Linux, Porady, Windows

WordPressWordPress jest jednym z najbardziej popularnych systemów zarządzania treścią tzw. CMS. Sam używam wyłącznie WordPressa i wysoko go sobie cenie. Nie chciałbym rozpisywać się o zaletach tego oprogramowania, jak również tworzyć kolejnego poradnika instalacji czy konfiguracji. Materiałów w sieci jest wystarczająco dużo. Tym razem chciałbym pokazać jak rozwiązać bardzo konkretny problem, związany z przenoszeniem, tworzeniem kopii testowych itp. witryn utworzonych za pomocą opisywanego CMSa.

Generalnie, wykonywanie kopii witryn WordPressa to przede wszystkim:

  • kopiowanie i przenoszenie bazy danych oraz
  • kopiowanie i przenoszenie całej struktury katalogów i plików

Niemniej, nawet jeżeli całkiem nieźle radzimy sobie z powyższymi zadaniami to trzeba pamiętać, że nasza strona WordPress jest widoczna jako adres URL w sieci np. ‘www.strona-wp.pl’. Tworząc jej kopie albo przenosząc pod nowy adres trzeba pamiętać o uaktualnieniu bazy danych. WordPress zapisuje bowiem wyświetlane elementy typu grafiki, dokumenty itp. za pomocą ich adresu URL. Często, przeniesiona strona, właśnie z tego powodu nie chce wyswietlać żadnych grafik bądź innych obiektów. Co możemy zrobić? Wykonać trzy polecenia UPDATE w środowisku bazy danych:

  1. UPDATE wp_options SET option_value = replace(option_value, →
    'http://www.stary-adres.pl', 'http://www.nowy-adres.pl') →
    WHERE option_name = 'home' OR option_name = 'siteurl';
  2. UPDATE wp_posts SET guid = replace(guid, →
    'http://www.stary-adres.pl','http://www.nowy-adres.pl');
  3. UPDATE wp_posts SET post_content = replace(post_content, →
    'http://www.stary-adres.pl', 'http://www.nowy-adres.pl');

Reszte poprawek musimy wykonać ręcznie, edytując konfiguracje witryny. Niemniej przytoczone polecenia pozwolą na pewno zaoszczędzić mnóstwo czasu.

MG

Tagi: , , ,