ISPCP-Omega local delivery vermeiden
Benutzer von ISPCP-Omega werden sicher das eine oder andere mal vor dem folgenden Problem stehen: Ein Kunde wird gehostet, seine Mails werden aber über einen andern Mailserver abgewickelt. Um alles im System zu haben, legt der Admin die Domain im Controlpanel an.
Dabei müssenfolgende Settings beachtet werden: Bei Anzahl der Mailkonten muss ein -1 eingegeben werden. Dann gerät die Domain auch nicht unter die Kontrolle von Postfix.
Sollte alles zu spät sein helfen nur noch Konsolenbefehl:
vi /etc/postfix/ispcp/domains
>> die betreffenden Domains raus
postmap /etc/postfix/ispcp/domains
postfix reload
Fertig!!!
mod_python und php - sharing same session
Irgendwann kann es jedem von uns passieren: Ein Projekt, das unabwendbar auf dem CMS Contenido basiert, muss mit Erweiterungen versehen werden. Nach kurzem Studium der PHP-Quelltexte und des Aufbaus des CMS stand die Entscheidung schnell fest. "Raus hier und nach Hause zu python!"
Also in 5 Minuten mod_python in den Apachen geworfen, ein Verzeichnis für pythonscripte angelegt und drauflos getippt. Alles soweit in Ordnung - bis zum Moment, an dem die Aktionen des Besuchers auf der Seite mit den Ausgaben unseres Plugins korrespondieren müssen.
Nun stellt das Setzen von Sessions weder in PHP noch in Python eine große Hürde dar. Allerdings sind diese nicht für den jeweilig anderen verfügbar.
Um aber dennoch einen Austausch zu ermöglichen, haben wir uns folgende einfache Lösung ausgedacht (fsocketopen wird vom Server nicht unterstützt)
PHP:
<?php session_start();
if (!isset($_SESSION['sid'])) { $_SESSION['sid'] = 0;}
$server_name = $_SERVER['SERVER_NAME'];
$query = $_SERVER['QUERY_STRING']; //den gibts bei PHP immer ;)
$script = 'pfad/zu/mein.py'
$url = "http://$server_name/" . $script . '?' . $query .'&sid=' . $_SESSION['sid']
$sess = file_get_contents($url);
$_SESSION['sid'] = $sess;
?>
py:
#!/usr/bin/python
from mod_python import Session
def index(req,sid=None,**kw):
try:
sess=Session.Session(req,'%s' %sid)
except:
sess=Session.Session(req)
sess.load()
#hier irgendwas machen
sess.save()
return '%' %sess.id() #und anderes, if nötig
So einfach ist das. Geschrieben, weil mir einige verzweifelte Anfragen im Web aufgefallen sind und wir unseren Googlerank hochtreiben wollen ;)
Zope schöner starten
mit Rocketdock und Console2 unter Windows XP
Wer sich schnell - und ohne den guten Ausführungen Veit Schieles zur Integration von Zope in Eclipse zu folgen - einen Starter für unseren Lieblingsserver basteln möchte, dem sei hier eine optisch attraktive Variante empfohlen.
Zunächst laden wir uns das Rocketdock herunter und installieren es den Anleitungen folgend. Danach haben wir ein Dock, um das wir die Macuser schon lange beneideten.
Jetzt noch schnell ein Startscript für Zope angelegt:
man kopiere sich die runzope.bat und editiere Sie folgendermaßen:
@echo off & setlocal
:: alle bereits geöffneten Konsolen und untergeordneten Prozesse schließen - Geschmackssache
:: vielleicht will man sich den Output vorangegangener Versuche ja nochmal ansehen
set PID=
for /f "tokens=2,* delims=," %%i in ('tasklist /nh /FI "IMAGENAME eq Console.exe" /fo CSV') do (
set PID=%%i )
echo Aktueller Prozess: %PID%
for /f "tokens=2,* delims=," %%i in ('tasklist /nh /FI "IMAGENAME eq Console.exe" /fo CSV') do (
if not %%i == %PID% (taskkill /f /t /PID %%i)
)
@set PYTHON=C:\Zope\2.10.3\Python\python.exe
@set ZOPE_HOME=C:\Zope\2.10.3\Zope
@set INSTANCE_HOME=C:\Zope\Instance
@set SOFTWARE_HOME=C:\Zope\2.10.3\Zope\lib\python
@set CONFIG_FILE=C:\Zope\Instance\2.10.3\etc\zope.conf
@set PYTHONPATH=%INSTANCE_HOME%\lib\python;%SOFTWARE_HOME%;%PYTHONPATH%
@set ZOPE_RUN=%SOFTWARE_HOME%\Zope2\Startup\run.py
:: Zope starten im Debugmodus
"%PYTHON%" "%ZOPE_RUN%" -C "%CONFIG_FILE%" -X "debug-mode=on" %1 %2 %3 %4 %5 %6 %7
Dann diese Batchdatei mit kühnen Schwung ins Rocketdock gehängt, Icon von Zope draufkleben, anklicken - fertig.
Als nächstes besorgen wir uns den cmd-Spoilersatz Console2 unter folgender Adresse: http://sourceforge.net/projects/console/. Diese sieht schöner aus als die bekannte cmd und unterstützt auch ein paar Aktionen, die man aus der Linuxwelt kennt. Die Wichtigste und am meisten vermisste: Copy und Paste funtioniert nun endlich wie in einem Texteditor...
Da uns diese Konsole so gut gefällt und wir nie wieder die cmd sehen wollen wenn wir Batch-Dateien öffnen, wird unser neuer Freund zur "Default Shell" gemacht:
Neuer Tab in der Console (TAAAB - herrlich!) - regedit eingeben, enter.
Dann bis HKEY_CLASSES_ROOT\batfile\shell\open\command hangeln.
Dort den Wert für (Default) von "%1" %*
auf pfad_zum_neuen_freund/Console.exe -t cmd -r "/k \"%1\"" ändern
Der Parameter -t cmd setzt voraus, das man sich in der Console2 einen Tab eingerichtet hat, der auf den Namen cmd hört und als Shell die cmd.exe benutzt. Dies bewerkstelligt man durch Auswahl des Reiters Edit -> Settings -> Tabs in der Console.
Warum wir auch morgen noch wissen, was Sie gerade auf dieser Seite treiben
So mancher hat sich schon gewundert, dass es Webseiten wie Ebay schaffen, auf ihrer Startseite nur Produkte anzuzeigen, die in etwa der Suche des letzten Besuchs entsprechen. Flash Cookies stellen eine wenig bekannte Form der Datenspeicherung durch Webseiten auf dem Rechner des Besuchers dar - der fast auf jedem Rechner installierte Flash Player von Adobe speichert dabei einen eigenen Cookie in sein Anwendungsverzeichnis. Diese Cookies werden auch dann nicht gelöscht, wenn Sie Ihren Browser anweisen, alle Cookies zu löschen. Die Keksdose befindet sich - ein deutsches Windows XP vorrausgesetzt - z.B. unter
C:\Dokumente und Einstellungen\IHR_USERNAME\Anwendungsdaten\Macromedia\Flash Player\#SharedObjects.
Sollten sich auch Macuser für dieses Thema interessieren, so finden sie das entsprechende Verzeichnis z.B. unter
~/Library/Preferences/Macromedia/Flash Player/#SharedObjects oder wie gewohnt über den Finder.
Da wir uns nach kurzem Überlegen gegen das Programmieren eines Firefox-Addons entschieden haben, schlagen wir auf Privatsphäre bedachten Menschen vor, einfach allen Benutzern des Rechners die Schreibrechte auf das entsprechende Verzeichnis zu entziehen.
Kurznotiz CSS-Hacks
Browser per css ansprechen
|
* html |
ie bis Version 6 |
valide |
|
*+html |
nur ie7 |
valide |
|
html>body |
Browser, ie nur Version 7 |
valide |
|
html>/**/body |
Browser, nicht ie7 |
valide |
|
*:first-child |
Opera 9 (hab keinen anderen) |
valide |
damit man nicht immer ewig nachdenkt ;)
Ganz neu entdeckt: ie8 css hack.Wenn der ie8 mucken macht, kann man mit folgender Anweisung css-Definitionen vor ihm verstecken: #ie8#fix. Dabei dienen die Buchstaben nur dazu, die Anweisung wiederzufinden. Wichtig sind die beiden Rauten, da der ie8 nach 2 Rauten das Lesen der Anweisungen einstellt.
Danke - mach ich Bookmark