Rozpoczynam od założenia w serwisie dyndns.org
konta.
Potem przechodzę do My Services→Host 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
.
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.