Prispevky v kategorii: ‘’

Internal Server Error

Pokud vám doména hází chybovou hlášku:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

.. s největší pravděpodobností máte chybu v .htaccess souboru, zřejmě nějaký překlep.

Zkuste zaremovat (#) dočasně jednotlivé řádky a tak přijdete na chybný řádek.
Pokud není problém se souborem .htaccess, zřejmě se jedná o perl script uložený v cgi-bin adresáři.
Zkontrolujte zda adresáře a cgi/pl soubory v cgi-bin adresáři mají dostatečná práva,
většinou musejí být 755.
Může také chybět nějaký perl modul na který se cgi/pl script odkazuje.

admin Řešení problémů

Umount device is bussy

Pokud vám odpojování připojené partyšny hodí hlášku:

umount: /home: device is busy

znamená to že je adresář používaný.
Častým problémem je, že se zrovna nacházíte v tomto adresáři, stačí se tedy presunout jinam

cd /

Pokud problém přetrvává, zjistíme si, které procesy nám blokují odpojení partyšny:

fuser -m /dev/sda5
fuser -m /home

Vypíše vám to seznam PIDů, např:

4078 14582c 15930 18501 18816 19821 19886 19887

Killneme tyto procesy s tím, že pokud je tam písmenko, tak písmenko vynecháme.

kill -9 4078 14582 15930 18501 18816 19821 19886 19887

Je možné že vás to vykopne ze serveru, neboď jste si killnuli např. ssh session.
Takže je dobré si předtím zjistit který PID patří ke které službě.
Pokud se vám podařilo pokillovat všechny PIDy zobrazené příkazem fuser -m,
můžete partyšnu odpojit.

admin Řešení problémů

Odpojení partyšny

Připojenou partyšnu odpojíte příkazem umount, syntaxe je:

umount /dev/sda5
umount /home

Pokud vám to hodí hlášku:

umount: /home: device is busy

znamená to že je adresář používaný.
Častým problémem je, že se zrovna nacházíte v tomto adresáři, stačí se tedy presunout jinam

cd /

Pokud problém přetrvává, zjistíme si, které procesy nám blokují odpojení partyšny:

fuser -m /dev/sda5
fuser -m /home

Vypíše vám to seznam PIDů, např:

4078 14582c 15930 18501 18816 19821 19886 19887

Killneme tyto procesy s tím, že pokud je tam písmenko, tak písmenko vynecháme.

kill -9 4078 14582 15930 18501 18816 19821 19886 19887

Je možné že vás to vykopne ze serveru, neboď jste si killnuli např. ssh session.
Takže je dobré si předtím zjistit který PID patří ke které službě.
Pokud se vám podařilo pokillovat všechny PIDy zobrazené příkazem fuser -m,
můžete partyšnu odpojit.

admin Práce s HDD

Výpis všech IP na serveru

Pokud chcete výpis všech IP přidělených na server použijte příkaz:

ifconfig | grep "inet addr" | awk '{print $2}' | awk -F: '{print $2}' | gawk -F' ' '{print $1}'

admin Užitečné bash příkazy a scripty

yum segmentation fault

Pokud se vám stane, že při práci s yum vám systém vyhodí hlášku: segmentation fault, zkuste obnovit yum databázi:

rm -f /var/lib/rpm/__db*
rpm --rebuilddb

admin Řešení problémů

Kompilace RPM ze zdroje

Pokud si chcete zkompilovat vlastní RPM balíček, budete potřebovat balíček rpmdevtools.

yum install rpmdevtools

To vám vytvoří adresářovou strukturu /usr/src/redhat.
Postup vytvoření vlastního balíčku nyní uvedu na programu postfix, který zkompiluji s mysql podporou.

Nejprve si stáhneme a nainstalujeme src balíček:

wget http://mirror.centos.org/centos/5.2/updates/SRPMS/postfix-2.3.3-2.1.el5_2.src.rpm
rpm -ihv postfix-2.3.3-2.1.el5_2.src.rpm

warning: … – using root můžete ignorovat.
V adresáři /usr/src/redhat/SPECS naleznete soubor postfix.spec,
kde jsou specifikace použité při kompilaci balíčku. Řádku 2 změníme z:

%define MYSQL 0

na

%define MYSQL 1

a uložíme.

Nyní stačí spustit příkaz:

cd /usr/src/redhat/SPECS
rpmbuild -ba postfix.spec

Zobrazí se chybová hláška o chybějících závislostech. Doinstalujeme je, v mém případě:

yum install ed openldap-devel pcre-devel

A znovu opakujeme příkaz:

rpmbuild -ba postfix.spec

Po zkompilování, nalezneme balíček v adresáři /usr/src/redhat/RPMS.

admin Správa serveru

ip_conntrack: table full, dropping packet

Stačí zvýšit hodnotu v souboru /proc/sys/net/ipv4/ip_conntrack_max příkazem:

echo "140000" > /proc/sys/net/ipv4/ip_conntrack_max

Hodnota 140000 je variabilní, můžete si nastavit svou hodnotu.

admin Řešení problémů

Kontrola domény ještě před změnou name serverů

Pokud převedete již běžící doménu z jiného serveru na váš server, a chcete se přesvědčit zda je vše ok ještě před změnou dns, existuje několik cest jak toto provést.

První cestou, pokud používáte Windows XP je že editujete soubor
c:\WINDOWS\system32\drivers\etc\hosts a přidáte do něj:

123.123.123.123    domena.cz
123.123.123.123    www.domena.cz
123.123.123.123    jinasubdomena.domena.cz

kde 123.123.123.123 je IP vašeho serveru.
Poté je nutné restartnout web browser, a doména vám bude resolvovat na váš server
(pouze ale na vašem počítačim, ne pro okolné svět).
Doporučuji tento záznam časem odstranit, předejdete případným budoucím problémům.

Další možností je přidělit doméně nějakou unikátní IP adresu a jednoduše se na ní odkázat v prohlížeči.

Další možností je v Apachi změnit: UserDir disable na UserDir enable
a nastavit UserDir public_html, kde public_html je DocumentRoot adresář pro vaše domény. Někdo používá public_html, jiný html, www_root atd…
Pak stačí v prohlížeči zadat IP adresu serveru + username ve formátu:


http://123.123.123.123/~username

A zobrazí se obsah domény uživatele „username“.

admin Apache tipy

Užitečné odkazy

admin Užitečné odkazy

Převod rozsahu IP adres na parametr IP adresy

Řešil jsem problém jak na serveru globálně zakázat např. traffik z Číny.
Narazil jsem ovšem na problém kde vzít aktuální seznam všech IP adres které má Čína přidělené. Dosud jsem používal tento seznam. Ovšem nastal problém že tento seznam již nebyl dlouho aktualizován, proto jsem hledal jiné řešení a nalezl ho.

Na této adrese si mohu vygenerovat celé aktuální rozsahy IP adres pro jakýkoliv stát ve formátu např.:

58.14.0.0 - 58.25.255.255
58.30.0.0 - 58.63.255.255
58.66.0.0 - 58.67.255.255
58.68.128.0 - 58.68.255.255
.. atd.

Do Firewallu však potřebuji IP adresu ve zkráceném formátu např.: 58.14.0.0/15.
Vytvořil jsem si tedy script který převede hromadně všechny rozsahy IP adres na jejich zkrácený tvar.

mkdir -p /home/src/; cd /home/src/
wget http://jodies.de/ipcalc-archive/ipcalc-0.41.tar.gz
tar xzvf ipcalc-0.41.tar.gz
cd /home/src/ipcalc-0.41
touch prevod ips
chmod +x prevod

Do souboru prevod jsem vložil:

#!/bin/bash

clear
replace ' - ' '-' -- ips > /dev/null
LINES=`cat ips`
for LINE in ${LINES[@]}; do
pos=`expr index "$LINE" '-'`
ip2="${LINE:pos-1}"
ip1=${LINE/$ip2/}
ip2=${ip2/\-/}
./ipcalc -r ${ip1} ${ip2} | grep '/'
done

Nyní jsem už jen vložil IP rozsahy vygenerované na této adrese do souboru ips a spustil script:

./prevod

Voilá.. dostal jsem seznam IP rozsahů ve zkrácené formě, které jsem následně vložil do firewallu:

/sbin/iptables -A INPUT -s 58.186.0.0/15 -j DROP

admin Užitečné bash příkazy a scripty