Pokazywanie postów oznaczonych etykietą router. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą router. Pokaż wszystkie posty

czwartek, 27 maja 2010

Konfigurowanie Apacha

Rozpoczynam od założenia w serwisie dyndns.org konta. Potem przechodzę do My ServicesHost services, wybieram nazwę hosta (w moim przypadku pinkaccordions) i domeny (homelinux.org). Typ usługi: Host with IP address. Resztę pól można zostawić niewypełnione. Darmowe konto pozwala na przydzielenie 5 adresów...

Teraz w menu Tomato klikam w Basic→DDNS. Jako service wybieram DynDNS -- static, Username/Password to dane z rejestracji w serwisie DynDNS, hostname to z kolei wybrana przez nas nazwa hosta, tj. w moim przypadku pinkaccordions.homelinux.org. Więcej niczego nie trzeba wpisywać wystarczą dane domyślne. Można ustawić w ten sposób dwa adresy... Por też notatki tutaj.

Pozostaje wreszcie uruchamienie usługi port forwarding na routerze z działającym Tomato. Jest to bardzo proste i sprowadza się do wypełnienia pól Proto, Ext Ports, Int Address oraz opcjonalnie Description (por. ekran obok).

Instalacja serwera apache oraz php w systemie Debian Lenny.


apt-get install apache2 apache2-mpm-prefork apache2-utils apache2.2-common
apt-get install php5 libapache2-mod-php5 php5-common php5-curl
apt-get install php5-dev php5-gd php5-imagick php5-mcrypt php5-memcache php5-mhash \
php5-mysql php5-pspell php5-snmp php5-sqlite php5-xmlrpc php5-xsl

W pliku /etc/apache2/ports.conf umieszczam komentarz przed dyrektywą NameVirtualHost:


#NameVirtualHost *:80

Zaś powyższą dyrektywę umieszczam w /etc/apache2/httpd.conf.

Konfiguracja wirtualnego hosta; plik /etc/apache2/sites-available/pinkaccordions powstaje przez skopiowanie pliku domyślnego:


cd /etc/apache2/sites-available/ ; cp default pinkaccordions

Następnie plik modyfikuję dopisując ServerName i ServerAlias



<VirtualHost *:80>
ServerAdmin webmaster@localhost

ServerName pinkaccordions.homelinux.org
ServerAlias pinkaccordions.homelinux.org

DocumentRoot /var/www_pinkaccordions/
<!-- dalej w zasadzie niezmienione -->
</VirtualHost>

Teraz:


cd /etc/apache2/sites-enabled && ln -s ../sites-available/pinkaccordions pinkaccordions

To samo dla drugiego i ewentualnie kolejnych hostów. Innych plików za wyjątkiem opisanych wyżej httpd.conf, ports.conf oraz plików z katalogu ./sites-available/ i linków z katalogu ./sites-enabled/ nie ruszam. Teraz


/etc/init.d/apache2 restart
# albo apache2ctl graceful

No i powinno działać...

Dopisane 15 września 2010: Aby logrotate nie usuwał najstarszego przechowywanego pliku modyfikuję /etc/logrotate.d/apache2 i dodając stosowane prerotate...endscript:


sharedscripts
prerotate
if [ -f "/path2logs/access.log.52.gz" ] ; then
cp /path2logs/access.log.52.gz /path2archive/access.`date +%Y%m%d`.log.gz ; fi
if [ -f "/path2logs/access.fabians.log.52.gz" ] ; then
cp /path2logs/access.log.52.gz /path2logs/access.`date +%Y%m%d`.log.gz ; fi
endscript

Teraz (mam nadzieję), plik access.log.52.gz przed skasowaniem zostanie skopiowany w inne miejsce i ocaleje. Pewnie można by prościej, przykładowo brutalnie wpisując po prostu rotate 156.

sobota, 9 lutego 2008

Zakładanie SVN

Celem synchronizacji danych na moich komputerach założyłem archiwum SVN na PC. Do tej pory trzymałem moje pliczki potajemnie na svn.gust.org.pl, ale baza padła, svn wypisuje, że takiej to a takiej wersji nie ma svn: No such revision 465, no i generalnie kicha. Ponieważ svn w moim przypadku to duży overkill myślałem o czymś w rodzaju unisone, ale szkoda mi czasu, a po drugie -- pewnie niesłusznie -- wydaje mi się, że unisone bardziej nadaje się do synchronizacji w jedną stronę, np. przesłanie plików konfiguracyjnych z serwera na wiele komputerów. Tak więc ostatecznie stanęło na svn.

Zacząłem od ,,konfiguracji'' mojej ,,sieci'' LAN. Po uruchomieniu /sbin/ifconfig ustaliłem, że mój PC ma adres 192.168.1.102. Dopisałem zatem do /etc/hosts:


192.168.1.102 darkstar.pinkaccordions.org darkstar

W zasadzie całą konfigurację zrobił router! Komputer ma zatem nazwę darkstar, a pinkaccordions.org jest ukłonem w stronę Elki. Laptopa konfiguruję podobnie, nie używam WiFi, tylko kabel. Sieć będę używał tylko do transferu-synchronizacji więc nie ma to (mam nadzieję) większego znaczenia. Teraz najtrudniejsze:


svnadmin create '/stuff/svn/repos/tomek/'
svn mkdir file:///stuff/svn/repos/tomek/weblog -m'pierwszy projekt'
chown -R g+w /stuff/svn/

Następnie dopisuję do /etc/group, grupę svn, a do niej tych, którzy mają korzystać z svn. Zmieniam grupę, do której należy katalog /stuff/svn/:


chown -R root:svn /stuff/svn/

Wylogowuję się jako root I dodaję do repozytorium pierwszy projekt. Ponieważ repo jest na lokalnej maszynie mogę wpisać:


svn import file:///stuff/svn/repos/tomek/weblog -m "Import mojego bloga"

Jeżeli nie zadziała, ale zamiast tego wyświetli:


svn: Can't create directory '/subversion/main/db/transactions/0-1.txn':\
Permission denied

Albo ekwiwalent w języku polskim, to trzeba zrestartować komputer i powinno działać. Jeżeli coś dalej jest nie tak, no to nie wiem -- u mnie działa.

Obezwładniam SELinuksa, edytując /etc/selinux/config:


SELINUX=disabled

SELinux jest usługą, która przeszkadza w wielu miejscach i z moich doświadczeń wynika, że lepiej ją prędzej czy później wyłączyć. Usługa ssh powinna być ,,zaufana'' (trusted services). Teoretycznie można konfigurować zaporę sieciową poprzez wybór z System/Administracja/Zapora, ale u mnie to nie działa. Być może jest to moja wina, bo nie używam domyślnego unicode tylko ISO-8859-2. W każdym bądź razie, radzę sobie uruchamiając program poprzez terminal (oczywiście jako root):


LANG=C system-config-securitylevel

Żeby nie wpisywać hasła, generuję odpowiednie klucze używając ssh-keygen, w sposób opisany tutaj:


ssh-keygen -t rsa

Teraz dwa razy Enter. W rezultacie klucz prywatny jest w .ssh/id_rsa, a publiczny w .ssh/id_rsa.pub Zawartość tego ostatniego trzeba dodać do .ssh/authorized_keys na maszynie, z którą mamy się łączyć bez podawania hasła. Procedurę powtarzam dla drugiej maszyny. Można sprawdzić:


ssl -l tomek darkstar

Powinno działać. Także będzie działać svn, np. mogę ściągnąć repozytorium z PC na laptopa:


svn co svn+ssh://tomek@darkstar/stuff/svn/repos/tomek/weblog

Dopisane 26 lutego 2008: Sam się dziwiłem jakim cudem router przydziela moim komputerom te same numery IP. Ale do czasu. Wczoraj przydzielił inne... Pomysł oparty na /etc/hosts miał raczej krótkie nogi. Nie mając bladego pojęcia jak to osiągnąć i posługując się google ustaliłem, że 1) static DHCP jest tym czego mi potrzeba; 2) fabryczny firmware do mojego routera WRT54GL nie potafi tego zrobić i należy wgrać alternatywny 3) są różne alternatywy, zachęcony tym wpisem postawiłem w ciemno na Tomato.

Mówiąc szczerze najwyżej w Google było nt. dd-wrt, ale strona tegoż jakaś taka podejrzanie dziwna, nie mówiąc już o www.dd-wrt.org/. I was a bit afraid.

Zatem ściągnąłem plik ze strony www.polarcloud.com/tomato. Zainstalowałem archiwizer 7-Zip, który do niczego nie był mi wcześniej potrzebny:


yum install p7zip p7zip-plugins

Wypakowałem zawartość archiwum, połączyłem się z routerem (http://192.168.1.1/) i wgrałem firmware (Administration/Firmware Upgrade, wybrałem plik wrt54g_wrt54gl.bin). Teraz ważne (nie zrobiłem tego i straciłem trochę czasu): należy zresetować router (Administration/Restore default configuration, wybrać Erase all data in NVRAM memory). Po resecie loguję się na router jako root/admin. Następnie trzeba przejść do zakładki Basic/Static DHCP i wpisać odpowiednie informacje (numery MAC są w zakładce Status/Device List).

Zgodnie z tym co jest napisane w dokumentacji należy wybrać adresy spoza puli przydzielanej automatycznie przez router. Ponieważ mój router przydziela z przedziału 192.168.1.100--149, wybrałem numery typu: 192.168.1.2 itp.

Jak już wszystko zainstalowałem to znalazłem detaliczny opis co i jak tu: Turbocharge your router with Tomato. Jest też poradnik co robić jak instalując nowy firmware popsujemy router: Recover from a Bad Flash.