sobota, 10 września 2011

Drupal na FreeBSD

Soft:
host - FreeBSD8.2_64
nginx - 1.06
php - 5.3.8
mysql - 5.5.15
drupal - 7.8
php-fpm - 5.3.8

# portmaster www/drupal7 www/nginx databases/mysql55-server

Autostart:

# ee /etc/rc.conf
nginx_enable="YES"
mysql_server_enable="YES"
php_fpm_enable="YES"

Plik konfiguracyjny nginx

# ee /usr/local/etc/nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;

server {
server_name mail1.domena.pl;
root /usr/local/www/drupal7; ## <-- Ścieżka do katalogu drupala.

location = /favicon.ico {
log_not_found off;
access_log off;
}

location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}

# This matters if you use drush
location = /backup {
deny all;
}
location ~ \..*/.*\.php$ {
return 403;
}

location / {
# This is cool because no php is touched for static content
try_files $uri @rewrite;
}

location @rewrite {
# Some modules enforce no slash (/) at the end of the URL
# Else this rewrite block wouldn't be needed (GlobalRedirect)
rewrite ^/(.*)$ /index.php?q=$1;
}

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/www/drupal7$fastcgi_script_name;
include fastcgi_params;
}

# Fighting with ImageCache? This little gem is amazing.
location ~ ^/sites/.*/files/imagecache/ {
try_files $uri @rewrite;
}
# Catch image styles for D7 too.
location ~ ^/sites/.*/files/styles/ {
try_files $uri @rewrite;
}

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}

}

Baza danych dla drupala:
hasło dla roota

mysqladmin -u root password tutaj_hasło

baza drupal:

mysql -u root -p
mysql> create database drupal;
mysql> grant all on drupal.* to drupal@localhost identified by 'tutaj_hasło_dla_użytkownika_drupal';
mysql> flush privileges;
mysql> exit

Start demonów

/usr/local/etc/rc.d/nginx start
/usr/local/etc/rc.d/mysql-server start
/usr/local/etc/rc.d/php-fpm start

środa, 17 sierpnia 2011

TimeMachine czyli backup Mac OSX 10.7 Lion na FreeBSD

Założenia:
Host - Lion10.7
Serwer - FreeBSD8.2_64 - system plików zfs, zainstalowany i skonfigurowany jail.
Netatalk - 2.2.0_3,1
mDNSResponder - 320.5

Przygotowanie serwera:
W terminalu:

$ mkdir ~/TimeMachine
# portmaster /net/netatalk




W tym momencie warto odznaczyć opcję Zeroconf, która spowoduje instalację avahi wraz z milionem zależności.
Ponieważ istnieje alternatywa w postaci mDNSResponder warto z niej skorzystać.
Netatalk zainstalowany zatem czas na konfigurację:

# ee /usr/local/etc/AppleVolumes.default

Przed linią kończącą plik dodamy:

/usr/home/zet120/TimeMachine "TimeMachine" allow:zet120 cnidscheme:dbd options:usedots,upriv,tm volsizelimit:70000

volsizelimit - to rozmiar dysku przeznaczony na kopie systemu, w przykładzie 70000M
Następnie edytujemy plik konfiguracyjny serwera afp:

# ee /usr/local/etc/afpd.conf

Na końcu pliku dodamy:

- -tcp -noddp -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword -ipaddr 192.168.1.5

opcja ipaddr określa IP na którym pracuje nasz Jail.
Do rozgłaszania w sieci lokalnej obecności serwera afp oraz usługi TimeMachine niezbędny jest mDNSREsponder zatem instalacja:

portmaster net/mDNSResponder

i konfiguracja, która polega na utworzeniu skryptu do automatycznego uruchamiania po starcie systemu:

# ee /usr/local/etc/rc.d/mdnsadv

Do pustego pliku wkleimy taką zawartość:

#!/bin/sh

# PROVIDE: mdnsadv
# REQUIRE: LOGIN mdnsd
#
# Add the following lines to /etc/rc.conf to enable the mDNSResponder service advertising:
#
# mdnsadv_enable="YES"

. /etc/rc.subr

name="mdnsadv"
rcvar=${name}_enable

command="/usr/local/bin/mDNSResponderPosix"

load_rc_config $name

: ${mdnsadv_enable="NO"}

command_args="-f /usr/local/etc/mdnsadv.conf >/dev/null 2>&1 &"

run_rc_command "$1"

niezbędne uprawnienia:

# chmod ugo+x /usr/local/etc/rc.d/mdnsadv

oraz na utworzeniu pliku konfiguracyjnego

# ee /usr/local/etc/mdnsadv.conf

z zawartością:

AFP Server
_afpovertcp._tcp
548
title='File Server'

TM Volume
_adisk._tcp
9
sys=waMA=XX:XX:XX:XX:XX:XX,adVF=0x100
dk0=adVF=0x83,adVN=TimeMachine

waMA= Mac adres karty sieciowej serwera

Autostart zainstalowanych usług:

# ee etc/rc.conf
netatalk_enable="YES"
cnid_metad_enable="YES"
afpd_enable="YES"
mdnsd_enable="YES"
mdnsadv_enable="YES"

oraz uruchomienie usług:

# /usr/local/etc/rc.d/netatalk start
# /usr/local/etc/rc.d/mdnsadv start
# /usr/local/etc/rc.d/mdnsd start


Konfiguracja MacOSX
jest w zasadzie tożsama z konfiguracją pod Ubuntu z tą róznicą, że pozwalamy aby obraz dysku został wykreowany przez sam mechanizm TM.

wtorek, 16 sierpnia 2011

TimeMachine na Ubuntu

Wraz z premierą Liona oraz Netatalk 2.2 cała operacja dostosowania linuxowej maszyny zrobiła się względnie prosta przynajmniej jeżeli chodzi o podstawową usługę czyli funkcję kopii zapasowych na zdalnej maszynie.

Założenia:
Host - Lion10.7
Serwer - Ubuntu 11.04_64
Netatalk 2.2_beta4
Avahi - 0.6.30 defaultowo zainstalowany w Ubuntu 11.04

Przygotowanie serwera:
W terminalu Ubuntu:

mkdir ~/TimeMachine
cd ~/Pulpit
wget http://dl.dropbox.com/u/3739707/netatalk_2.2%7Ebeta4-1_amd64.deb
sudo dpkg -i netatalk_2.2~beta4-1_amd64.deb

W zależności od konfiguracji naszego Ubuntu mogą wystąpić problemy z zależnościami, jeżeli rzeczywiście wystąpią to dalej w terminalu:

sudo apt-get install -f

Konfiguracja:
Netatalk zainstalowany zatem konfiguracja.
# sudo nano /etc/netatalk/AppleVolumes.default
przed linią kończącą plik dodamy:

/home/zet120/TimeMachine TimeMachine allow:zet120 cnidscheme:dbd options:usedots,upriv,tm

# sudo nano /etc/netatalk/afpd.conf
na końcu pliku dodamy:

- -udp -noddp -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword

Restart daemonów:

sudo /etc/init.d/netatalk restart
sudo service avahi-daemon restart


To tyle, jeżeli chodzi o Ubuntu.


Konfiguracja MacOSX:
Próbujemy połączyć się z serwerem afp czyli [b]Finder /Idź/połącz z serwerem[/b]
i tam

afp://IP z Ubuntu

Zdalny udział zostanie zamontowany na Biurku zatem w temrinalu

cd /Volumes/TimeMachine

i kreujemy obraz, który będzie stanowił kontener o określonym rozmiarze dla kopii zapasowych.

hdiutil create -size 100g -fs HFS+J -volname "Time Machine" 'Mac Pro (zet120)'.sparsebundle

P.S.
Jeżeli chodzi o samą nazwę obrazu w sieci można spotkać rózne informacje, ale z moich doświadczeń wynika, że wystarczy aby ogólna postać nazwy wyglądała tak:

nazwa_modelu (nazwa_użytkownika).sparsebundle


To w zasadzie tyle, kopie zapasowe powinny wykonywać się automatycznie na zdalnej maszynie, a instalator Liona tak zareaguje gdy w naszej lokalnej sieci wykryje obecność serwera afp oferującego usługę TimeMachine:



czwartek, 31 grudnia 2009

Instalacja Mac OSX Leopard Snow 10.6.2 na VMware

W celach eksperymentatorsko poznawczych postanowiłem spróbować instalacji systemu Apple Mac OS X Snow Leopard 10.6.2 na VMware.
Przygotowania:
Potrzebujemy procesora z obsługą instrukcji SSE3 oraz VT-x
Ściągamy paczkę, w której jest zawarta przykładowa struktura dysku, sterowniki do systemu gościa, bootloader oraz kext do uruchomienia fonii.
Jako system host wykorzystałem Ubuntu 9.10 oraz VMware Workstation w wersji 7.0.0 build 203739
Uruchamiamy VMware i otwieramy, z wcześniej rozpakowanej paczki, plik Mac OS X Server 10.6 (experimental).vmx
W ustawieniach wirtualnej maszyny przechodzimy do konfiguracji i w opcjach CD/DVD wskazujemy z rozpakowanej paczki plik darwin_snow.iso
Start wirtualnej maszyny i oczekiwany efekt:

Obrazek1

Z dolnego paska narzędzi VMware wybieramy CD/DVD (IDE) / Settings i wkładamy do napędu nośnik z systemem.
Dodatkowo w sekcji Device Status zaznaczamy opcję Connected:

Obrazek2

Kolejny etap to wybór języka instalacji i w opcji dostosuj (tutaj warto poeksperymentować) pozostawiłem zaznaczoną opcję instalacji języka polskiego.
Dalej klasyczna instalacja, która zakończy się rebootem.
Reboot nie działa niestety właściwie i system należy startować z pliku darwin_snow.iso
Czyli ponowne uruchomienie i instalacja sterowników dla systemu gościa czyli z dolnego paska narzędzi wybieramy CD/DVD/Settings podajemy ścieżkę do obrazu darwin_snow.iso (tam są sterowniki) i zaznaczamy connect, na pulpicie pojawi się ikona, dwuklik......
Następny krok to uruchomienie dźwięku czyli rozpakowanie pliku EnsoniqAudioPCI.mpkg.tar.gz z pobranej paczki oraz klasyczna instalacja.
Kilejny krok to instalacja aktualizacji systemu do wersji 10.6.2, którą przeprowadzamy poprzez systemowe SU.
Końcowy rezultat:

Obraz4

wtorek, 15 grudnia 2009

rTorrent 0.8.6 - instalacja ze źródeł z obsługą Xmlrpc

Niezbędne pakiety:

sudo apt-get install build-essential libsigc++-2.0-dev pkg-config libcurl4-openssl-dev libidn11-dev libkadm5srv6 libkrb5-dev libssl-dev zlib1g-dev libncurses5 libncurses5-dev libxmlrpc-c3-dev

Kompilacja oraz instalacja libtorrent:

cd libtorrent-0.12.6
./configure
make
sudo make install

Kompilacja instalacja rtorrent:

cd rtorrent-0.8.6
./configure --with-xmlrpc-c
make
sudo make install

poniedziałek, 14 grudnia 2009

GRUB2 - Zmiana Wyglądu



Do listy repozytoriów Ubuntu 9.10
sudo gedit /etc/apt/sources.list

dodamy:

deb http://ppa.launchpad.net/bean123ch/burg/ubuntu karmic main
deb-src http://ppa.launchpad.net/bean123ch/burg/ubuntu karmic main

Dalej klasycznie:

sudo apt-get update

Usuniemy używanego GRUBA

sudo apt-get purge grub-pc

oraz katalog

sudo rm -R /boot/grub

Instalacja:

sudo apt-get install grub-pc

Aktualizacja sektora startowego mbr.

sudo grub-install "(hd0)"

Ściągamy dostępne motywy, zapiszemy na Pulpit i w konsoli:

cd /boot/grub/
sudo tar xzf ~/Pulpit/nazwa_themesa

Przystępujemy do konfiguracji, a w tym celu do pliku

sudo gedit /etc/default/grub

dopiszemy

GRUB_GFXMODE=1600x1200 ---->warto sprawdzć jakie rozdzielczości obsługuje GRUB poleceniem vbeinfo
GRUB_THEME=nazwa thema

Mój plik wygląda tak:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.

GRUB_DEFAULT=0
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="acpi_enforce_resources=lax"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entrys
GRUB_DISABLE_LINUX_RECOVERY="true"
GRUB_GFXMODE=1600x1200
GRUB_THEME=chiva

Ostatnia czynność to standardowe polecenie sudo update-grub, które spowoduje wygenerowanie aktualnego pliku /boot/grub/grub.cfg

poniedziałek, 2 lutego 2009

Interfejs sieciowy WebUI dla rTorrenta - wTorrent.

Istnieje całkiem sporo sieciowych nakładek WebUI na rTorrent'a, ale prawdopodobnie największą uwagę zwraca wTorrent, a to dzięki bardzo milutkiemu i całkowicie" spolszczonemu" interfejsowi.
Aby skorzystać z możliwośći jaką daje wTorrent należy zainstalować potrzebne oprogramowanie:

(tutaj drobna uwaga: rTorrent MUSI być zainstalowany z obsługą xmlrpc i własnie tak będzie gdy zainstalujemy go z repozytoriów dla Ubuntu 8.10.
Nie wiem dokładnie od kiedy tak jest, ale tak własnie jest, zatem odpada potrzeba instalacji ze źródeł)
Zatem:

# sudo apt-get install apache2 php5 php5-xmlrpc php5-sqlite sqlite libxmlrpc-c3 libapache2-mod-scgi rtorrent subversion


Tuż po instalacji można sprawdzić czy serwer apache działa wpisując w przeglądarkę:

http://localhost

Tekst It works! świadczy o poprawnej pracy serwera.
Następnie tworzymy w katalogu domowym folder public_html:

$ mkdir ~/public_html

Następnym krokiem będzie poinformowanie apache gdzie ma "patrzeć", zatem;

# sudo nano /etc/apache2/sites-available/default

Zastępujemy treść tego pliku takim wpisem: (Jako user podajemy własną nazwę użytkownika.)

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /home/user/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/user/public_html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
LoadModule scgi_module /usr/lib/apache2/modules/mod_scgi.so
SCGIMount /RPC2 127.0.0.1:5000
</VirtualHost>



Dwie ostatnie linijki tego wpisu to przekazanie, (sprzeżenie) rtorrent'a i serwera apache.
Następnie restart serwera:

# sudo /etc/init.d/apache2 restart

Kolejny krok to utworzenie w folderze domowym katalogów roboczych dla rtorrenta: (stosownie do własnych potrzeb)

$ mkdir ~/Dane
$ mkdir ~/Dane/pliki
$ mkdir ~/Dane/sesje

oraz pliku konfiguracyjnego:

$ nano ~/.rtorrent.rc

o takiej treści (to mój przykład, który należy dostosować do własnych potrzeb)

session = /home/user/Dane/sesje
directory = /home/user/Dane
upload_rate = 0
download_rate = 0
use_udp_trackers = yes
max_uploads = 200
port_range = 6892-6892
min_peers=10
max_peers=400
check_hash = no
schedule = low_diskspace,5,60,close_low_diskspace=20M
schedule = watch_directory,5,5,load_start=/home/user/Dane/pliki/*.torrent
schedule = untied_directory,5,5,stop_untied=
scgi_port = localhost:5000

Najistotniejsza jest ostatnia linijka niezbędna do poprawnej pracy wtorrenta.
Test działania rtorrenta:

$ rtorrent

oraz test słuchania

# sudo netstat -npl | grep rtorrent

Jeżeli wynik będzie zbliżony do tego:

tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 6642/rtorrent
tcp 0 0 0.0.0.0:6892 0.0.0.0:* LISTEN 6642/rtorrent

to jest dobrze. :-)

Zamykamy działanie rTorrenta w sesji screen 'a i przechodzimy do folderu:

$ cd ~/public_html

wykonujemy:

$ svn co svn://wtorrent-project.org/repos/trunk/wtorrent/
$ mv wtorrent/* .
# sudo cp /conf/sample.user.conf.php /conf/user.conf.php

Pozostaje nadanie odpowiednich uprawnień:

# sudo chown -R www-data:www-data *


W przeglądarce wybieramy:

http://localhost/install.php

Wypełniamy odpowiednie pola i zapisujemy konfigurację.
Następnie w celach bezpieczeństwa usuwamy plik:

# sudo rm ~/public_html/install.php

W przeglądarce wybieramy:

http://localhost/index.php

i efekt:



P.S.
Większość tutoriali poświęconych wtorrentowi zakłada uruchamianie rtorrenta w sesji screen 'a razem ze startem systemu.
Z punktu widzenia działania wtorrenta nie jest to konieczne aczkolwiek instalacja na serwerze np. domowym ułatwia obsługę.
Aby spowodować uruchamianie rtorrenta wraz z systemem najlepiej skorzystać z gotowego skryptu, a zatem:

# wget http://libtorrent.rakshasa.no/attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh?format=raw -O /etc/init.d/rtorrent

następnie edytujemy skrypt zastępując nazwę user swoją nazwą użytkownika:

# nano /etc/init.d/rtorrent

nadajemy prawo do wykonania jako programu, umożliwiamy autostart i startujemy.

# chmod +x /etc/init.d/rtorrent
# update-rc.d rtorrent defaults
# /etc/init.d/rtorrent start

Podczas następnego startu systemu rtorrent zostanie automatycznie uruchomiony w sesji screen 'a.