Archive for the 'Entwicklung' Category

Debian 6 Lenny ruby bundler Fehler

Wenn man bundler mittels gem in Debian 6 installiert kommt immer ein require Fehler.

gem install bundler 
bundle:4:in `require': no such file to load -- bundler (LoadError)

Um dies zu beheben muss ein Symlink gesetzt werden.

ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle

Natsort in mySQL

“Natsort” scheint irgendwie nicht so ganz unterstützt zu werden. Hier ein Vorschlag von irgendwo her:


CONCAT(IF(ASCII(LEFT(`sortcol`,1))>57,LEFT(`sortcol`,1),'0'),IF(ASCII(RIGHT(`sortcol`,1))>57,LPAD(`sortcol`,10,'0'),LPAD(CONCAT(`sortcol`,'-'), 10,'0'))) AS sortname

ruby bundler in Ubuntu 11.04 verwenden

Nach der Installation von “sudo gem install bundler” läuft irgendwie noch nix.

Erst wenn man das Paket verlinkt, dann läuft alles:

“sudo ln -s /var/lib/gems/1.8/bin/bundle /usr/local/bin/bundle”

Apache Redirect für Subdomain

Um eine Domain auf eine Subdomain umzuleiten mittels 301 muss folgendes in der .htaccess oder im vhost eingetragen werden:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]

SVN Dateien über Apache verbieten

Damit man SVN-Projekte direkt über Apache ausliefern kann ist es hilfreich die SVN Verzeichnisse direkt zu verbieten.

Als vHost Eintrag (403 Seite) im Block:


Order allow,deny
Deny from all

Als Rewrite rule in der .htaccess:
RewriteRule ^(.*/)?\\.svn/ - [F,L]

Als redirect zur 404 Seite:
RedirectMatch 404 /\\.svn(/|$)

Pipe in Typo3 Menü

Eine Pipe (|) kann nicht so einfach in ein Typo3 Menü integriert werden, da dieses Zeichen reserviert ist. Stattdessen kann einfach die Entity verwendet werden:
& # x007C;

Suchen von 404 Codes im Apache Log

Shell Kommando zum auflisten aller 404 Codes eines Logfiles:


awk '$9 == 404 {print $7}' access_log | uniq -c | sort -rn | head

Login Seite nach Anmeldung in Logout umbennen

In der TYPO3 Seite im Typoscript-Setup des Templates folgenden Code eintragen. Damit wird der vergebene Untertitel (in dem Fall der “Login”-Seite natürlich “Logout”) angezeigt:


[loginUser = *]
page.10.marks.MENU.1.NO.stdWrap.override.cObject = TEXT
page.10.marks.MENU.1.NO.stdWrap.override.cObject {
field = subtitle
if.value.field = uid
if.equals = [[PID-DER-SEITE-EINTRAGEN]]
}

page.10.marks.MENU.1.CUR.stdWrap.override.cObject < page.10.marks.MENU.1.NO.stdWrap.override.cObject
[global]

Log4j nach Jabber

Um Nachrichten über Jabber zu versenden reicht ein Eintrag in der Konfigurationsdatei:


log4j.rootCategory=debug, im
log4j.appender.im = com.orangesoft.logging.IMAppender
log4j.appender.im.host = JABBER_SERVER
log4j.appender.im.username = APP_JABBER_ACCOUNT_USERNAME
log4j.appender.im.password = APP_JABBER_ACCOUNT_PASSWORD
log4j.appender.im.recipient = YOUR_JABBER_ADDRESS (e.g. foobar@jabber.org)
log4j.appender.im.layout=org.apache.log4j.PatternLayout
log4j.appender.im.layout.ConversionPattern = %n%r [%-5p] %M:%L - %m

Log4j in mySQL Tabelle

Um Logeinträge in eine Datenbanktabelle zu schreiben reicht ein Konfigurationseintrag:


log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A1.driver=com.mysql.jdbc.Driver
log4j.appender.A1.URL=jdbc:mysql://127.0.0.1:3306/test
log4j.appender.A1.user=root
log4j.appender.A1.password=
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=INSERT INTO log (`date`,`class`,`level`,`message`) VALUES (TIMESTAMP('%d{yyyy-MM-dd HH:mm:ss}'), '%c', '%p', '%m')

MySQL-Tabelle:

CREATE TABLE `log` (
`id` int(11) NOT NULL auto_increment,
`date` datetime NOT NULL,
`name` varchar(250) default NULL,
`level` varchar(250) default NULL,
`message` TEXT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;