Archiv für MyOOS Tipps

Simple Cloud vereinfacht Cloud Computing mit PHP

Bei Simple Cloud (Simple API for Cloud Application Services) handelt es sich um ein Open-Source API, mit der der Zugriff auf verschiedene Cloud-Services aus PHP heraus über eine standardisierte Schnittstelle ermöglicht wird.

D.h., ein Wechsel des Cloud-Services sollte zukünftig bei Nutzung dieser API keine Änderungen im Quellcode mehr notwendig machen.

Zur Zeit unterstützt Simple Cloud Adapter für File-Storage (Windows Azure blobs, Rackspace Cloud Files, Nirvanix Storage Delivery Network und Amazon S3), Document-Storage (Windows Azure tables und Amazon SimpleDB) und Simple-Queue Dienste (Amazon SQS und Windows Azure Queues).

Weitere Informationen

Simple Cloud
PHP-Magazin
heise.de

Tags: , , , ,

Verwandte Artikel

Der “Expires”-Header

In dem Artikel “Speed Up: Optimierungstipps für Ihre Seiten” fasst Nelly Brekardin bei Dr. Web einige Tipps für die Optimierung von Websites zusammen.

Für unser Projekt war vor allem der Punkt “Die richtigen HTTP-Header senden” hilfreich. Hier wird beschrieben, wie man mit Hilfe der .htaccess Konfiguration die HTTP-Header Expires und Cache-Control sendet.

Adam stellte im MyOOS Forum (Anmeldung erforderlich)

# Configure ETags
<FilesMatch "\.(jpg|jpeg|gif|png|mp3|flv|mov|avi|3pg|html|htm|swf)$">
    FileETag MTime Size
</FilesMatch>

ETags im .htaccess

vor.

Vladimir Simovic stellt in dem Artikel WordPress-Websites beschleunigen 4: ein Zwischenergebnis seine Erfahrungen mit

# ExpiresHeader: verhindert bedingte GET-Anfragen
<IfModule mod_expires.c>
   ExpiresActive on
   ExpiresDefault "access plus 35 days"
</IfModule>

zur Verfügung.

Wir verwenden nun im MyOOS Projekt

# Apache file caching and expiration.
    <FilesMatch "\.(jpg|jpeg|png|gif|ico|swf|css|js|txt)$">
        <IfModule mod_expires.c>
            # Enable expirations.
            ExpiresActive On
            # Cache all files for 35 days after access (A).
            ExpiresDefault  "access plus 35 days"
        </IfModule>
        <IfModule mod_headers.c>
            Header unset ETag
            FileETag None
        </IfModule>
    </FilesMatch>

Erfahrungsberichte sind willkommen. Meinungen… Tipps und auch Anleitungen. Alles mit dem Ziel,
unser Shop-System zu verbessern!

Tags: ,

Verwandte Artikel

Drizzle macht Fortschritte

Jay Pipes, Monty Taylor, Eric Day, Stewart Smith und Lee Bieber haben Oracle verlassen und wechseln zum US-Provider Rackspace. Alle Fünf arbeiteten zuvor bei MySQL an Drizzle und wollen das auch in Zukunft in Diensten von Rackspace tun. Der MySQL-Fork Drizzle ist auf reine Webanwendungen zugeschnitten, extrem modular aufgebaut und verzichtet auf viele Funktionen, die MySQL im Hinblick auf den Einsatz als Unternehmensdatenbank in den letzten Jahren erhalten hat. Stattdessen steht bei Drizzle die Verarbeitung sehr vieler paralleler Anfragen auf Multicore-Systemen im Vordergrund.

Quelle: Golem.de

Viele Funktionen wurden in Module ausgelagert, so dass sie leicht ausgetauscht werden können. Beispielsweise wurden Log-in und Authentifizierung ausgelagert, andere Funktionen bleiben von vornherein außen vor, darunter Stored Procedures, Views, Triggers, Query Cache und Prepared Statements. Auch die verfügbaren Feldtypen wurden reduziert.

Drizzle ist über die Projekt Seite erhältlich
http://drizzle.org/

 in

Die Drizzle PHP Extension ist leider noch in der Beta-Phase.
PECL: http://pecl.php.net/package/drizzle
und seit 7 Monaten ruht augenscheinlich die PHP Extension

1
print 'Version: ' . drizzle_version() . "\n\n";
1
2
3
4
5
6
7
print "##########################\n";
print "Testing function interface\n";
print "##########################\n";
 
$drizzle= drizzle_create();
if (!$drizzle)
exit(0);

Zur O’Reilly MySQL User’s Conference soll Drizzles Cherry veröffentlicht werden.

Tags: ,

Verwandte Artikel

Tortoise SVN @version $Id$ automatisch hinzufügen

Revisionsnummer einer Datei steht beim MyOOS Projekt im Dokumentenkopf (Header)

1
2
3
<?php
/* --------------------------------------------------------
   $Id: core_api_class.php 622 2010-03-06 15:16:38Z r23 $

und bedeutet, das MyOOS Entwickler “r23″ diese Datei bearbeitet hat und ins SVN am 2010-03-06 15:16:38 geladen hat.

Die Id wird automatisch erzeugt, dafür sind aber einige Schritte unter Tortoise SVN Client (Windows) notwendig damit das eingetragen/erzeugt werden kann.

In einer neuen Datei schreiben wir erst/einmalig folgendes

1
2
3
<?php
/* --------------------------------------------------------
   $Id:$

mehr nicht.

Nun mit der rechte Maustaste auf die Datei und SVN Eigenschaften anklicken.

Svn Add 01-256x300 in

Dann auf NEU und bei Eigenschaftsname svn:keywords auswählen. Im darunterliegenden Feld wird nur dann Id eingetragen.
Svn Neu Id-300x239 in

Quelle: http://joomla-tutorials.de

Alte Produktseiten umleiten

Marco Verch veröffentlichte im shopbetreiber-blog

Alte Produktseiten umleiten

Die meisten Produkte in einem Onlineshop unterliegen einem Produktlebenszyklus. Bei Kleidung gibt es nach einiger Zeit neue Kollektionen und bei Elektronikartikeln lösen Nachfolgeprodukte ihre Vorgänger ab. Es ist nur selten sinnvoll, diese Produktseiten im Shop zu belassen, da der Artikel permanent “out of stock” ist.

Wenn der Artikel im MyOOS Shopsystem gelöscht wird, erhält der Kunde beim Aufruf der Produkt-URL diese Fehlermeldung und verlässt den Shop in den meisten Fällen sofort.

Produkt nicht gefunden

Auf dieser ““>Produkt nicht gefunden” Seite könnte man die Sitemap einbinden.

mit

1
2
3
4
5
6
    include 'includes/classes/class_category_tree.php';
 
    $oSitemap = new oosCategoryTree;
    $oSitemap->setShowCategoryProductCount(false);
 
    $oSmarty->assign('sitemap', $oSitemap->buildTree());

in ~/shop/includes/pages/products/info.php

und in an der gewünschten Stelle im Template

1
{$sitemap}

die Ausgabe.

Oder auch “Ähnliche Produkte” (die Produktempfehlungen vom Shopbetreiber) oder auch “Zusätzlich kauften Kunden auch“.

Leider wird ist dies kleine Lösung für Kollektionen oder Elektronikartikeln.

Hier schreibt Marco Verch weiter

In einem Beitrag von Michael Gray wird dafür eine einfache, aber effektive Lösung genannt: Abgelaufene Artikelseiten per 301 umleiten.

301 Weiterleitung einer Website

HTTP-Statuscode 301 (Moved Permanently)

Das MyOOS Projekt erfüllt nun in der Version 2.1.6 die technischen Vorrausetzungen für eine 301 Weiterleitung.

Im MyOOS Forum können wir in den nächsten Tagen Ideen und Wünsche für die Erfassung der “Nachfolgeprodukten” sammeln.

PHP 5.3.2: Bug-Fixes und Sicherheitskorrekturen

PHP 5.3.2 beseitigt zahlreiche Fehler und schließt Sicherheitslücken.

Die Security-Fixes betreffen den LCG-Wert der uniqid-Funktion, die behobene safe_mode-Validierung in tempnam() und einen möglichen open_basedir/safe_mode-Bypass in der Session-Extension.

Die vollständige Liste aller Änderungen findet man im PHP 5 ChangeLog.

Ende Februar 2010 erschien zudem mit PHP 5.2.13 eine korrigierte Version der PHP-Serie 5.2, in der ebenfalls Sicherheitslücken geschlossen und insgesamt rund 40 Fehler beseitigt wurden.

Quelle:
golem.de
php.net>

Migration nach PHP 5.3

Die Hoffnungen, dass PHP 5.3 voll abwärtskompatibel zu Version 5.2 werden würde, haben sich leider zerschlagen. Code, der in PHP 5.2 fehlerfrei lief, kann in 5.3 zu Fehlern führen oder Warnings ausgeben. Stas Malyshev hat nun ein Skript veröffentlicht, mit dem sich die Migration auf das aktuelle PHP-Version leichter bewerkstelligen lässt.

Quelle: PHP Magazin

Migration Skript von Stas Malyshev

miration.php wordpress (Version 2.9.2) ergab folgende Fehlermeldungen

http://www.oos-shop.de/service/blog/wp_php_5_3.txt

Sphinx Search

Sphinx Search Engine, die – wie sie sich selber nennt – “Free open-source SQL full-text search engine” ist ein gutes Tool, um die Volltextsuche auf dem eigenen Server zu beschleunigen.

Installing Sphinx on Windows

Wir entpacken die Zip – Datei an
C:\Sphinx\

Kopieren searchd.exe aus dem Verzeichnis
C:\Sphinx\bin\
nach
C:\Sphinx\

Konfiguration von Sphinx

Wir editieren: C:\Sphinx\sphinx.conf.in und speichern als C:\Sphinx\sphinx.conf

# die Datenquelle
source src1
{
# data source type. mandatory, no default value
# known types are mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc
type = mysql

##########
{

Einstellungen für die Datenbank-Verbindung

sql_host = localhost
sql_user = root
sql_pass =
sql_db = test
sql_port = 3306 # optional, default is 3306

Für den ersten Testen legen wir die Datenbank test mit den Beispieldaten aus C:\Sphinx\example.sql an.

Definition des Indexes

# Aus welcher Quelle? (oben definiert)
index test1
{
# document source(s) to index
# multi-value, mandatory
# document IDs must be globally unique across all sources
source = src1

Wohin mit den Dateien?
path = @CONFDIR@/data/test1

# docinfo
# Drei Möglichkeiten: are “none”, “inline” and “extern”
#
# “none” keine Informationen zum Artikel werden gespeichert
#
# “inline” Infos landen in doclist Datei (nur über 50 Mil. Atikel sinnvoll)
#
# “extern” Infos landen in getrennter Datei
#
# Wohin mit DocInfos? “extern”, weil unter 50 000 000 Artikel!
docinfo = extern

# morphology = stem_en, stem_ru, soundex
# morphology = libstemmer_german
# morphology = libstemmer_sv
# (Ähnlichkeit anhand von Endungen)
# Bei soundex wird die Aussprache beachtet: google und googl sind gleich
# none -> Keine Ähnlichkeiten suchen
morphology = none

# Pfad zur Stoppwort-Datei (Datei mit Wörtern,
# die nicht indexiert werden sollen wie: “und”, “der”, “die”, “das”, “ein” )
#
# stopword files list (space separated)
# optional, default is empty
# contents are plain text, charset_table and stemming are both applied
#
stopwords = @CONFDIR@/data/stopwords.txt

Den Betrieb aufnehmen…

C:\Sphinx> C:\Sphinx\searchd --install --config C:\Sphinx\sphinx.conf
--servicename SphinxSearch

FATAL: OpenSCManager<> failes: code=5, error=Zugriff verweigert
Bei dieser Meldung die Zugriffsrechte unter Windows ändern. (Rechte Maustaste)

http://robert.kolatzek.org/wblog/34/sphinx-search-engine-installation-und-betrieb-eine-einleitung

Tags:

Datenbankmodell WP 2.9.2

Wp 292-300x262 in

Datenbankmodell

Database schema diagram for Wordpress 2.9.2

HipHop beschleunigt PHP Software

HipHop wandelt PHP-Code in C++ um, der anschließend mit g++ in nativen Maschinencode übersetzt und ausgeführt wird. Dabei umfasst HipHop einen Code-Transformer, eine Reimplementierung des PHP-Runtime-Systems und neu geschriebene Versionen häufig genutzter PHP-Erweiterungen, die von den durch HipHop vorgenommenen Optimierungen profitieren.

Haiping Zhao auf facebook Developers

Einführungsveranstaltung im Facebook-Firmensitz in Palo Alto

Quelle: golem.de und PHP Magazin