Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Co polecacie na hosting pod blog Wordpressa? Chodzi o własną instalację tego CMSa, no chyba, że te oferowane na necie mają możliwość dozbrojenia całego skryptu na takiej zasadzie, że praktycznie wszystkie pliki są w posiadaniu określonego użytkownika (nie www-data, czy nobody), a serwer ma jedynie prawa odczytu plików (przez grupę). Generalnie edycja plików Wordpressa ma się odbywać przez zwykłe vi, czy tam sshfs+gui. Potrzebny również dostęp ssh i musi dać się zainstalować i działać wp-cli, który będzie zarządzał całą masą operacji, których już się nie da robić z panelu admina, np. instalowanie/aktualizowanie wtyczek, przeprowadzanie aktualizacji Wordpressa czy wgrywanie plików do galerii. Generalnie, to serwer nie ma mieć prawa zapisu żadnego miejsca w katalogu z instalacją Wordpressa, no może za wyjątkiem cache. To tak w skrócie. xD
Mam generalnie działającą stronę na localhoście (w LXC), chyba już wszystko ustawione tak jak powinno być, muszę ją tylko przenieść online i dlatego potrzebny mi jakiś hosting. Z tego co przeglądam sobie, to widzę, że chyba są jedynie dwie opcje OVH i HOME. Z tym, że ze wskazaniem na OVH jako zagraniczna jednostka z serwerami we Francji. Chodzi o unikanie lokalnych władz, chyba z wiadomego powodu. xD Jak są jeszcze jakieś alternatywy to chętnie przejrzę.
Chodzi mi o to by zarządzało się tym serwerem przez SSH, by był tam debian może być stable/testing ale ma być dostęp root. Jeśli już olać HOME i zostać przy OVH to tam są dwie opcje, które chyba pasują do mojego planu działania. Z tym, że za bardzo nie wiem, która z nich się nadaje lepiej.
Opcja pierwsza to https://www.ovh.pl/hosting/ , rozważam to, bo jest w promocji do końca miecha. W skrócie hosting + domena .eu +DNS anycast (brać, nie brać?), cert SSL będzie z Let's Encrypt (o ile się da, jak nie to opcja odpada). Koszt za pierwszy rok wyjdzie około 295zł (w promocji 117zł).
Opcja druga https://www.ovh.pl/vps/vps-ssd.xml , czyli VPS na SSD, 1vcore/2GB/10GB. Jeśli dobrze czytam, to jeden rdzeń, 2GB RAM i 10GB tego SSD, tak? W sumie na start wystarczy. Domena .pl (a nie .eu). Łączny koszt 190 zł za rok.
Co sądzicie? xD
Offline
Z tym, że ze wskazaniem na OVH jako zagraniczna jednostka z serwerami we Francji. Chodzi o unikanie lokalnych władz, chyba z wiadomego powodu. xD[/quote]
Te zagraniczne firmy bywają bardziej postępowe:Ze względów bezpieczeństwa musimy sprawdzić poprawność danych kontaktowych, które Państwo wprowadzili w koncie klienta OVH.
Usługi OVH są przeznaczone dla osób pełnoletnich zamieszkałych w Polsce oraz firm prowadzących działalność w Polsce, dlatego prosimy o dostarczenie:
W przypadku osoby fizycznej:
- kopii dokumentu tożsamości potwierdzającego imię i nazwisko
podane podczas rejestracji oraz datę urodzenia.
Dokumenty prosimy przesłać w odpowiedzi na naszą wiadomość.
Z poważaniem,
Biuro Obsługi Klienta OVH[/quote]
Ja im podziękowałem…
Domenę lepiej kup osobno bez żadnych pseudo promocji.Offline
No z tym skanem dowodu to faktycznie coś polecieli.
A te hostingi www odpadają? Tylko VPS mi zostaje, by się bawić tak jak chcę? xD
Tak sobie porównuję te oferty i wychodzi jednak, że ten VPS OVH jest o wiele tańszy. Jeszcze sobie rzuce okiem na HOME.
Ostatnio edytowany przez morfik (2016-07-18 18:26:07)
Offline
jeśli warunkiem ma być - jak pisałeś - dostęp do roota, to albo vps albo dedyk.
ewentualnie pecet w domu i jakieś poludzkie połączenie ze światem.
Offline
https://www.time4vps.eu/pricing/
Nie wiem, nie zagłębiałem się. Znajomy kiedyś podrzucił mi link, ceny zachęcające, więc... Nie wiem gdzie jest haczyk, bo go nie szukałem.
Offline
[quote=morfik]Ja chyba jednak wezmę ten VPS z OVH — jest 2x tańszy i 2x lepszy gabarytowo w porównaniu do tych pozostałych. xD[/quote]
Dostęp do roota daje duże możliwości konfiguracyjne wpływające na bezpieczeństwo.
Np serwer (publiczny) www - polecam Nginxa, i interpreter PHP mogą mieć zablokowany zapis w folderach ze skryptami PHP,
(różni użyszkodnicy systemowi), do tego user do bazy od strony publicznej tylko SELECT w bazie, (ewentualnie zapis tylko w tabeli wp_post. i brak dostępu do tabeli wp_users), a backend administracyjny schowany za certyfikatem PKCS#12 na np Lighttpd - który miałby dostęp do zapisu w całej bazie i w skryptach - do aktualizacji i administracji.
W ten sposób ~95% dziur w WP będziesz miał z głowy.
Przykładowy wp-config z opcją różnych userów do bazy (z różnymi uprawnieniami):
<?php if (strstr($_SERVER["HTTP_HOST"], 'wpadmin.example.tld')) { if(strstr($_SERVER["SERVER_ADDR"], '127.0.0.1')) { define('DB_NAME', 'wordpress4'); define('DB_USER', 'wordpress4admin'); define('DB_PASSWORD', 'bardzostrasznehasełko'); define('DB_HOST', 'localhost:/var/run/mysqld/mysqld.sock'); define('FS_METHOD', 'direct'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); } } elseif (strstr($_SERVER["SSL_CLIENT_VERIFY"], 'SUCCES')) { if(strstr($_SERVER["SSL_CLIENT_COMMONNAME"], 'EXAMPLE')) { define('DB_NAME', 'wordpress4'); define('DB_USER', 'wordpress4admin'); define('DB_PASSWORD', 'bardzostrasznehasełko'); define('DB_HOST', 'localhost:/var/run/mysqld/mysqld.sock'); define('FS_METHOD', 'direct'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); } } else { define('DB_NAME', 'wordpress4'); define('DB_USER', 'wordpress4'); define('DB_PASSWORD', 'innebardzostrasznehasełko'); define('DB_HOST', 'localhost:/var/run/mysqld/mysqld.sock'); define('FS_METHOD', 'direct'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', ''); }
User wordpress4 ma minimalne konieczne uprawnienia w bazie.
Przykłąd zawiera 2 userów i 3 przypadki, publiczny, zapis w bazie dla zwykłej adminki - wpisy, komentarze, i proxy na drugi serwer, który ma prawo zapisu w skryptach - aktualizacja, itp.
Do tego trzeba tylko taki drobiazg:
define( 'WP_CONTENT_URL', 'https://blog.example.tld/wp-content' ); define( 'UPLOADS', 'media/' );
Bo inaczej po dodaniu obrazka przez backend administracyjny będzie ten obrazek też schowany za certem PKCS#12, czyli niedostępny dla publiczności.
Uprawnieniami chmod na dwóch userów systemowych to chyba sobie poradzisz, mam taką skromną nadzieję. :D
Pozdro
Offline
Ja tym blogiem w dużej mierze będę zarządzał przez shell za pomocą wp-cli. Dlatego wszystkie pliki (za wyjątkiem cache) będą w posiadaniu zwykłego usera, a serwer będzie miał jedynie prawa odczytu bez możliwości zapisu. Czyli żadnych plików nie będzie miał prawa wgrać/zmienić, ani nawet dokonać aktualizacji wtyczek/theme/wordpressa. By to zrobić trzeba będzie się zalogować na serwer po ssh jako zwykły user i wydać np. takie polecenia:
wp db export baza.sql" wp theme update --all wp plugin update --all wp core update --minor
Te powyższe można wrzucić do crona, bo raczej nie powinny sprawiać problemów.
Ten wp-cli potrafi chyba robić wszystko to co się da zrobić przez panel administracyjny, oraz pewne rzeczy, których z poziomu panelu się nie da zrobić. Ja przez panel admina to tylko będę jedynie dodawał text wpisu, ogarniał tagi, SEO i inne takie związane z zapisywaniem bazy, nic więcej. Mam tam dwóch userów, jeden jest od administracji blogiem, który będzie konfigurował w dużej mierze same wtyczki i po skonfigurowaniu nie będzie używany. Drugi user to typowy autor, który ma sporo niższe prawa w Wordpressie w porównaniu do tego konta admina. komentarze będą na disqus i praktycznie nikt nie będzie musiał sobie u mnie konta na blogu tworzyć, a mi odpadnie zarządzanie userami. Cały blog będzie po wymuszonym SSL. [s]Tylko panel admina muszę jeszcze schować[/s]. Już schowany za pomocą tych certów, nawet nie takie trudne to było. xD
Ostatnio edytowany przez morfik (2016-07-19 11:03:01)
Offline
Wp-cli znam i używam, ale to narzędzie jest bardzo odległe od doskonałości.
Offline
Jak miałem wg przepisu postu #8 ustawioną bazę z obciętymi upranwieniami, to wp-cli usilinie brał użyszkodnika bazy takiego jak strona publiczna, i się wywalał z powodu braku zapisu do bazy,
Nie udało mi się tak przerobić konfigu, żeby wp-cli brał użyskodnika administracyjnego, albo żeby mu parametry do bazy podrzucić przez zmienną albo plik konfiguracyjny.
WP i wtyczki zawsze miewają tyle podatności typu SQL-cośtam, że bezpieczeństwo bazy jest dla mnie ważniejsze niż ten skrypt.
Pozdro
Offline
Z tego co się orientuję, to wp-cli bierze dane do bazy z pliku wp-config.php . Zatem jak masz tam jednego usera do bazy, to później wp-cli go podbierze i będzie na nim operował. Nie wiem czy da radę to zmienić, tak by wordpress operował na jednym userze, a wp-cli na drugim. Zapytałem się tam u nich o to, zobaczymy co odpowiedzą.
Ostatnio edytowany przez morfik (2016-07-20 11:58:13)
Offline
swoją drogą linux mint miał już drugie włamanie w tym roku
przez dziury w wordpresie.
Offline
Ci z wp-cli nakierowali mnie jak przekazać ich narzędziu inne dane do bazy. Ostatecznie wyszło mi coś takiego:
if ( defined( 'WP_CLI' ) && WP_CLI ) { define('DB_USER', 'wp1'); define('DB_PASSWORD', 'pass1'); } elseif (strstr($_SERVER["SSL_CLIENT_VERIFY"], 'SUCCES')) { if (strstr($_SERVER["SSL_CLIENT_COMMONNAME"], 'morfik')) { define('DB_USER', 'wp2'); define('DB_PASSWORD', 'pass2'); } } else { define('DB_USER', 'wp3'); define('DB_PASSWORD', 'pass3'); }
W skrócie 3 różnych użytkowników z różnymi prawami. Pierwszy ma najszersze i odnosi się do wp-cli. Później jest konto autora na blogu, które ma prawa do zapisu określonych tabel, no i na końcu jest zwykły user, który ma jedynie select. Także chyba to wystarczy. xD
Ostatnio edytowany przez morfik (2016-07-20 16:14:38)
Offline
[quote=morfik]Ci z wp-cli nakierowali mnie jak przekazać ich narzędziu inne dane do bazy. Ostatecznie wyszło mi coś takiego:
if ( defined( 'WP_CLI' ) && WP_CLI ) { define('DB_USER', 'wp1'); define('DB_PASSWORD', 'pass1'); } elseif (strstr($_SERVER["SSL_CLIENT_VERIFY"], 'SUCCES')) { if (strstr($_SERVER["SSL_CLIENT_COMMONNAME"], 'morfik')) { define('DB_USER', 'wp2'); define('DB_PASSWORD', 'pass2'); } } else { define('DB_USER', 'wp3'); define('DB_PASSWORD', 'pass3'); }
W skrócie 3 różnych użytkowników z różnymi prawami. Pierwszy ma najszersze i odnosi się do wp-cli. Później jest konto autora na blogu, które ma prawa do zapisu określonych tabel, no i na końcu jest zwykły user, który ma jedynie select. Także chyba to wystarczy. xD[/quote]
To spróbuję, może się przyda i u mnie.
Na wszelki wypadek dzięki z góry. ;)
Ostatnio edytowany przez Jacekalex (2016-07-20 18:40:50)
Offline
Ja właśnie skończyłem testować u siebie i działa, tylko trzeba było nieco rozszerzyć uprawnienia dla tego ostatniego użytkownika, bo widać chce: SELECT,INSERT,UPDATE,DELETE na wp_options i wp_postmeta . Dałem mu i póki co nie widzę, by coś tam w logu było zwracane odnośnie problemów z uprawnieniami. xD
Offline
[quote=morfik]Ja właśnie skończyłem testować u siebie i działa, tylko trzeba było nieco rozszerzyć uprawnienia dla tego ostatniego użytkownika, bo widać chce: SELECT,INSERT,UPDATE,DELETE na wp_options i wp_postmeta . Dałem mu i póki co nie widzę, by coś tam w logu było zwracane odnośnie problemów z uprawnieniami. xD[/quote]
Która wersja Wordpressa, 4.4.2 czy 4.5.3?
Pytam, bo mam tu pod ręką Wp 4.4 z Woocommerce - ten ma zupełnie inną strukturę bazy, ale przy standardowym 4.4 zapis na publicznym potrzebny był tylko do komentarzy, wp-options sobie nie przypominam.
W weekend pobawię się 4.5.3.
Offline
Mam 4.5.3, a na dniach wyjdzie zaraz 4.6.
Z tego co widzę po logu, to tam jest coś o _transient_doing_cron w przypadku wp_options. Z tego co pamiętam, to wordpress sobie odświeża zadania min. przez wizyty użytkowników na blogu.
Ostatnio edytowany przez morfik (2016-07-21 05:45:21)
Offline
Mam już domenę i VPSa, z OVH wszystko. Nie było żadnych problemów i pytań o dowody i inne takie. Nikt się ze mną nawet w ogóle nie kontaktował. Włączyli wszystko przed chwilą. Teraz tylko się wgrać tam. xD
Offline
Time (s) | Query |
---|---|
0.00093 | SET CHARSET latin2 |
0.00006 | SET NAMES latin2 |
0.00565 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.144.108.200' WHERE u.id=1 |
0.00346 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.144.108.200', 1732969418) |
0.00098 | SELECT * FROM punbb_online WHERE logged<1732969118 |
0.00851 | SELECT topic_id FROM punbb_posts WHERE id=303441 |
0.00014 | SELECT id FROM punbb_posts WHERE topic_id=28798 ORDER BY posted |
0.00094 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=28798 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00255 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=28798 ORDER BY p.id LIMIT 0,25 |
0.00576 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=28798 |
Total query time: 0.02903 s |