Schlagwort-Archive: Code

PHP 5 und WordPress Plugins

In einer spontanen Aktion hatte ich es schon versucht auf meinem Server PHP 5 zu installieren. Nachdem einige WordPress Installationen den Dienst verweigert haben, war der Server-Restore die schnellere Lösung. Nach Rücksprache mit dem Support von Host Europe stellte sich heraus dass der Grund für den Fehler die bei PHP 5 restriktivere open_basedir restriction war. Dies wird in der Apache error_log ersichtlich:
PHP Warning: main() [function.main]: open_basedir restriction in effect. File(/usr/share/php5/config.php) is not within the allowed path(s): (/srv/www/.../httpdocs:/tmp) in /srv/www/.../plugins/anarchy_media/anarchy_media_player.php on line 20

Eine kleine Anpassung des Anarchy Media Player Plugin war also nötig:
In Zeile 20 habe ich include_once('config.php'); durch require_once(dirname(__FILE__).'/config.php'); ersetzt.
Weiter hat auch das Statistik-Plugin WP-Slimstat nicht mehr funktioniert. Da ich in einer anderen Installation WP-Slimstat-Ex verwende, beschloss ich ebenfalls umzusteigen (Weitere Infos zu Slimstat-Ex in meinem Post).
Vielen Dank an den guten Support von Host Europe und die Hilfe von Spuky.

WordPress automatisch aktualisieren

Wer gleichzeitig mehrere WordPress-Installationen upgraden möchte, kann dies elegant mit dem Shell-Skript von Alex Günsche erledigen. Voraussetzung dazu ist Shell-Zugriff und root-Rechte für den Server. Wer dies nicht zur Verfügung hat und nur eine einzelne Installation aktuell halten möchte, sollte das InstantUpgrade Plugin von Alex Günsche zu testen.
Das Skript lädt jeweils die aktuellste Version von WordPress herunter, entpackt diese und aktualisiert die angegebenen Verzeichnisse. Um das Skript zu verwenden sollte man allerdings genau wissen was man tut und vorher ein Backup erstellt haben. Ich habe es zudem zuerst an meiner Beta-Installation getestet. Folgende Schritte sind durchzuführen:

  1. Als Root einloggen und in das Verzeichnis /root/ wechseln (# cd /root)
  2. Ein Verzeichnis namens wpupgrade anlegen (# mkdir wpupgrade)
  3. In diesem Verzeichnis das Skript (s.u.) z.B. unter dem Namen wpupdate speichern
  4. Das Skript mit ausführbar machen (# chmod +x ./wpupdate)
  5. Ein Verzeichnis mit allen benötigten Sprachdateien anlegen (# mkdir languages)
    Die aktuelle deutsche Sprachdatei findet man bei WordPress-Deutschland
  6. Die Datei installations anlegen und dort die absoluten Pfade zu den einzelnen WordPress-Installationen und den Url folgendermaßen angeben:
    /srv/www/vhosts/domain.de/httpdocs/=http://domain.de/
    /srv/www/vhosts/domain2.de/httpdocs/=http://domain2.de/
  7. Das Skript ausführen (# ./wpupdate)

Hier das Skript zum Download: wpupdate.
Hinweis: Das Skript funktioniert mit der aktuellen WordPress-Dateistruktur und ich habe es zum Update auf Version 2.2.1 verwendet. Bitte die Lizenzhinweise im Header beachten.

Update:

Beim Update der von mir verwalteten Weblogs habe ich einen Fehler beim chown der kopierten Dateien erhalten. Die neue WordPress-Version wird vom Skript mit den Berechtigungen des root-User kopiert. Deshalb müssen am Ende der Besitzer und die Gruppe korrigiert werden. Damit das Skript vollständig auf meinem Server mit einer Linux Suse 10.0 Installation und Plesk 8.2 funktioniert waren dazu folgende Anpassungen notwendig.
In Zeile 67 & 68:

USER=$(ls -l ${DIR}/wp-config.php | cut -f 4 -d ' ')
GROUP=$(ls -l ${DIR}/wp-config.php | cut -f 5 -d ' ')

In Zeile 86:

chown -R ${USER}:${GROUP} ${DIR}/*

Die Anpassungen in Zeile 67 & 68 bewirken, dass der richtige Benutzer und die richtige Gruppe zugeordnet werden. Mit der Anpassung in Zeile 86 wird festgelegt, dass nur Dateien innerhalb des WordPress Installationsverzeichnisses angepasst werden.
Um festzustellen ob tatsächlich der benötigte Benutzer und die richtige Gruppe eingesetzt wird, können folgende Befehle im WordPress-Verzeichnis ausgeführt werden. Dabei wird jeweils der Benutzer und die Gruppe ausgegeben:

# ls -l wp-config.php | cut -f 4 -d ' '
# ls -l wp-config.php | cut -f 5 -d ' '

Vielen Dank an Alex Günsche für den netten live Support bei der Anpassung an meine Bedürfnisse.

Kommen und suchen

Wenn man kommt, ist der Maus-Cursor schon da, so ist man das inzwischen auf großen Suchseiten gewohnt (z.B. bei Yahoo, Google, Leo). Für ein Weblog lautet die Devise kommen und lesen.Die wenigsten Leser verwenden die Suche hier auf mzungus. Man kommt frisch gesucht von www.googel.de. Aber warum nicht doch mal suchen? Ab sofort steht der Cursor wenigstens schon mal bereit. Text gelesen und Interesse an mehr? Suchen geht nun mit tippen & Eingabe. Und wenn der Cursor doch mal weg ist, kommt man mit dem Access-Key „Alt + s“ in das Suchfeld. (Natürlich kann man wie gehabt die Maus dazu verwenden).
Und so siehts aus:


   function setFocus() {     document.f.s.focus();     document.f.s.select();   }
     
         setFocus();

Für das Code-Highlightning verwende ich übrigens das Plugin iG:Syntax Hiliter. Scheint ganz gut zu funktionieren. Mit Code Snippet hatte ich etwas Probleme. Gibt es sonstige Empfehlungen für code-Highlightning in WordPress? Vielleicht ein Plugin das auch im WYSIWYG Editor funktioniert?

WordPress-Feed ohne Verluste umleiten

Seit einiger Zeit habe ich einen ungenutzten Feedburner-Account, weil es mir bislang zu aufwendig war den Feed in die Seite einzubinden und alle Leser zu bitten diesen zu abonieren. Heute morgen habe ich jedoch bei Perun gelesen, dass er das elegant mit einem WordPress-Plugin umgeht (Vielen Dank für den Hinweis!). Alle Feeds werden via mod_rewrite auf Feedreader umgebogen. Anfangs funktionierte meine angepasste .htaccess Datei jedoch nicht richtig. Das Plugin kann die vorhandene Datei automatisch anpassen, wenn die Berechtigungen richtig gesetzt sind (chmod 666). Damit mein Feed richtig umgeleitet wurde, musste ich den doppelten Eintrag der WordPress rules entfernen.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Feed StatsFeedburner ist ein kostenloser Dienst der Statistiken zu den Feeds anbietet. Bisher hatte ich keine Ahnung ob irgendwer überhaupt meinen Feed liest. Und siehe da, es werden schon 10 Leser angezeigt, und das obwohl die Umleitung jetzt gerade mal seit 30 min. läuft.
Wie man mit Firefox einen RSS-Feed aboniert liest du hier.

Update:

Das Plugin wird inzwischen von Feedburner selbst verwaltet und verändert auch die .htaccess nicht mehr. Nach Aktivieren des Plugins müssen nur noch die eigenen Feedurls von Feedburner eingetragen werden. Die aktuelle Version erhält man im Feedburner-Blog.

mein IP detector

ist euch in den log-dateien eurer seite auch schon mal aufgefallen das immer jemand über ein bestimmtes firmennetz reinsurft? und wenn man die person kennt wäre es ja mal ganz nett ne persönliche begrüssung einzubauen. anwenden kann man das natürlich auch für alle kollegen, oder für bestimmte universitäten oder fachhochschulen.
mir ist jedenfalls vor kurzem jemand in den log dateien aufgefallen und ich habe das ganze mal erfolgreich ausprobiert.

<head>
<!– IP Detector –>
<script language="JavaScript" type="text/JavaScript">
<!–
function MM_popupMsg(msg) { //v1.0
alert(msg);
}
//–>
</script>
<?php /* IP bestimmen */ $ip = getenv("REMOTE_ADDR"); ?>
<!– IP Detector –>
</head>
<body <?php if ($ip=='127.0.0.1' or $ip=='192.168.0.1')
{
echo " onLoad="MM_popupMsg('Hey …, was machst du den schon wieder hier, _solltest du nicht am Arbeiten sein?')" ";
}
?>>
</body>

Am ende ging das ganze doch einfacher als erwartet. von hier aus natürlich noch einen lieben Gruss an „das Opfer“ ;-).

dialog mit dem mailserver

hier die aufzeichnung des dialogs mit meinem mailserver um herauszufinden ob es die emailadresse „horschd@mzeecedric.de“ gibt. Resultat: User unknown.

SMTP session

[Contacting mail.mzeecedric.de [195.137.212.26]…]
[Connected]

220 basicbox4.server-home.net ESMTP Postfix (Debian/GNU)
HELO hexillion.com
250 basicbox4.server-home.net
MAIL FROM: HexValidEmail@hexillion.com
250 Ok
RCPT TO: horschd@mzeecedric.de
550 horschd@mzeecedric.de : User unknown
QUIT
221 Bye
[Connection closed]

Wer schon immer mal ein tool gesucht hat um die validität einer emailadresse zu überprüfen,
hier ist es: Email Dossier