Am Beispiel des Heise Servers holem wir zuerst die Daten via wget.
$ wget --header="Accept-Encoding: gzip, deflate" http://heise.de
–2012-01-04 15:50:08– http://heise.de/
Resolving heise.de… 193.99.144.80, 2a02:2e0:3fe:100::8
Connecting to heise.de|193.99.144.80|:80… connected.
HTTP request sent, awaiting response… 301 Moved Permanently
Location: http://www.heise.de/ [following]
–2012-01-04 15:50:08– http://www.heise.de/
Resolving www.heise.de… 193.99.144.85, 2a02:2e0:3fe:100::7
Connecting to www.heise.de|193.99.144.85|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 17439 (17K) [text/html]
Saving to: `index.html’
100%[=======>] 17,439 –.-K/s in 0.05s
2012-01-04 15:50:08 (316 KB/s) – `index.html’ saved [17439/17439]
jetzt schauen wir, ob die geholte index Datei gzip komprimiert ist:
$ strings index.html|head -n 1
goNY
ok… das sieht nach GZIP aus…
jetzt nur noch die Datei entpacken:
$ mv index.html index.html.gz
gzip -d index.html.gz
und prüfen ob die HTML Datei stimmt…
strings index.html|head -n 1
< !DOCTYPE html>
Um ffmpeg, x264, libx264-dev und yasm zu aktualisieren, wenn diese zuvor mit diese Anleitung eingerichtet wurde müssen diese zuerst deinstalliert werden:
sudo apt-get remove yasm ffmpeg x264 libx264-dev
Jetzt ein Paket nach dem anderen bereinigen, aktualisieren und neu Übersetzen:
yasm
cd /usr/src/yasm
make distclean
git pull
./autogen.sh
./configure --disable-nls --prefix=/usr
make
sudo checkinstall --pkgname=yasm --pkgversion="$(cat YASM-VERSION-FILE)" \
--backup=no --deldoc=yes --fstrans=no --default
x264
cd /usr/src/x264
make distclean
git pull
./configure
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes --fstrans=no --default
ffmpeg
cd /usr/src/ffmpeg/
make distclean
git pull
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(./version.sh)" --backup=no --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe
Sollten zweifel bestehen ob ffmpeg und x264 korrekt eingerichtet wurden, im Aufruf von x264 –version und im Aufruf von ffmpeg erscheint als “built”-Datum das aktuelle Datum.
Abhängigkeiten Installieren
Entfernen der alten Installationen von x264, libx264-dev und ffmpeg.
sudo apt-get remove ffmpeg x264 libx264-dev
Alle für die übersetzung von x264 und FFmpeg notwendigen Pakete holen.
sudo apt-get update
sudo apt-get install build-essential checkinstall git libfaac-dev \
libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev \
libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libva-dev \
libvdpau-dev libvorbis-dev libx11-dev \
libxfixes-dev texi2html yasm zlib1g-dev
Der aktuelle Benutzer muss noch in die Gruppe “src” so das er in /usr/src schreiben darf:
sudo usermod -aG src $(whoami)
YASM holen und Compilieren!
cd /usr/src
git clone https://github.com/yasm/yasm.git
cd yasm
./autogen.sh
./configure --disable-nls --prefix=/usr
make
sudo checkinstall --pkgname=yasm --pkgversion="$(cat YASM-VERSION-FILE)" \
--backup=no --deldoc=yes --fstrans=no --default
x264 Installieren
Die aktuellen Sourcecodes für x264 holen und übersetzen.
cd /usr/src
git clone git://git.videolan.org/x264
cd x264
./configure --enable-static
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
--fstrans=no --default
Install libvpx
VP8/WEBM holen und compilieren
sudo apt-get remove libvpx-dev
cd
git clone http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure
make
sudo checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" \
--backup=no --deldoc=yes --fstrans=no --default
Installation von FFmpeg
Holen der aktuellsten Version, Compilieren, und Installation von FFMPEG.
cd /usr/src
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libfaac --enable-libmp3lame \
--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora \
--enable-libvorbis \ --enable-libx264 --enable-nonfree --enable-postproc \
--enable-version3 --enable-x11grab --enable-libvpx
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" \
--backup=no --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe
lavf Support zu x264 Hinzufügen.
Der lavf-Support erlaubt x264 alle Input-Dateien anzunehmen die von FFmpeg unterstützt werden. Dies ist sehr praktisch wenn x264 direkt verwendet werden soll.
cd /usr/src/x264
make distclean
./configure --enable-static
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
--fstrans=no --default
Hiermit ist die Installation abgeschlossen.
Du solltest die Source-Verzeichnisse von x264, libvpx, und ffmpeg behalten um Sie später einfach aktualisieren zu können. Siehe auch Aktualisieren von FFmpeg und x264 für weitere Informationen.
Um die Änderungen dieser Anleitung rückgängig zu machen und FFmpeg, x264, yasm und alle anderen Pakete aus dieser Anleitung wieder zu entfernen nutze folgendes Kommando:
sudo apt-get autoremove x264 ffmpeg qt-faststart build-essential git checkinstall \
yasm texi2html libfaac-dev libjack-jackd2-dev libmp3lame-dev libsdl1.2-dev \
libtheora-dev libva-dev libvdpau-dev libvorbis-dev libvpx libx11-dev \
libxfixes-dev zlib1g-dev
FLV Dateien Zusammenfügen
avidemux2_cli –load in1.flv –append in2.flv \
–audio-codec COPY –video-codec COPY –output-format FLV –save out.flv
FLV in MKV umwandeln
ffmpeg -i in.flv -vcodec copy -acodec copy out.mkv
Video Dateien Zusammenfügen (variante nicht FLV)
cat in1.avi in2.avi|ffmpeg -f mpeg -i - -sameq -vcodec copy -acodec copy out.mkv
FLV Dateien konvertieren
avidemux2_cli –load in.flv –audio-codec aac –video-codec x264 –output-format AVI –save out.avi
MP3 aus Video extrahieren
ffmpeg -i in.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 out.mp3
Video-DVD erstellen
ffmpeg -i in.avi -aspect 4:3 -target pal-dvd dvd.vob
ffmpeg -i in.avi -aspect 16:9 -target pal-dvd dvd.vob
dvdauthor -o ZielVerzeichniss/ -t in1.vob in2.vob in3.vob
dvdauthor -T -o ZielVerzeichniss/
Die benötigte “modrewrite” regel in der Lighttpd konfiguration.
$HTTP[”host”] =~ “^(?:www\.)?DOMAINNAMEN\.TLD(?::|$)” {
server.document-root = “/var/www/hosts/DOMAIN.TLD/”
accesslog.filename = “/var/www/logs/DOMAIN.TLD-access.log”
url.rewrite = ( “^/(wp-admin/|wp-content/|wp-includes/|wp-login\.php|xmlrpc\.php|robots\.txt|sitemap\.xml|wp-).*” => “$0″,
“^” => “index.php” )
}
System vorbereiten
aptitude install checkinstall python-mysqldb liblua5.1-dev libmysqlclient-dev libssl-dev libbz2-dev libpcre3-dev libgtkhtml2-0 libgtkhtml2-dev libsqlite-dev libsqlite3-dev libmemcache-dev libaio-dev libldap2-dev automake1.9 libgeoip-dev e2fsprogs e2fsprogs-devel
aptitude remove –purge automake1.4 automake1.7 automake1.8
alleine wegen den Konfigurations und startscripten:
aptitude install lighttpd
Quellen herunterladen
cd /usr/src svn co svn://svn.lighttpd.net/lighttpd/trunk/
mv /usr/src/trunk /usr/src/lighttpd-1.5.0
cd /usr/src/lighttpd-1.5.0
./autogen.sh
GeoIP Modul für Lighttpd 1.5
wget http://redmine.lighttpd.net/attachments/download/717/mod_geoip_for_1.5.c
mv mod_geoip_for_1.5.c src/mod_geoip.c
vi src/Makefile.am
nach der letzter “lib_LTLIBRARIES” Zeile folgendes einfügen:
lib_LTLIBRARIES += mod_geoip.la
mod_geoip_la_SOURCES = mod_geoip.c
mod_geoip_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_geoip_la_LIBADD = $(common_libadd) -lGeoIP
GeoIP Datenbanken herunterladen
wget -O /var/www/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget -O /var/www/GeoLiteCity.dat.gz http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip /var/www/*.dat.gz
/etc/lighttpd/conf-available/10-geoip.conf
#### GeoIP
geoip.db-filename = “/var/www/GeoIP.dat”
geoip.memory-cache = “enable”
#### GeoIP Lite City
# geoip.db-filename = “/var/www/GeoLiteCity.dat”
# geoip.memory-cache = disable
server.modulesi += ( “mod_geoip” )
./configure –enable-maintainer-mode –prefix=/usr –with-openssl –with-lua=lua5.1 –with-memcache –with-gdbm –with-webdav-props –with-ldap –with-attr –with-linux-aio –with-mysql –with-webdav-locks
make
checkinstall –install=no -D –default –pakdir=/usr/src –gzman=yes
aptitude remove lighttpd
dpkg -i lighttpd_1.5.0-1_i386.deb
Formatwandlung eines Zertifikates vom .pem in das .pkcs12 Format
openssl pkcs12 -export -out mycert.p12 \
-inkey $HOME/.globus/userkey.pem \
-in $HOME/.globus/usercert.pem -name “My Certificate”
Formatwandlung eines Host Zertifikates vom .pkcs12 in das .pem Format
openssl pkcs12 -in host.domain.p12 -clcerts -nokeys -out host.domain.cert.pem
openssl pkcs12 -in host.domain.p12 -nocerts -nodes -out host.domain.key.pem
# These files should then be placed in /etc/grid-security and httpd.conf
# modified accordingly. host.domain.cert.pem can safely be world readable
# but host.domain.key.pem must only be readable by root!:
chown root.root host.domain.key.pem
chmod 0400 host.domain.key.pem
Formatwandlung eines Benutzer Zertifikates vom .pkcs12 in das .pem Format
openssl pkcs12 -in export.p12 -clcerts -nokeys -out $HOME/.globus/usercert.pem
openssl pkcs12 -in export.p12 -nocerts -out $HOME/.globus/userkey.pem
# The user certificate can safely be world readable, but userkey.pem
# must only be readable by you!
chmod 0400 $HOME/.globus/userkey.pem
Passwort des Private keys ändern
openssl rsa -in $HOME/.globus/userkey.pem -des3
# you will be prompted for the old passphrase, the new passphrase
# and to verify the new passphrase
Informationen aus dem Zertifikat anzeigen.
# viele Informationen
openssl x509 -text -in cert.pem
# Aussteller
openssl x509 -noout -in cert.pem -issuer
# subject
openssl x509 -noout -in cert.pem -subject
# in welchem Zeitraum ist es gültig?
openssl x509 -noout -in cert.pem -dates
# Der Hash wert des Zertifikates
openssl x509 -noout -in cert.pem -hash
# Der MD5 Fingerprint
openssl x509 -noout -in cert.pem -fingerprint
Zertifikat überprüfen
openssl verify cert.pem
Apache2 und PHP5 installation
~# aptitude install apache2 php5
Subversion Installation und Konfiguration
Subversion Packete
~# apt-get install subversion
~# apt-get install libapache2-svn
~# /etc/init.d/apache2 restart
Erstellen und veröffentlichen eines repositories
~# mkdir /var/svn-repos/
~# svnadmin create –fs-type fsfs /var/svn-repos/angststalt
Das Repository Verzeichniss benötigt die entsprechenden Rechte für Apache2 und die anderen Benutzer. Erstellen einer Gruppe und die Benutzer dieser hinzufügen.
~# groupadd subversion
~# adduser kuehnel
~# addgroup kuehnel subversion
~# chown -R www-data:subversion /var/svn-repos/*
~# chmod -R 770 /var/svn-repos/*
Das Repository ist ab jetzt via svn+ssh://hostname/var/svn-repos/
Subversion WebDAV
~# a2enmod dav
~# a2enmod dav_svn
~# htpasswd -c /etc/apache2/dav_svn.passwd kuehnel
DAV svn
SVNPath /var/svn-repos/angststalt
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
#SSLRequireSSL
WebSVN Einrichten
~# aptitude install enscript
~# aptitude install websvn
Soll SVN jetzt konfiguriert werden: Ja
svn-Stammdepots: /var/svn-repos
Die gewählte Konfiguration liegt in der Datei
/etc/websvn/svn_deb_conf.inc
/etc/websvn/config.inc
ServerAdmin webmaster@example.com
ServerName svn.example.com
DocumentRoot /var/www/websvn/
Options FollowSymLinks
AllowOverride None
order allow,deny
allow from all
AuthType Basic
AuthName “Subversion Repository”
Require valid-user
AuthUserFile /etc/apache2/dav_svn.passwd
php_flag magic_quotes_gpc Off
php_flag track_vars On
Teile des Spamassassin werden zumeist in Dateien geschrieben, haben aber, solange wir Zugriff auf eine MySQL Datenbank haben, dort nichts zu suchen.
Speziell die Bayes Datenbank und das Whitelisting haben in Dateien nichts zu suchen.
Bayes in die MySQL Datenbank
/etc/spamassassin/local.cfbayes_auto_expire 0 bayes_expiry_max_db_size 150000
Ich gehe jetzt im weitern Verlauf davon aus, dass MySQL bereits läuft. Dennoch muss die Perl-Schnittstelle für den MySQL Datenbankzugriff zumeist noch Installiert werden. Das geht entwender per MCPAN und in Debian Systemen auch mit apt-get:
- Vorraussetzungen
perl -MCPAN -e shell install DBD::mysql apt-get install libtie-cache-perl libdbd-mysql-perl
- Nun wird die notwendige DB angelegt
mysqladmin -p create spamassassin_db -u root
- Vergabe der Rechte für einen speziellen User
grant all privileges on spamassassin_db.* to spamassassin_usr@localhost identified by 'password';
- anlegen der notwendigen Tabellen
mysql -u spamassassin_usr spamassassin_db -p < /usr/share/doc/spamassassin/sql/bayes_mysql.sql
- /etc/spamassassin/local.cf um die SQL-DB Einträge erweitern
bayes_store_module Mail::SpamAssassin::BayesStore::SQL bayes_sql_dsn DBI:mysql:spamassassin_db:localhost bayes_sql_username spamassassin_usr bayes_sql_password password bayes_sql_override_username spamassassin
Dabei müssen Sie darauf achten, dass der Zugriff auf die alten bayes-Dateien deaktiviert wurde.
# bayes_path /var/spool/bayes_db/bayes # bayes_file_mode 770
Eine Änderung der Konfiguration der bayes-DB merkt Spamassassin i.d.R. sofort. Starte Sie dennoch den Dienst neu:
/etc/init.d/spamassasin restart
Um zu prüfen, ob die bayes Einträge auch korrekt abgelegt werden reicht es, sich den Inhalt einer der Tabellen anzuschauen. Steht unter Count eine Zahl > 0 sind bereits Datein gespeichert worden:
mysql -u root -p mysql> use spamassassin_db; mysql> select COUNT(*) FROM bayes_vars WHERE username ='spamassassin'; +----------+ | COUNT(*) | +----------+ | 1 | +----------+ 1 row in set (0.00 sec)
Um die alten bayes Einträge zu übernehmen, können diese mittels sa-learn ex-/importiert werden:
sa-learn --backup > bayes.db sa-learn --restore bayes.db
Whitelisting
- Vorraussetzungen
perl -MCPAN -e shell install DBD::mysql apt-get install libtie-cache-perl libdbd-mysql-perl
- Nun wird die notwendige DB angelegt
mysqladmin -p create spamassassin_db -u root
- Vergabe der Rechte für einen speziellen User
grant all privileges on spamassassin_db.* to spamassassin_usr@localhost identified by 'password';
- anlegen der notwendigen Tabellen
mysql -u root spamassassin_db -p < /usr/share/doc/spamassassin/sql/awl_mysql.sql
- /etc/spamassassin/local.cf um die SQL-DB Einträge erweitern
use_auto_whitelist 1 user_awl_dsn DBI:mysql:spamassassin_db:localhost user_awl_sql_username spamassassin_usr user_awl_sql_password Passwort user_awl_sql_table awl
Dabei müssen Sie darauf achten, dass der Zugriff auf die alte autowhiteliste deaktiviert wurde
#auto_whitelist_path /var/spool/spamassassin/auto-whitelist #auto_whitelist_file_mode 0666
eine Änderung der Konfiguration der bayes-DB merkt Spamassassin i.d.R. sofort. Starte Sie dennoch den Dienst neu:
/etc/init.d/spamassasin restart
Um zu prüfen, ob die bayes Einträge auch korrekt abgelegt werden reicht es, sich den Inhalt einer der Tabellen anzuschauen. Steht unter Count eine Zahl > 0 sind bereits Datein gespeichert worden:
mysql -u root -p mysql> use spamassassin_db; mysql> select count(*) from awl; +----------+ | count(*) | +----------+ | 1 | +----------+ 1 row in set (0.01 sec)
Ein Blick in die Log-Datei von Spamassassin schadet auf keinen Fall. Wo diese liegt, kann man der Datei /etc/default/spamassassin entnehmen