Problemy z pocztą – Komunikaty wiadomości zwrotnych

Podczas korzystania z poczty elektronicznej niejednokrotnie zdarza się, że wysyłając e‑mail otrzymujemy wiadomość zwrotną o temacie: „Mail delivery failed: returning message to sender”. Przyczyn otrzymania takiej wiadomości może być wiele. Co ona oznacza oraz jakie kroki należy podjąć postaram się przybliżyć w niniejszym artykule.

Zwrotka

To popularna nazwa tego typu wiadomości zwrotnej. Wysyłana jest przez serwer osoby wysyłającej  wiadomość e-mail. Informuje ona o tym, że wiadomość wysłana przez nadawcę nie mogła zostać dostarczona do odbiorcy. W wiadomości tej zawarte są również przyczyny odrzucenia takiej wiadomości przez serwer osoby, do której wysyłaliśmy e-mail. Konstrukcja takiej wiadomości wygląda następująco: This message was created automatically by mail delivery software. A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed: Przyczyna: tutaj najczęściej znajduje się przyczyna niedostarczenia wiadomości  —— This is a copy of the message, including all the headers. ——  —— The body of the message is XXXXXX characters long; only the first —— XXXX or so are included here. Treść niedostarczonej wiadomości wraz z pełnymi nagłówkami. Przyczyn odrzucenia wiadomości może być wiele – zazwyczaj są one opisane stosownym kodem błędu serwera odbiorcy, a także krótką informacją o przyczynie (najczęściej w języku angielskim). Co zrobić w sytuacji, gdy otrzymamy taką wiadomość? Najlepszym rozwiązaniem jest zapoznanie się z jej treścią i próba wyeliminowania problemu, jeżeli występuje on po naszej stronie.

Kody błędów

Poniżej zamieszczone zostały najbardziej powszechne komunikaty błędów oraz porady jak należy postępować w danym przypadku. Komunikat błędu (przyczyna) podany w wiadomości zwrotnej: 1. Błędny adres e-mail – konto na, które została wysłana wiadomość nie istnieje. Przykład:

  • said: 550 „[nazwa_konta]”: No mailbox here by that name (#5.1.1) (in reply to RCPT TO command)
  • said: 550 sorry, no mailbox here by that name (#5.1.1) (in reply to RCPT TO command)
  • said: 550 No such user here

Jak rozwiązać problem?

  • sprawdzić czy we wpisanym przez nas adresie nie ma literówek
  • skontaktować się z odbiorcą w alternatywny sposób

2. Zbyt duża wiadomość – serwer odbiorcy nie mógł odebrać wiadomości ze względu na jej wielkość Przykład:

  • said: 552 Error: message to large

Jak rozwiązać problem?

  • podzielić wiadomość na mniejsze części
  • przekazać załącznik za pomocą serwisu do udostępniania plików
  • jeżeli odbiorca posiada swój własny serwer można zasugerować zmianę konfiguracji, tak aby większy rozmiar wiadomości był obsługiwany

3. Konto odbiorcy jest przepełnione – w takiej sytuacji nie ma możliwości zapisania maila w skrzynce odbiorcy Przykład:

  • I’m afraid I wasn’t able to deliver your message to the following addresses. This is a permanent error. I’ve given up. Sorry it didn’t work out: user is over quota
  • said: 552 5.2.2 User mailbox exceeded quota limit (…) (in reply to RCPT TO command)

Jak rozwiązać problem?

  • skontaktować się z odbiorcą w alternatywny sposób i poinformować go o problemie.

4. Wiadomość została odrzucona z powodu złej reputacji serwera nadawcy, wysyłki spamu To jedna z bardziej powszechnych przyczyn otrzymywania wiadomości zwrotnych. W poprzednich przykładach problem leżał po stronie odbiorcy – tutaj mamy sytuację, w której serwer nadawcy odrzuca naszą wiadomość z powodu znajdowania się naszego serwera na czarnych listach spamowych. Wiadomość może być również zaklasyfikowana jako spam przez filtry antyspamowe serwera odbiorcy. Przykład:

  • SMTP error from remote mail server after initial connection: said : 550 Address IP is the source of spam. Client host blocked for spamming issues: http://csi.cloudmark.com/reset-request/?ip=adres_ip
  • [nazwa/adres IP serwera odbiorcy] does not like recipient. Remote host said: 550-Email [nazwa naszego konta] blocked by BARRACUDACENTRAL (RBL -550 barracudacentral.org) Giving up on [nazwa/adres IP serwera odbiorcy]
  • 554 5.7.1 Mail [ID wysłanej wiadomości] apperas to be unsolicited, please resend with the code [przykładowy kod] appended to email subject and ask to have your sender email whitelisted (the code [przykładowy kod] changes each 24 hours). 221 closing transmition

Jak rozwiązać problem?

  • jeżeli posiadamy pocztę na koncie hostingowym to należy zgłosić problem dostawcy usługi
  • w przypadku posiadania serwera VPS lub dedykowanego, którym sami zarządzamy należy: znaleźć źródło spamu, usunąć przyczynę, a następnie usunąć adres IP swojego serwera z czarnych list spamowych
  • poprosić odbiorcę o dodanie naszego adresu e-mail do białej listy nadawców

Usuwanie źródła spamu

Obecność serwera na listach spamowych

W sytuacji, gdy treść wiadomości zwrotnych sugeruje, że nasz serwer znajduje się na czarnych listach spamowych można sprawdzić taką obecność za pomocą narzędzi dostępnych on-line. Na początek należy poznać adres IP swojego serwera pocztowego, a następnie przeprowadzić sprawdzenie na jednej ze stron umożliwiających skanowanie list RBL. 1. Sprawdzenie adresu IP serwera pocztowego

  • ze strony https://www.whatsmydns.net sprawdzamy rekord MX naszej domeny
  • w systemach Linux można użyć w tym celu polecenia: # host -t mx moja_domena
  • dla otrzymanego wyniku sprawdzamy rekord A za pomocą serwisu whatsmydns lub za pomocą polecenia: # ping mx_mojej_domeny

2. Sprawdzenie obecności adresu IP serwera pocztowego na liście RBL – w tym celu należy posłużyć się jednym z poniższych serwisów:

3. W momencie, gdy nasz serwer znajduje się na czarnych listach spamowych RBL należy usunąć źródło spamu i zdjąć adres IP serwera z odpowiednich list RBL. Samo usunięcie adresu IP z listy RBL bez usunięcia przyczyny spowoduje, że nasz serwer ponownie znajdzie się na tej liście.

Lokalizowanie źródła spamu na serwerze

W serwerach opartych o system Linux w roli serwera pocztowego (MTA – Mail Transfer Agent) występują najczęściej Exim lub Postfix. Spam może być wysyłany z serwera z powodu dwóch zasadniczych przyczyn:

  • wycieku hasła do już istniejącego konta e-mail
  • za pomocą złośliwego skryptu, który znalazł się na serwerze przez luki bezpieczeństwa w znajdujących się na serwerze aplikacjach

Spam zazwyczaj wysyłany jest masowo do ogromnej puli adresów e-mail. Adresy te są często wygenerowane losowo – z tego powodu w wielu przypadkach wysyłane w ten sposób wiadomości spamowe nie są dostarczane do adresatów. Wiadomość, kßóra nie może zostać dostarczona trafia do tzw. kolejki wiadomości na serwerze, gdzie oczekuje na ponowną wysyłkę. Jeżeli z naszego serwera wysyłany jest spam to z pewnością w kolejce znajduje się kilka lub nawet kilkanaście tysięcy oczekujących na wysyłkę wiadomości. Poniżej przedstawiam metodę w jaki sposób można temu zaradzić. 1. Sprawdzenie ilości maili w kolejce:

(Exim)# exim -bpc

(Postfix)# postqueue -p | tail -n 1 | cut -d' ' -f5

2. Jeżeli otrzymaliśmy dużą liczbę wszystkich maili znajdujących się w kolejce to należy bliżej się im przyjrzeć. Wyświetlenie listy wiadomości w kolejce:

(Exim)# exim -bp
(Exim)# exim -bp > /sciezka/do/pliku # zapisanie wyniku polecenia do pliku tekstowego w celu łatwiejszego sprawdzenia zawartości kolejki

(Postfix)# postqueue -p
(Postfix)# postqueue -p > /sciezka/do/plik

Wynik powyższego polecenia należy uważnie przeanalizować w poszukiwaniu nieznanych, przypadkowych adresów odbiorców. Następnie wybrać adresy, które wydają nam się podejrzane i wyszukać o nich informacji w logach systemowych. 3. Wyszukiwanie szczegółów wiadomości wysłanych na „podejrzany” adres e-mail w mainlogu serwera Exim (ścieżka do pliku z logiem może się różnić w zależności od konfiguracji):

(Exim)# cat /var/log/exim/mainlog | grep "podejrzany_adres_e-mail"

(Postfix)# cat /var/log/maillog | grep "podejrzany_adres_e-mail"

Po wyświetleniu z logów listy wiadomości,  w których wymianie uczestniczył szukany adres e-mail należy wybrać jedną z nich i wyszukać w logu serwera poczty szczegółów:

(Exim)# cat /var/log/exim/mainlog | grep "message_id"

(Postfix)# cat /var/log/maillog | grep "message_id"

Wyświetlą się szczegóły na temat szukanej wiadomości oraz najważniejsze – czyli źródło wysyłki. Jeżeli źródłem wysyłki jest konkretne konto e-mail znajdujące sie na serwerze to prawdopodobnie doszło do wycieku hasła do tego konta. W takiej konieczna jest jak najszybsza zmiana hasła do tego konta e-mail Jeżeli źródłem spamu jest konretny skrypt to w logu często podana jest ścieżka to tego skryptu. W takiej sytuacji należy go usunąć i ewentualnie przeskanować serwer oprogramowaniem antywirusowym. 4. Powtarzać czynności z kroku od 1 do 3 aż do skutku. Na koniec należy wyczyścić kolejkę maili na serwerze z zamrożonych i oczekujących wiadomości:

(Exim)# exiqgrep -z -i | xargs exim -Mrm # usuwa wszystkie zamrożone wiadomości w kolejce
(Exim)# exiqgrep -Mrm "message_id" # usuwa wiadomość o konkretnym ID


(Postfix)# postqueue -d ALL # usuwa wszystkie wiadomości z kolejki
(Postfix)# postqueue -d "message_ID" # usuwa wiadomość o konkretnym ID

Po dokładnym wyczyszczeniu kolejki i eliminacji źródeł spamu można przystąpić do usuwania adresu IP serwera z czarnych list spamowych RBL.

Podsumowanie

Podczas korzystania z poczty elektronicznej można trafić na wiele bardziej skomplikowanych przykładów zwrotek oraz przyczyn jakie za nimi się kryją. Opisane tutaj metody rozwiązują większość popularnych problemów związanych z wiadomościami zwrotnymi. W przypadku, gdy treść otrzymanego komunikatu jest niezrozumiała warto poszukać porad w Internecie – istnieje duże prawdopodobieństwo, że ktoś wcześniej trafił na podobny problem. Jeżeli mamy taką możliwość to warto również skorzystać z pomocy doświadczonego administratora systemów, który dokładnie przeanalizuje problem.

Co zrobić, jeśli nie pamiętam hasła do panelu WordPress?

W celu zmiany hasła do cms-a WordPress, sugerujemy w oknie logowania, pod adresem http://twojadomena.pl/wp-admin , skorzystać z opcji przypomnienia hasła. Zostanie ono przesłane na adres e-mail administratora, ustalony podczas instalacji lub podczas tworzenia konta administracyjnego.

W sytuacji kiedy zmiana hasła nie jest możliwa wg. powyższego schematu, istnieje możliwość jego zmiany bezpośrednio w bazie MySQL, z której korzysta Twój system WordPress.

Zmiana hasła bezpośrednio w bazie danych MySQL (za pośrednictwem narzędzia phpMyAdmin) jest najbardziej skutecznym rozwiązaniem. Po połączeniu się z odpowiednią bazą danych, możliwa jest zmiana hasła dla wybranego użytkownika.

Co zrobić, jeśli nie pamiętam hasła do panelu WordPress?

Pamiętaj, że oprogramowanie WordPress jest zewnętrznym oprogramowaniem, które nie jest objęte wsparciem technicznym home.pl. W przypadku pojawienia się wątpliwości dot. wykonywanych zmian lub chęci uzyskania szczegółowych informacji dot. przyczyn zaistniałej sytuacji, sugerujemy kontakt z oficjalnym wsparciem dla tego oprogramowania.

W celu zmiany hasła do zaplecza WordPress, sugerujemy w oknie logowania, pod adresem http://twojadomena.pl/wp-admin , skorzystać z opcji przypomnienia hasła. Zostanie ono przesłane na adres e-mail administratora, ustalony podczas instalacji lub podczas tworzenia konta administracyjnego.

W sytuacji kiedy zmiana hasła nie jest możliwa wg. powyższego schematu, istnieje możliwość jego zmiany bezpośrednio w bazie MySQL, z której korzysta Twój system WordPress.

Zmiana hasła bezpośrednio w bazie danych MySQL (za pośrednictwem narzędzia phpMyAdmin) jest najbardziej skutecznym rozwiązaniem. Po połączeniu się z odpowiednią bazą danych, możliwa jest zmiana hasła dla wybranego użytkownika.

Jak zmienić hasło dla administratora WordPress za pomocą MySQL?

  1. Zaloguj się do bazy danych, na której zainstalowany jest system WordPress. Logowanie do bazy danych należy przeprowadzić za pośrednictwem narzędzia phpMyAdmin.
    WAŻNE! Login i hasło do bazy danych MySQL zapisane są w pliku “/wp-config.php” znajdującym się w katalogu, w którym zainstalowanym jest Twój system WordPress. Login i hasło do bazy danych zapisane są w polach “DB_USER” oraz “DB_PASSWORD”. Jeśli nie pamiętasz hasła do bazy danych, podczas edycji pliku “/wp-config.php” możesz je poznać.
  2. Jako nazwę użytkownika podaj nazwę bazy danych, w której zainstalowany jest CMS WordPress.
  3. Po zalogowaniu, kliknij nazwę bazy danych, która znajduje się w lewym górnym rogu ekranu.
  4. Następnie znajdź i kliknij nazwę tabeli “wp_users”. Powinieneś ją znaleźć po lewej stronie ekranu na liście wszystkich tabel.                                                                                                                                                      „Pamiętaj, że prefix bazy danych (np. “wp_”) może być inny dla Twojej instalacji CMS WordPress.”
  5. Kliknij przycisk “Edytuj”, który znajduje się przy wybranym użytkowniku (np. “admin”).                                             „WAŻNE! Zwróć uwagę, że powinieneś zmienić hasło dla użytkownika z uprawnieniami administracyjnymi, aby odzyskać dostęp do cms-a WordPress.”
  6. W polu “user_pass” wpisz nowe hasło. Nie zapomnij o wybraniu w kolumnie “funkcja” opcji “MD5”.                    
  7. Kliknij przycisk “Wykonaj”, który znajduje się na dole ekranu.
  8. Po zapisaniu zmian spróbuj zalogować się do zaplecza WordPress (http://twojadomena.pl/wp-admin) za pomocą nowego hasła.

 

FTP w konsoli

FTP (File Transfer Protocol) to protokół służący do wymiany plików pomiędzy klientem a serwerem. FTP jest powszechnie używany przez webmasterów do przesyłania stron internetowych na serwer WWW.

Nowoczesne programy takie jak FileZilla oferują zaawansowane funkcje, m.in. wznawianie transferu czy szyfrowanie transmisji. Czasami jednak nie mamy do dyspozycji takiego klienta FTP. Z pomocą przychodzi wówczas program ftp, dostępny zarówno w systemie Windows, jak i większości systemów uniksowych i uniksopodobnych.

Ftp działa w konsoli/wierszu poleceń. Jest to program interaktywny – polecenia wprowadza się po znaku zachęty.

 

Uruchamianie programu

Aby uruchomić klienta w systemie Windows, wchodzimy do Menu Start, wybieramy pozycję „Uruchom” i w wyświetlonym okienku wpisujemy:

ftp

W systemie Linux/Unix wydajemy w konsoli polecenie:

$ ftp

Nawiązywanie połączenia z serwerem

Po uruchomieniu programu zostanie wyświetlony znak zachęty (ftp>). Aby połączyć się z serwerem FTP wydajemy polecenie:

ftp> open adres_serwera

Zostaniemy poproszeni o podanie nazwy użytkownika i hasła. W przypadku logowania anonimowego, jako nazwę użytkownika wprowadzamy „anonymous”. Jeżeli ukaże się błąd:

530 Login incorrect

Oznacza to, że podaliśmy błędną nazwę użytkownika i/lub hasło. Aby spróbować ponownie, wprowadzamy komendę „user”, która ponownie zapyta nas o login i hasło. Gdy logowanie powiodło się, otrzymamy komunikat:

230 User nazwa_użytkownika logged in.

Podstawowe operacje

Możemy teraz przystąpić do transferu plików. Na początek warto wyjaśnić dwa pojęcia.

Lokalny katalog roboczy, to katalog, do którego będą kopiowane pliki pobrane z serwera. Pliki wysyłane na serwer będą pobierane z tego katalogu. Aby ustawić lokalny katalog roboczy, używamy polecenia „lcd”, np.:

ftp> lcd /home/mateusz/strona

lub w przypadku systemu Windows:

ftp> lcd "C:\Documents and Settings\Mateusz\Moje dokumenty\strona"

Zdalny katalog roboczy to katalog na serwerze, do/z którego będą kopiowane pliki. Ustawiamy go komendą „cd”, np.:

ftp> cd /www/images

Aby zobaczyć, w jakim katalogu zdalnym się znajdujemy, należy użyć komendy „pwd”:

ftp> pwd
257 "/www/images" is current directory.

Polecenie „ls” wyświetla pliki i katalogi znajdujące się w zdalnym katalogu roboczym:

ftp> ls

Przesyłanie plików

Przesyłanie plików pomiędzy serwerem i klientem może odbywać się w trybie ASCII lub binarnym. W trybie ASCII niektóre bity (np. znaki końca wiersza) są modyfikowane. W przypadku trybu binarnego pliki nie są zmieniane podczas przesyłania. Niepoprawne ustawienie trybu transferu może skutkować uszkodzeniem pliku.

Ważne jest odpowiednie dobranie trybu transferu przed rozpoczęciem przesyłania plików. Tryb binarny należy zastosować dla plików wykonywalnych, archiwów, zdjęć, plików muzycznych i filmowych, dokumentów .doc i .pdf. Tryb tekstowy stosuje się m.in. do plików .txt, .html, .php, .css i innych, dla których otwarcie pliku w edytorze tekstowym zwróci czytelny tekst.

Aby ustawić typ transferu na binarny, należy wydać polecenie „binary”. Tryb ASCII ustawiamy poleceniem „ascii”. Aby dowiedzieć się, jaki tryb jest aktualnie używany, należy wydać polecenie „status”.

Po poprawnym ustawieniu trybu transferu można przystąpić do wymiany plików. Aby pobrać plik na dysk twardy, używamy komendy get:

ftp> get nazwa_pliku

Można także pobrać plik i zapisać go w katalogu roboczym pod zmienioną nazwą:

ftp> get nazwa_pliku nowa_nazwa

Istnieje także możliwość pobrania wielu plików do katalogu roboczego za pomocą jednego polecenia – „mget”:

ftp> mget plik1 plik2 plik3

Aby wysłać plik z lokalnego katalogu roboczego do katalogu zdalnego, możemy użyć polecenia „put”:

ftp> put nazwa_pliku

Można także wysłać plik pod zmienioną nazwą:

ftp> put nazwa_pliku nowa_nazwa

Możliwe jest także wysłanie na serwer wielu plików za pomocą polecenia „mput”:

ftp> mput plik1 plik2 plik3

Usuwanie plików

Usunięcie pliku odbywa się poprzez polecenie „delete”:

ftp> delete nazwa_pliku

Można także usunąć wiele plików używając polecenia mdelete:

ftp> mdelete plik1 plik2 plik3

Przerywanie połączenia

Po zakończeniu pracy należy rozłączyć się z serwerem używając komendy „disconnect”. Jeżeli nie zamierzamy łączyć się z innym serwerem (komendą „open”), możemy opuścić program poleceniem „quit”.

ftp> disconnect
ftp> quit

Inne możliwości programu

Program ftp dysponuje większymi możliwościami, niż przedstawione w artykule. Aby poznać więcej poleceń programu, należy użyć komendy „?”:

ftp> ?

Warto podkreślić, że program w systemach uniksowych jest zdecydowanie bardziej rozbudowany, niż w przypadku Windowsa. Aby poznać wszystkie możliwości programu, należy skorzystać ze strony man programu. Dla przykładu – w systemie NetBSD należy wydać następujące polecenie:

$ man 1 ftp

Hosting współdzielony, VPS czy może serwer dedykowany?

Hosting współdzielony

Inaczej serwer wirtualny. Jest to najpopularniejsze na rynku rozwiązanie, jeśli chodzi o firmowe strony internetowe oraz zaplecze dla małych serwisów i sklepów internetowych. Użytkownik otrzymuje w pakiecie odpowiednie parametry wydzielone w ramach serwera fizycznego. Dzięki hostingowi współdzielonemu właściciel serwisu internetowego otrzymuje miejsce na stronę WWW, pakiet transferu danych zapewniający obsługę ruchu na stronie,  pocztę elektroniczną i serwer FTP. Ponadto hostingowi często towarzyszą dodatkowe usługi, takie jak rejestracja domen i możliwość skorzystania z kreatora stron internetowych. Wszystkie te cechy w powiązaniu z niskim kosztem powodują, że jeszcze długo będzie to wiodąca oferta firm hostingowych.

Hosting VPS

Pod skrótem VPS kryje się angielska nazwa Virtual Private Server. Jest to rozwiązanie idące o krok dalej niż hosting współdzielony, gdzie na serwerze fizycznym mamy wydzielone niezależne jednostki wirtualne z bezpośrednim dostępem do systemu operacyjnego (tzw. konto root). Dzięki temu użytkownik może instalować na serwerze własne oprogramowanie, w większym stopniu decydować o parametrach hostingu, a przede wszystkim zarządzać nim w bardziej elastyczny sposób, co jest przydatne dla bardziej złożonych projektów, np. rozbudowanych baz danych czy często odwiedzanych serwisów. Najczęściej VPS oznacza też mniej klientów „dzielących” się jedną fizyczną maszyną, co oczywiście przekłada się na większą dostępną moc dla serwisu klienta.

Serwer dedykowany

Najbardziej rozwinięte projekty internetowe wymagają nie tylko dużej mocy oraz powierzchni, ale pełnej kontroli nad systemem operacyjnym, dlatego w takich przypadkach zalecane jest skorzystanie z oferty serwera dedykowanego. Oznacza to wynajęcie na własność całego, fizycznego serwera o określonej konfiguracji. Każdy projekt jest inny, dlatego tutaj mamy do czynienia z dużą dowolnością wyboru sprzętu i oprogramowania o dużej mocy. Co istotne, wysokie koszty dzierżawy serwera są i tak korzystniejsze w porównaniu do konieczności utrzymywania mini Data Center w siedzibie firmy. Coraz częściej na rynku można znaleźć przystępne cenowo oferty serwerów dedykowanych.

Błąd 404 na podstronach WordPressa?

Może się zdarzyć, że instalacja WP przebiegnie pomyślnie, w zapleczu administratora dodacie sobie wpis lub stronę i przy kliknięciu Podejrzyj wszystko będzie w porządku. Po pomyślnym zapisaniu chcecie zobaczyć jak nowy materiał prezentuje się na stronie, a tu… Not found – 404.

W tym wpisie opiszę możliwe przyczyny takiej sytuacji, ale dotyczy to wyłącznie przypadków, w których nie działają tylko tzw. proste adresy. Czyli http://domena.xyz/folder/kategoria/nazwa-wpisu/ nie chce działać, z kolei http://domena.xyz/folder/?p=457 nie sprawia takich problemów.

Zauważyliście, że podane powyżej przykładowe adresy odnoszą się do instalacji WP umieszczonej w podfolderze? A więc nasze przyjazne linki muszą odnosić się do konkretnego folderu, a nie samej domeny.

Brak pliku .htaccess

Może się zdarzyć, że przy przesyłaniu plików przez klienta FTP sam .htaccess nie zostanie wgrany na serwer. Trzeba sprawdzić, czy .htaccess na pewno wyświetla się w katalogu WP, a w razie potrzeby dograć go lub utworzyć ręcznie (zobacz: http://codex.wordpress.org/htaccess). Należy pamiętać, iż sam plik powinien mieć odpowiednie prawa dostępu – 644.

Po pomyślnym utworzeniu .htaccess warto zalogować się do swojego zaplecza i wybrać Ustawienia » Bezpośrednie odnośniki, a następnie zapisać nowe ustawienia według własnego uznania.

Jeżeli jednak rzeczywiście na dysku nie było pliku .htaccess, to proste adresy nie będą działały niezależnie od tego, czy swojego WordPressa zainstalowaliśmy bezpośrednio w naszej domenie czy podkatalogu. Przechodzimy więc do następnej możliwej przyczyny.

Zły RewriteBase

Tu dochodzimy do sedna sprawy – dlaczego właśnie nice urls nie chcą chodzić tylko w podfolderze. Domyślnie w większości plików .htaccess mamy linijkę:

1
RewriteBase /

Sprawia ona, że oprogramowanie serwera traktuje jako ciąg do zastąpienia wszystko to, co występuje po pierwszym slashu mieszczącym się zaraz pod nazwie domeny. Aby zostawić w spokoju cały domyślny adres strony, zamieniamy powyższą linię kodu na:

1
RewriteBase /nazwa-folderu/

I analogicznie, jeśli mamy bardzo dużo stron internetowych w ramach jednej domeny, a kłopotliwa kopia WP jest bardzo zagnieżdżona stosujemy coś w stylu:

1
RewriteBase /folder/podfolder/podfolder-2/

Wtedy bez problemu dla http://domena.xyz/folder/podfolder/podfolder-2/?p=1234 będzie można używać linku http://domena.xyz/folder/podfolder/podfolder-2/kategoria/nazwa-wpisu/ czyhttp://domena.xyz/folder/podfolder/podfolder-2/2014/08/nazwa-wpisu/ albo dowolnie sformatowanego samodzielnie.

MySQL, Percona Server, MariaDB – o co z tym chodzi?

W ostatnim czasie kilkukrotnie już zdarzyło się, że osoba z którą rozmawiałem sądziła, że MariaDB to zupełnie nowy silnik bazodanowy niekompatybilny z MySQL.

Nic bardziej mylnego. Sytuacja wygląda bardzo podobnie do tej z OpenOffice sprzed kilku lat. Jak pamiętacie w 1999 roku firma Sun Microsystems przejęła produkty firmy StarDivision i udostępniła pod nazwą StarOffice. Pakiet był darmowy, ale zamknięty ze silnym wsparcie od firmy Sun. W 2002 roku pojawiła się pierwsza wersja OpenOffice, na której bazował StarOffice 6.0.
Był to bardzo popularny zabieg w tamtym czasie (patrz OpenSUSE, CentOS). Firma wydawała otwartą, darmową wersję community rozwijaną przez społeczność, następnie markowała swoją marką i rozprowadzała za odpowiednie benefity (często w formie płatnego supportu).

Nie wszystko układało się jednak najlepiej, ale w takim zawieszeniu środowisko współtwórców OO trwało przez wiele lat. W 2010 roku firma Oracle przejęła Sun i wszelkie projekty, w tym OpenOffice/StarOffice. Środowisko open-source było zaniepokojone poczynaniami Oracle (np. pozwy w sprawie korzystania z Javy w Androidzie) i postanowiono zupełnie oddzielić się od korporacyjnych wpływów – powstał LibreOffice.

To tak w sporym skrócie. Co wspólnego ma z tym MySQL? MySQL tworzony był przez szwedzką firmę MySQL AB, która została wykupiona przez Sun w 2008 roku, a ta została przejęta… Zgadza się, przez Oracle w 2010 roku.
Ale już w 2004 roku środowisko wolnego oprogramowania zaczęło mieć „problemy” z MySQL, a dokładniej programiści chociażby PHP. Wszystko z powodu zmian w licencji MySQL od wersji 4.1, ponieważ od tego momentu MySQL na darmowej licencji można było używać wyłącznie do zastosowań niekomercyjnych. W momencie przejęcia przez Sun, jeden z twórców MySQL (Monty Widenius) stworzył forka MySQL pod nazwą MariaDB.

MariaDB

MariaDB jest oparta na tym samym kodzie co MySQL, ale rozpowszechniana tylko na licencji GPL. Twórcy starają się utrzymywać ciągłą kompatybilność do pierwowzoru – MySQL. Produkt ma być dostępny zawsze na licencji GPL, czego nie można powiedzieć o przyszłości MySQL od Oracle.

Do wersji 5.5 (aktualna stabilna) MariaDB jest numerowana identycznie do MySQL i kompatybilna w pełni. Natomiast następcą MariaDB 5.5 będzie MariaDB 10 (obecnie w fazie rozwoju, będzie częściowo kompatybilna z MySQL 5.6).

Percona Server

Firma Percona natomiast stworzyła fork MySQL zastępując jej silnik innoDB (względy licencyjne) silnikiem pisanym przez zespół XtraDB. Głównym powodem wprowadzenia własnych zmian była słaba skalowalność bazy MySQL w oryginale.

Percona Server jest w stanie skalować się aż na 48 rdzeni procesora. Podobnie jak MariaDB, również Percona Server od wersji 5.6 nie będzie w pełni kompatybilna z MySQL 5.6. Percona Server wykorzystuje natomiast dobre smaczki z MariaDB, oraz pewne udostępnione fragmenty kodu przez Google (np. SHOW USER/TABLE/INDEX).

Percona Server 5.5 udostępniona jest na wersji CC BY-SA 2.0.

Podsumowując

Do wersji MySQL 5.5 swodobnie możecie korzystać z alternatyw jakimi są MariaDB oraz Percona Server, bardziej skłaniając się do Percony która ma bardzo dobrze optymalizowany kod do większych zastosowań.

Jeśli nie będziecie wykorzystywać wprost dodatków MySQL 5.6, to również bez obaw możecie przejść na MariaDB lub Percona Server

Usuwamy karty tunelowe ISATAP – Częsta przyczyna spowolnienia komputera Vista / Windows7

Problem dotyczy użytkowników systemów Windows z rodziny Vista oraz 7. W systemie mogą pojawić się problemy z siecią, brak łączności z internetem itp. Po wejściu w Centrum sieci i udostępniania w części zatytułowanej „Wyświetlanie aktywnych połączeń” widzimy zamiast jednej sieci, dwie lub więcej.

W wierszu poleceń CMD (Start > Uruchom > CMD) po wpisaniu ipconfig /allzobaczymy dodatkową kartę sieciową o nazwie Microsoft ISATAP.

Najszybszym rozwiązaniem tego problemu jest wyłączenie usługi Pomoc IP (IP Helper). Aby to zrobić wchodzimy w Panel Sterowania > Narzędzia administracyjneUsługi, na liście odnajdujemy interesującą nas pozycję, wchodzimy w jej właściwości i klikamy Zatrzymaj, zaś na liście wyboru Tryb uruchomienia, wybieramy Wyłączony.

Pozostaje nam teraz zrestartować sieć. (Centrum sieci i udostępniania > Zmień ustawienia karty sieciowej, tu klikamy prawym przyciskiem myszy na ikonkę sieci i wybieramy Wyłącz. Kiedy ikona zmieni wygląd, ponownie klikamy prawym i wybieramy opcję Włącz.

Jeżeli nadal występują problemy, można sprawdzić czy w usługach (Start > Panel Sterowania > Narzędzia administracyjne > Usługi) jest wpis podobny do tego:##Id_String2.6844F930_1628_4223_B5CC_5BB94B879762 ##

Jeżeli tak, należy wykonać następujące kroki:

  1. Start > Wszystkie programy > Akcesoria > Wiersz polecenia (klikamy PPM i wybieramy opcję Uruchom jako administrator)
  2. W konsoli wpisujemy: cd „\Program Files\Bonjour” w przypadku systemu Windows w wersji 64 bit wpisujemy:  cd „\Program Files (x86)\Bonjour” )
  3. Jeżeli już jesteśmy w kataloku Bonjour wykonujemy kolejno następujące komendy:
  4. mDNSResponder.exe -remove (zatwierdzamy ENTEREM)
  5. ren mdnsNSP.dll mdnsNSP.dll_OLD (zatwierdzamy ENTEREM)
  6. Po wykonaniu tych kroków, restartujemy komputer, sieć powinna działać już poprawnie.

Jeżeli chcą się Państwo pozbyć wirtualnych kart sieciowych Microsoft ISATAP, można tego dokonać przy pomocy programu devcon.exe, oto instrukcja oraz link od programu:

Uruchamiamy Wiersz polecenia (wcześniej o tym pisałem). Po uruchomieniu okna, wpisujemy w zależności od lokalizacji pliku devcon.exe następującą linijkęC:\devcon.exe remove *ISATAP* po czym wciskamy ENTER

Jeżeli chcą się Państwo pozbyć wirtualnych kart sieciowych Microsoft 6to4, można tego dokonać przy pomocy programu devcon.exe, oto instrukcja oraz link od programu:

Uruchamiamy Wiersz polecenia (wcześniej o tym pisałem). Po uruchomieniu okna, wpisujemy w zależności od lokalizacji pliku devcon.exe następującą linijkęC:\devcon.exe remove *6to4* po czym wciskamy ENTER

Kliknij aby ściągnąć plik devcon.exe

Strona Microsoftu z opisem programu devcon.exe

Jaki serwer wybrać? VPS czy wirtualny (współdzielony)?

Do czego służy serwer?

Każdy, kto myśli o prowadzeniu własnego sklepu internetowego, forum, bloga czy innego poważnego serwisu, stanie, prędzej czy później, przed koniecznością wyboru odpowiedniego hostingu. Pod tym tajemniczym słowem kryje się, po prostu, miejsce na serwerze, gdzie można przechowywać dane. Jak to wygląda w praktyce? Przyjmijmy, że jakiś pasjonat chce powołać do istnienia bloga na temat swojego hobby. Stronę internetową tworzą, przede wszystkim, pliki (np. tekstowe, graficzne, multimedialne itd.), a coraz częściej wykorzystywane są również bazy danych do których zapisywana jest treść strony. Wszystkie te pliki, łącznie z całą zawartością serwisu naszego pasjonata, muszą być gdzieś przechowywane w rzeczywistości wirtualnej. Do tego służy właśnie „serwer”. Ale spokojnie, nie oznacza to, że trzeba stawiać własny serwer. Wystarczy skorzystać z oferty firmy hostingowej. Tutaj będziemy mieli do wyboru kilka opcji, gdyż oferta jest bardzo zróżnicowana. Przyjrzyjmy się tym, które mogłyby zainteresować naszego przykładowego pasjonata.

serwery

Popularne rozwiązanie – hosting wirtualny (współdzielony)

Opcja ta będzie zdecydowanie najlepsza dla tych, którzy, jak nasz pasjonat, dopiero rozpoczynają działalność w Internecie. Jest to najpopularniejsze rozwiązanie hostingowe w sieci, również ze względu na niską cenę. Polega na tym, że z jednego serwera korzysta wielu klientów, a każdy z nich ma przydzielone miejsce na dysku, współdzielona jest moc obliczeniowe procesorów, pamięć RAM i oprogramowanie. Każdy z klientów otrzymuje również limit transferu, jaki może wykorzystać w ciągu miesiąca. Na przykładzie firmy FireHost.pl, można wybierać tutaj pomiędzy różnymi pakietami, np. od Mini (na prostą stronę www lub bloga, z powierzchnią dysku 2GB i transferem miesięcznym 30GB), przez Small (dysk 4GB, transfer 70GB, dla witryn o dużej oglądalności), Large (dysk 8GB, transfer 120GB, dla dużych, rozwijających się serwisów) po Pakiet Extra (dysk 15GB, transfer 180GB, dla zaawansowanych sklepów internetowych oraz stron korporacyjnych). Niedogodnością rozwiązania przy hostingu wirtualnym jest fakt, że nasz pasjonat musi współdzielić zasoby serwera z dużą ilością innych użytkowników co w pewnych sytuacjach może powodować pewne utrudnienia, łącznie z przerwami wyświetlania strony. Oczywiście dostawca usługi cały czas monitoruje pracę serwera i w przypadkach kiedy jeden z użytkowników swoim działaniem szkodzi innym, wyciąga konsekwencje np. blokuje konto do czasu wyjaśnienia/rozwiązania problemu.
Kolejną niedogodnościa przy hostingu współdzielonym jest wspólny dla wszystkich użytkowników serwera adres IP, który ma szczególne znaczenie dla bezproblemowego działania poczty. Problem może być szczególnie dotkliwy, jeśli w wyniku działania, któregoś z użytkowników, adres dostanie sie na czarną listę (RBL). Wtedy do czasu usunięcia adresu z czarnej listy, wszyscy użytkownicy serwera mogą mieć problem z wysyłaniem, a dokładniej z dostarczaniem maili do adresatów.
Firmy hostingowe stosują różne zabezpieczenia mające na celu uchronić adres IP przed trafieniem na RBL, jednym z nich jest limit ilości wysyłanych maili na użytkownika, a w wypadku większych mailingów każdorazowe zatwierdzanie treści mailingu przez firmę, tak żeby zminimalizować ryzyko trafienia na spam listę.

A może jednak VPS?

Dobrym rozwiązaniem na powyższe bolączki jest hosting VPS (Virtual Private Server). Załóżmy, że nasz przykładowy pasjonat na tyle rozwinął swój serwis, że stał się on popularny i zaczął przynosić zysk. Żeby zapewnić mu stabilność działania, pasjonat decyduje się na opcję VPS. Pomimo, że serwer nadal obsługuje innych klientów, to jednak w tym wypadku każdy z tych klientów posiada swoje oprogramowanie, system operacyjny, adres IP, natomiast zasoby serwera uzależnione są jedynie wykupionym rodzajem pakietu, a nie chwilową aktywnością innych użytkowników. Nasz pasjonat może spać spokojnie, bo dostał gwarancję określonych parametrów, np. pamięć, procent otrzymanego rdzenia, transfer miesięczny itd. (do wyboru, tak jak w wypadku zwykłego hostingu, są pakiety mniejsze i większe). Oczywiście mowa tu o pełnej wirtualizacji np. KVM (ang. Kernel-based Virtual Machine) gdyż w wypadku często stosowanej wśród polskich firm wirtualizacji OpenVM, wszystkie zasody są dzielone dynamicznie i podobnie jak przy hostingu współdzielonym nie ma gwarancji zasobów. Więcej o radzajach wirtualizacji dowiecie się z następnego artykułu, który ukarze się wkrótce.
Jeśli jednak nadal macie wątpliwość, jaką opcje wybrać dla siebie, najlepiej skorzystać będzie z profesjonalnego doradztwa firmy hostingowej.

Własne serwery DNS pod swoją domeną (z użyciem revDNS i glue record)

Istnieją dwa sposoby podpięcia własnych DNSów pod swoją domenę.
Dla przykładu mamy domenę adresik.net i chcielibyśmy, aby podpiąć pod nią dwa własne DNSy:

DNS1: ns1.adresik.net
DNS2: ns2.adresik.net

Możemy to zrobić na dwa sposoby:
– revDNS
– glue record

revDNS
revDNS odsyłam do http://pl.wikipedia.org/wiki/Reverse_DNS
Jest to odwrotna translacja adresów. Polecam ją ze względów na to, że filtry antyspamowe „lepiej” traktują domeny mające rDNS.
Aby ustawić swoje rDNS musimy odwołać się do naszego operatora łącza lub dostawcy usług.
Niektórzy operatorzy oferują za pośrednictwem swoich paneli możliwość ustawiania rDNS. Wtedy taką operację możemy wykonać sami.
Aby ustawić powinniśmy powiązać adres z adresem IP np. ns1.adresik.net = 144.76.34.117, ns2.adresik.net = 144.76.34.117

Glue Record
To inna forma ustawienia swoich prywatnych DNSów pod własną domeną. Domeny nie będą posiadały rDNS, ale możliwe będzie używanie własnych DNSów do delegowania swoich stron. Aby to zrobić trzeba odwołać się do naszego REJESTRATORA domeny. Musimy mieć u niego zarejestrowaną domenę.
W opcjach delegacji domeny podajemy np. ns1.nasza-domena.pl i ns2.nasza-domena.pl i wiążemy ją z adresami IP. Zależy wszystko od operatora. Wielcy dostawcy domen w Polsce mają ten proces zautomatyzowany. Przy zmianie delegacji takiej domeny zostaniemy poproszeni o wpisanie IP tym domenom odpowiadających. Mniejsi dostawcy wymagają wpierw kontaktu z BOK, gdzie ręcznie oni muszą dodać wpisy i dopiero wtedy możemy własną domenę podpiąć pod własne DNSy.

Po podpięciu DNSów możemy się pochwalić własnymi DNS’ami pod swoją domeną.

Kolory na stronie WWW

Język HTML oferuje 256 dostępnych kolorów, jednak tylko 216 z nich poprawnie wyświetlają wszystkie przeglądarki internetowe. Używając poniższego zestawu barw możesz być pewny, że kolor zostanie tak samo zinterpretowany w każdym systemie operacyjnym (paleta 256 kolorów w systemie Windows nie odpowiada tym samym kolorom systemowym w komputerze Macintosh). Jeżeli użyjesz większą ilość kolorów, mogą one zostać zamienione do podstawowego zestawu barw, czyli wspomnianych 216 kolorów.

Kolor zapisywany jest najczęściej w postaci #RRGGBB, gdzie RR to zapisany szesnastkowo (heksadecymalnie) kolor czerwony (red), GG to kolor zielony (green), a BB to kolor niebieski (blue). Można też używać odpowiedników w postaci nazw kolorów. Niektóre z nich to: white (#FFFFFF), black (#000000), greenbluefuchsiayellowlimeolivepurpletealsilverred,navymaroongrayaqua. Należy jednak pamiętać, że nazwy kolorów nie w pełni odpowiadają poniższej palecie, np. zapis szesnastkowy koloru Maroon to #800000 (nie ma takiego w tabeli!). Można nie zwracać uwagi na tą różnicę jeśli umieszczamy tylko zielony napis lub zieloną tabelę. Wtedy nawet lepiej jest stosować nazwy, bo nie trzeba zastanawiać się, jak zapisać kolor zielony za pomocą #RRGGBB. Informacja ta zaczyna nabierać znaczenia wyłącznie przy łączeniu bitmapy (GIF, JPEG) z kolorami na stronie WWW wprowadzonymi np. takimi instrukcjami:

<font color="#33ff66"> – ustala kolor czcionki (jak widać)
<tr bgcolor="blue"> – ustawia kolor rzędu komórek w tabeli
<td bgcolor="#cc9966"> – ustawia kolor komórki w tabeli
<body bgcolor="white"> – ustawia kolor tła strony

Grupa elementów wykorzystujących kolory:

BASEFONT, BODY, FONT, TABLE, TD, TH, TR

Grupa atrybutów wykorzystujących kolory:

alink, bgcolor, color, link, text, vlink

 

 

zestawienie 216 „bezpiecznych” kolorów (HEX/RGB)

#FF0000
255 0 0
#FF0033
255 0 51
#FF0066
255 0 102
#FF0099
255 0 153
#FF00CC
255 0 204
#FF00FF
255 0 155
#FF3300
255 51 0
#FF3333
255 51 51
#FF3366
255 51 102
#FF3399
255 51 153
#FF33CC
255 51 204
#FF33FF
255 51 255
#FF6600
255 102 0
#FF6633
255 102 51
#FF6666
255 102 102
#FF6699
255 102 153
#FF66CC
255 102 204
#FF66FF
255 102 255
#FF9900
255 153 0
#FF9933
255 153 51
#FF9966
255 153 102
#FF9999
255 153 153
#FF99CC
255 153 204
#FF99FF
255 153 255
#FFCC00
255 204 0
#FFCC33
255 204 51
#FFCC66
255 204 102
#FFCC99
255 204 153
#FFCCCC
255 204 204
#FFCCFF
255 204 255
#FFFF00
255 255 0
#FFFF33
255 255 51
#FFFF66
255 255 102
#FFFF99
255 255 153
#FFFFCC
255 255 204
#FFFFFF
255 255 255
#CC0000
204 0 0
#CC0033
204 0 51
#CC0066
204 0 102
#CC0099
204 0 153
#CC00CC
204 0 204
#CC00FF
204 0 255
#CC3300
204 51 0
#CC3333
204 51 51
#CC3366
204 51 102
#CC3399
204 51 153
#CC33CC
204 51 204
#CC33FF
204 51 255
#CC6600
204 102 0
#CC6633
204 102 51
#CC6666
204 102 102
#CC6699
204 102 153
#CC66CC
204 102 204
#CC66FF
204 102 255
#CC9900
204 153 0
#CC9933
204 153 0
#CC9966
204 153 102
#CC9999
204 153 153
#CC99CC
204 153 204
#CC99FF
204 153 255
#CCCC00
204 204 0
#CCCC33
204 204 51
#CCCC66
204 204 102
#CCCC99
204 204 153
#CCCCCC
204 204 204
#CCCCFF
204 204 255
#CCFF00
204 255 0
#CCFF33
204 255 51
#CCFF66
204 255 102
#CCFF99
204 255 153
#CCFFCC
204 255 204
#CCFFFF
204 255 255
#990000
153 0 0
#990033
153 0 51
#990066
153 0 102
#990099
153 0 153
#9900CC
153 0 204
#9900FF
153 0 255
#993300
153 51 0
#993333
153 51 51
#993366
153 51 102
#993399
153 51 153
#9933CC
153 51 204
#9933FF
153 51 255
#996600
153 102 0
#996633
153 102 51
#996666
153 102 102
#996699
153 102 153
#9966CC
153 102 204
#9966FF
153 102 255
#999900
153 153 0
#999933
153 153 51
#999966
153 153 102
#999999
153 153 153
#9999CC
153 153 204
#9999FF
153 153 255
#99CC00
153 204 0
#99CC33
153 204 51
#99CC66
153 204 102
#99CC99
153 204 153
#99CCCC
153 204 204
#99CCFF
153 204 255
#99FF00
153 255 0
#99FF33
153 255 51
#99FF66
153 255 102
#99FF99
153 255 153
#99FFCC
153 255 204
#99FFFF
153 255 255
#660000
102 0 0
#660033
102 0 51
#660066
102 0 102
#660099
102 0 153
#6600CC
102 0 204
#6600FF
102 0 255
#663300
102 51 0
#663333
102 51 51
#663366
102 51 102
#663399
102 51 153
#6633CC
102 51 204
#6633FF
102 51 255
#666600
102 102 0
#666633
102 102 51
#666666
102 102 102
#666699
102 102 153
#6666CC
102 102 204
#6666FF
102 102 255
#669900
102 153 0
#669933
102 153 51
#669966
102 153 102
#669999
102 153 153
#6699CC
102 153 204
#6699FF
102 153 255
#66CC00
102 204 0
#66CC33
102 204 51
#66CC66
102 204 102
#66CC99
102 204 153
#66CCCC
102 204 204
#66CCFF
102 204 255
#66FF00
102 255 0
#66FF33
102 255 51
#66FF66
102 255 102
#66FF99
102 255 153
#66FFCC
102 255 204
#66FFFF
102 255 255
#330000
51 0 0
#330033
51 0 51
#330066
51 0 102
#330099
51 0 153
#3300CC
51 0 204
#3300FF
51 0 255
#333300
51 51 0
#333333
51 51 51
#333366
51 51 102
#333399
51 51 153
#3333CC
51 51 204
#3333FF
51 51 255
#336600
51 102 0
#336633
51 102 51
#336666
51 102 102
#336699
51 102 153
#3366CC
51 102 204
#3366FF
51 102 255
#339900
51 153 0
#339933
51 153 51
#339966
51 153 102
#339999
51 153 153
#3399CC
51 153 204
#3399FF
51 153 255
#33CC00
51 204 0
#33CC33
51 204 51
#33CC66
51 204 102
#33CC99
51 204 153
#33CCCC
51 204 204
#33CCFF
51 204 255
#33FF00
51 255 0
#33FF33
51 255 51
#33FF66
51 255 102
#33FF99
51 255 153
#33FFCC
51 255 204
#33FFFF
51 255 255
#000000
0 0 0
#000033
0 0 51
#000066
0 0 102
#000099
0 0 153
#0000CC
0 0 204
#0000FF
0 0 255
#003300
0 51 0
#003333
0 51 51
#003366
0 51 102
#003399
0 51 153
#0033CC
0 51 204
#0033FF
0 51 255
#006600
0 102 0
#006633
0 102 51
#006666
0 102 102
#006699
0 102 153
#0066CC
0 102 204
#0066FF
0 102 255
#009900
0 153 0
#009933
0 153 51
#009966
0 153 102
#009999
0 153 153
#0099CC
0 153 204
#0099FF
0 153 255
#00CC00
0 204 0
#00CC33
0 204 51
#00CC66
0 204 102
#00CC99
0 204 153
#00CCCC
0 204 204
#00CCFF
0 204 255
#00FF00
0 255 0
#00FF33
0 255 51
#00FF66
0 255 102
#00FF99
0 255 153
#00FFCC
0 255 204
#00FFFF
0 255 255

 

zestawienie nazw kolorów (nie są to kolory „bezpieczne”):
(pogrubionych zostało 16 podstawowych nazw)

nazwa koloru HEX RGB kolor
AliceBlue #F0F8FF 240 248 255
AntiqueWhite #FAEBD7 250 235 215
Aqua #00FFFF 0 255 255
Aquamarine #7FFFD4 127 255 212
Azure #F0FFFF 240 255 255
Beige #F5F5DC 245 245 220
Bisque #FFE4C4 255 228 196
Black #000000 0 0 0
BlanchedAlmond #FFEBCD 255 235 205
Blue #0000FF 0 0 255
BlueViolet #8A2BE2 138 43 226
Brown #A52A2A 165 42 42
Burlywood #DEB887 222 184 135
CadetBlue #5F9EA0 95 158 160
Chartreuse #7FFF00 127 255 0
Chocolate #D2691E 210 105 30
Coral #FF7F50 255 127 80
CornflowerBlue #6495ED 100 149 237
Cornsilk #FFF8DC 255 248 220
Crimson #DC143C 220 20 60
Cyan #00FFFF 0 255 255
DarkBlue #00008B 0 0 139
DarkCyan #008B8B 0 139 139
DarkGoldenrod #B8860B 184 134 11
DarkGray #A9A9A9 169 169 169
DarkGreen #006400 0 100 0
DarkKhaki #BDB76B 189 183 107
DarkMagenta #8B008B 139 0 139
DarkOliveGreen #556B2F 85 107 47
DarkOrange #FF8C00 255 140 0
DarkOrchid #9932CC 153 50 204
DarkRed #8B0000 139 0 0
DarkSalmon #E9967A 233 150 122
DarkSeaGreen #8FBC8F 143 188 143
DarkSlateBlue #483D8B 72 61 139
DarkSlateGray #2F4F4F 47 79 79
DarkTurquoise #00CED1 0 206 209
DarkViolet #9400D3 148 0 211
DeepPink #FF1493 255 20 147
DeepSkyBlue #00BFBF 0 191 191
DimGrey #696969 105 105 105
DodgerBlue #1E90FF 30 144 255
Firebrick #B22222 178 34 34
FloralWhite #FFFAF0 255 250 240
ForestGreen #228B22 34 139 34
Fuchsia #FF00FF 255 0 255
Gainsboro #DCDCDC 220 220 220
GhostWhite #F8F8FF 248 248 255
Gold #FFD700 255 215 0
Goldenrod #DAA520 218 165 32
Green #008000 0 128 0
GreenYellow #ADFF2F 173 255 47
Grey #808080 128 128 128
Honeydew #F0FFF0 240 255 240
HotPink #FF69B4 255 105 180
IndianRed #CD5C5C 205 92 92
Indigo #4B0082 75 0 130
Ivory #FFFFF0 255 255 240
Khaki #F0E68C 240 230 140
Lavender #E6E6FA 230 230 250
LavenderBlush #FFF0F5 255 240 245
LawnGreen #7CFC00 124 252 0
LemonChiffon #FFFACD 255 250 205
LightBlue #ADD8E6 173 216 230
LightCoral #F08080 240 128 128
LightCyan #E0FFFF 224 255 255
LightGoldenrodYellow #FAFAD2 250 250 210
LightGreen #90EE90 144 238 144
LightGray #D3D3D3 211 211 211
LightPink #FFB6C1 255 182 193
LightSalmon #FFA07A 255 160 122
LightSeaGreen #20B2AA 32 178 170
LightSkyBlue #87CEFA 135 206 250
LightSlateGray #778899 119 136 153
LightSteelBlue #B0C4DE 176 196 222
LightYellow #FFFFE0 255 255 224
Lime #00FF00 0 255 0
LimeGreen #32CD32 50 205 50
Linen #FAF0E6 250 240 230
Magenta #FF00FF 255 0 255
Maroon #800000 128 0 0
MediumAquamarine #66CDAA 102 205 170
MediumBlue #0000CD 0 0 205
MediumOrchid #BA55D3 186 85 211
MediumPurple #9370DB 147 112 219
MediumSeaGreen #3CB371 60 179 113
MediumSlateBlue #7B68EE 123 104 238
MediumSpringGreen #00FA9A 0 250 154
MediumTurquoise #48D1CC 72 209 204
MediumVioletRed #C71585 199 21 133
MidnightBlue #191970 25 25 112
MintCream #F5FFFA 245 255 250
MistyRose #FFE4E1 255 228 225
Moccasin #FFE4B5 255 228 181
NavajoWhite #FFDEAD 255 222 173
Navy #000080 0 0 128
OldLace #FDF5E6 253 245 230
Olive #808000 128 128 0
OliveDrab #6B8E23 107 142 35
Orange #FFA500 255 165 0
OrangeRed #FF4500 255 69 0
Orchid #DA70D6 218 112 214
PaleGoldenrod #EEE8AA 238 232 170
PaleGreen #98FB98 152 251 152
PaleTurquoise #AFEEEE 175 238 238
PaleVioletRed #DB7093 219 112 147
PapayaWhip #FFEFD5 255 239 213
PeachPuff #FFDAB9 255 218 185
Peru #CD853F 205 133 63
Pink #FFC0CB 255 192 203
Plum #DDA0DD 221 160 221
PowderBlue #B0E0E6 176 224 230
Purple #800080 128 0 0
Red #FF0000 255 0 0
RosyBrown #BC8F8F 188 143 143
RoyalBlue #4169E1 65 105 225
SaddleBrown #8B4513 139 69 19
Salmon #FA8072 250 128 114
SandyBrown #F4A460 244 164 96
SeaGreen #2E8B57 46 139 87
Seashell #FFF5EE 255 245 238
Sienna #A0522D 160 82 45
Silver #C0C0C0 192 192 192
SkyBlue #87CEEB 135 206 235
SlateBlue #6A5ACD 106 90 205
SlateGrey #708090 112 128 144
Snow #FFFAFA 255 250 250
SpringGreen #00FF7F 0 255 127
SteelBlue #4682B4 70 130 180
Tan #D2B48C 210 180 140
Teal #008080 0 128 128
Thistle #D8BFD8 216 191 216
Tomato #FF6347 255 99 71
Turquoise #40E0D0 64 224 208
Violet #EE82EE 238 130 238
Wheat #F5DEB3 245 222 179
White #FFFFFF 255 255 255
WhiteSmoke #F5F5F5 245 245 245
Yellow #FFFF00 255 255 0
YellowGreen #9ACD32 154 205 50