Wczoraj przy okazji rozmowy o automatyzacji marketingu (nie tylko internetowego) pokazałem koleżance platformę Mautic, z której korzystam (będzie o tym niebawem większy wpis, bo chyba Mautic zawita też na Webinsider.pl, oczywiście by zautomatyzować marketing, czyli tzw. Marketing Automation ;-)). Platforma się spodobała na tyle, że koleżanka od razu rzuciła mi, że ona też chce. Szybko w myślach odszukałem rekord, w którym zapisane mam, że koleżanka korzysta z hostingu w Home.pl (Business Cloud), co od razu wzbudziło moje obawy, co do tego, że cała operacja przebiegnie bez problemów…
Para-CRON w Home.pl
Pierwsza decyzja jaką musieliśmy podjąć, to czy instalacja będzie na dedykowanej domenie lub subdomenie, czy w katalogu. Domena lub subdomena mimo, iż wydawała się najlepszym wyjściem, to oznaczałaby zakup kolejnego certyfikatu SSL, co w Home.pl akurat jest relatywnie tanie, ale tylko w pierwszym roku.
Stąd zapadła decyzja, że będzie podkatalog. Co oczywiście sprawiło, że pojawiło się kilka małych problemów do rozwiązania, nawet nie tyle wynikających bezpośrednio z tego, że Home.pl to – moim zdaniem – dość specyficzny hosting, i wiele – wydawałoby się – standardowych rzeczy potrafi zaskoczyć, co ogólnie z samego faktu, że instalacja nastąpiła w podkatalogu. Więcej o tym będzie przy wpisie o platformie Mautic, tutaj tylko chciałem zasygnalizować ten temat, bo…
Gdy już myślałem, że wszystkie niespodzianki za nami, okazało się, że… w panelu zarządzania usługą w Home.pl nie ma czegoś takiego jak CRON, czyli harmonogram zadań. Po prostu nie ma w panelu i tyle. Na szczęście okazało się, że o choć w panelu zarządzania usługą nie ma nic takiego, to coś w stylu CRONa zostało wdrożone, po prostu działa to na takiej zasadzie, że w odpowiednim miejscu na serwerze trzeba umieścić odpowiednio przygotowane pliki, a dalej działa (wdrożony) system.
Pliki (obsługiwane formaty/rozszerzenia: .php, .pl, .cgi, .py) związane z zadaniami umieszczamy w głównym katalogu WWW serwera, w moim przypadku jest to:
/home/nazwa_usługi/public_html
O tym jak często będzie uruchamiane dane zadania (umieszczone w pliku) decyduje… nazwa pliku. Załóżmy, że będzie to plik PHP (.php), który chcemy by był uruchamiany co 10 minut (można wybrać jeszcze co 5, 15, 20 i 30 minut). Wtedy nazwa takiego pliku (wraz z rozszerzeniem) będzie wyglądać tak:
cron-10min.php
Oczywiście niesie to za sobą pewne ograniczenia, jeśli chodzi o możliwe „czasy uruchomień” (można posiłkować się dodatkowymi warunkami w samych plikach). Ale by nie opierać się tylko na teorii – kilak przykładów:
- cron-1020.php – plik (PHP) zostanie uruchomiony codziennie, o 10:20 (poruszamy się w 5-minutowych przedziałach, czyli 0, 5, 10, 15, … 45, 55)
- cron-20min.py – plik (Python) zostanie uruchomiony co 20 (poruszamy się w wybranych 5-minutowych przedziałach, czyli 5, 10, 15, 20, 30)
Do tego możemy skorzystać z 4 zakresów powtarzalnych w dłuższych okresach, takich jak:
- hourly – o każdej pełnej godzinie (x:00)
- daily – codziennie o godzinie 1:15
- weekly – w każdą sobotę o godzinie 1:30
- monthly – każdy pierwszy dzień miesiąca o godzinie 1:45
Przynajmniej taką informację znalazłem w pomocy na stronie Home.pl (zachęcam zajrzeć) , gdy szukałem dokładnych godzin i dat dla tych powtórzeń.
Przykładowe nazwy plików:
cron-hourly.php
cron-daily.pl
cron-weekly.cgi
cron-monthly.py
W plikach (w ich zawartości) katalogi dla poszczególnych akcji (np. utworzenie pliku lub folderu, wywołanie jakiegoś skryptu PHP) liczymy od katalogu bazowego, którym jest z plikami CRONa. Tak więc jeśli chcemy uruchomić skrypt:
/home/nazwa_usługi/public_html/skrypty/skrypt.php
korzystamy ze ścieżki:
/skrypty/skrypt.php
Ze względu na wymagania związane z Mautic ja zdecydowałem się na plik CRONa w formacie PHP, gdyż dzięki temu mogę w relatywnie prosty sposób uruchomić polecenie systemowe (namiastka Basha):
<?php system( 'php7-cli /skrypty/skrypt.php'); ?>
Jeśli chcemy wywołać plik znajdujący się w innej lokalizacji niż nasz serwer w Home.pl, możemy skorzystać np. z polecenia cURL (ew. Wget):
<?php system('curl -k -s -f https://jakaś-domena/skrypty/skrypt.php'); ?>
W przypadku wspomnianego Mautica zawartość pliku może wyglądać np. tak:
<?php system('php7-cli /www/jakaś-domena/mautic/app/console mautic:segments:update'); ?>
Plik „console” faktycznie znajduje się w lokalizacji bezwzględnej:
/home/nazwa_usługi/public_html/www/jakaś-domena/mautic/app/console
Jest to tylko jedno polecenie z kilku wymaganych do prawidłowej pracy przez Mautica, ale… na resztę musicie poczekać do artykułu o tym narzędziu… ;-)
- Wakacje składkowe ZUS a zawieszenie działalności gospodarczej, czyli uważaj, bo być może nie będziesz mógł skorzystać (w 2024) - 1970-01-01
- Przykładowy kalkulator wyceny usługi druku 3D, czyli nie tylko materiał się liczy - 1970-01-01
- Home Assistant 2024.10, czyli nowa karta „nagłówek” i niedziałający TTS w ramach usługi Google Cloud - 1970-01-01
Witam, czy można jeszcze spodziewać się obiecanego wpisu o Mauticu z opisem instalacji na home.pl? ? Pytam, ponieważ właśnie próbuję to zrobić, niestety bez efektów ?
Pobrałem najnowszą wersję ze strony https://www.mautic.org/download i opierając się na wskazówkach z https://www.mautic.org/getting-started/ utworzyłem katalog „mautic” na serwerze w dwóch opcjach:
1) bezpośrednio w public_html – domena wskazująca Mautica nie ma SSL,
2) jako podkatalog mojego sklepu – jest SSL.
W obu przypadkach efekt jest inny, ale równie niezadowalający:
1) Błąd ERR_TOO_MANY_REDIRECTS
2) The site is currently offline due to encountering an error. If the problem persists, please contact the system administrator.
System administrators, check server logs for errors.
W opcji 2, żeby nie było zbyt łatwo, w katalogu app/logs hula wiatr, a plików z logami nikt nie widział…
Również witam. Mautic na pewno się pojawi, mam nadzieję, że prędzej niż później, ale… raczej na pewno nie będzie to oparte o hosting Home.pl, bo ku mojej radości udało mi się wszystkich nowych klientów, co tam coś mieli zmigrować… ;-) Co do błędów, to mogę mieć jakieś przypuszczenia, ale „na sucho” to tylko zgadywanie, które pewnie jeszcze nie będzie nic warte…
Przyznaję, że Home.pl jest… specyficzny ;). Gdzie w tej sytuacji sugerowałby Pan postawić Mautica? Na angielskojęzycznych stronach trafiłem m.in. sugestię, aby zrobić to np. tutaj – https://aws.amazon.com/marketplace/pp/B0731D8KQ3. Najchętniej postawiłbym go jednak razem ze swoim sklepem, żeby mieć wszystko razem. Stąd próby na Home.pl.
PS. Mogę jednak prosić o te zgadywanki? A nuż pomogą :)
Zgadzam się, że hosting w Home.pl to – w moim odczuciu – dość specyficzna przygoda, i jeśli gdzieś dzieje się coś dziwnego, to zazwyczaj u jakiegoś klienta właśnie tam. Stąd zazwyczaj pierwszą decyzją w przypadku nowego klienta, który ma tam hosting jest przygotowanie planu migracji.
AWS jest OK, ale… Jest to też specyficzna usługa, również pod względem rozliczeń, stąd nie jest to rozwiązanie dla każdego. Jeśli Mautic i sklep na jednej maszynie – zwłaszcza, gdy jest tam większy ruch – to można, zamiast hostingu (współdzielonego) postawić wszystko na VPSie. Niestety tu dochodzi kwestia trochę bardziej złożonej administracji, ale też bez przesady… Można też skorzystać z VPSa z administracją. Ja zazwyczaj korzystam z Hitme.pl (serwer VPS, na którym działa m.in. Webinsider.pl), DigitalOcean (mam tutaj serwer m.in. z produkcyjnym wdrożeniem oprogramowania Mautic), e24cloud czy ArubaCloud (mam tam kilka testowych serwerów po 4 zł za miesiąc, m.in. na jednym z nich działa testowa wersja Mautica). Ostatnio też sporo korzystam z różnych rozwiązań od Alibaba Cloud (obecnie będą to głównie usługi typu S3, ale nie tylko).
Strzelanie z takim zakresem informacji, jaki mam naprawdę mija się z celem. Ale jakbym miał od czegoś zacząć, to pewnie sprawdziłbym konfigurację związaną z HTTPS/SSL… I na pewno logi, jeśli jest taka możliwość.
Jest duża szansa, że jednak uda mi się postawić Mautica na Home :)
Udało mi się już uruchomić stronę instalacyjną w opcji z osobną domeną. Rozwiązaniem okazała się… zmiana wersji z 2.15.1 na 2.14.2… Musiałem jeszcze w pliku .htaccess zmienić wersję php na niższą dla Mautica, ale poszło.
Wciąż jednak nie udaje mi się dojść do tego etapu w opcji z podkatalogiem w katalogu mojego sklepu. Nie pomaga tutaj niestety moja marna znajomość .htaccessa i reguł RewriteRule. Wciąż motam się między dwoma problemami:
1) Wpisując adres https://webinsider.pl/mautic/ automatycznie jestem przekierowywany do pliku index.php z głównego katalogu sklepu.
2) Lub pojawia się poniższy błąd. Co ciekawe, w wersji z podkatalogiem też takiego pliku w tej ścieżce nie znalazłem, a działa poprawnie.
mautic.WARNING: PHP Warning – include(/mautic/vendor/composer/../friendsofsymfony/rest-bundle/FOS/RestBundle/Util/Inflector/InflectorInterface.php): failed to open stream: No such file or directory – in file /mautic/vendor/composer/ClassLoader.php – at line 444 [] []
Czy mając powyższe informacje, przychodzi Panu do głowy jakieś rozwiązanie? :)
No powinno się udać. Sam pod koniec 2018, dla jednego z klientów uruchamiałem właśnie w Home.pl Mautica, na ich hostingu (Business Pro czy jakoś tak), i w podkatalogu głównej domeny. Ratowanie się instalacją starszej wersji jakiegokolwiek skryptu nie wydaje się najlepszym wyjściem, zwłaszcza gdy będziemy tam mieli dane osobowe. Tak samo zaniżanie wersji PHP, zwłaszcza 5.6 lub niżej.
Nie mam jak teraz tego przetestować, ale mam notatki, i mam tam informację, by w regułach „RewriteRule” w pliku .htaccess zamienić „L” na „END”, oraz na górze pliku .htacess znajdującego się w katalogu Mautica dać zapis:
I jeden zapis dotyczący bezpośrednio Home.pl, by w pliku php.ini (w głównym katalogu domeny) dać:
Dziś niestety nie bardzo mam czas by odpalić testową instancję Mautica, więc mogę podać tylko to, co mam w notatkach z ostatniej instalacji właśnie w Home.pl (na ich hostingu).
Bardzo dziękuję za pomoc, działa! :) Teraz pozostaje już tylko konfiguracja :)
Wersję PHP musiałem cofnąć tylko z 7.2 do 7.1 (i tylko dla tego katalogu). Skoro Mautic sam mi wypluwał błąd z informacją, że nie obsługuje 7.2.14 i prosi o downgrade, to nie bardzo widziałem inne rozwiązanie ;)
No to dobrze, że działa. Choć z tym, że „pozostała już tylko konfiguracja”, to nie wiem, czy mogę się zgodzić, bo moim zdaniem – patrząc na możliwości Mautica – dopiero w tym momencie zaczyna się zabawa. Ale już w tym bardziej pozytywnym znaczeniu… ;-)
Tak, konfigurację bardziej traktuję w kategoriach „zabawy” :). Trochę mi to niestety zajmie, bo teraz mam problem z czasem – sklep to moje dodatkowe zajęcie, a i rodzina się niedawno powiększyła. Ale jak mawiał Leo Beenhakker – „little by little” ?
Przy okazji zapytam jeszcze czy do wysyłki maili z Mautica korzystał Pan z zewnętrznych narzędzi typu Amazon SES, Elastic, Sendgrid, czy tylko z napisanych przez siebie skryptów PHP wysyłanych z hostingu? Do tej pory korzystałem z drugiego rozwiązania + PHP Mailer + cron i zastanawiam się czy przy małym sklepie jest sens inwestowania w komercyjne rozwiązania. Większość maili wysyłam do Polski, trochę do Niemiec i pojedyncze do kilku innych krajów.
Choć mam własny serwer pocztowy (np. MailCow), to tam, gdzie dostarczalność wiadomości ma dla mnie znaczenie, to zazwyczaj sięgam po zewnętrzne usługi SMTP – Mailgun (np. wiadomości z VPSów), SparkPost (np. wiadomości z WordPressów), czy krajowy EmailLabs (gdy zależy mi lub klientowi, by wszystko było w kraju). Zwłaszcza że większość tego typu serwisów oferuje wysyłkę 1000-1200 wiadomości w miesiącu bezpłatnie (SparkPost kiedyś dawał 100 000 miesięcznie, ale to już przeszłość… przynajmniej dla nowych kont).
Amazon SES też jest OK, choć w ich usługach zawsze mnie „przeraża” ich relatywnie skomplikowany model rozliczania. Nawet jeśli to tylko pozory. A tak serio, to ja jakoś w kierunku AlibabaCloud powędrowałem, gdzie mam większość usług co w Amazonie, a jakoś bardziej intuicyjne mi się to wszystko wydaje. Masz tam też odpowiednim Amazon SES, czyli DirectMail: 200 wiadomości dziennie za free, dalej 0.29 USD za każde 1000.