Linux

mod_rewrite (Apache2-Server)

Dieser Artikel widmet sich dem Thema mod_rewrite, zu dem vielleicht bei dem ein oder anderen hin und wieder die selben Fragen auftauchen.

Was ist „mod rewrite“ oder mod_rewrite?

Erstens: mod_rewrite ist eine Einstellung des Apache-Servers. D.h. mod_rewrite ist entweder an (enabled) oder aus (disabled).

Zweitens: Wenn mod_rewrite an ist, so können URLs umgeleitet werden. D.h. die folgende URL …

 

… wird durch die Einstellungen von mod_rewrite umgeformt zu:

Wie stelle ich fest, ob mod_rewrite aktiv ist?

Ganz einfach: Erstelle eine leere php-Datei mit dem Inhalt:

Rufe diese auf dem Browser auf und suche mit der Suchfunktion des Browsers nach „mod_rewrite“. Wenn du einen Eintrag findest, wie im Screenshot dargestellt, so ist mod_rewrite an.

mod_rewrite_enabled_phpinfoEine andere Möglichkeit ist, einfach in der Shell den Befehl php -info einzugeben und dann zu schauen, ob mod_rewrite unter der Rubrik „Loaded Modules“ auftaucht.

Wie aktiviere ich mod_rewrite, wenn es nicht aktiv ist?

Ich möchte hier zwei Möglichkeiten vorstellen, mod_rewrite zu aktivieren. (Es gibt noch eine dritte, sehr einfache Variante, die manchmal am Effektivsten ist: Nämlich einfach den Hoster anzufragen, ob er mod_rewrite aktivieren kann. Manchmal ist dies auch nötig, denn bei bestimmten Hostern sind die Rechte für die Apache-Cofing-Datei beschränkt und man hat gar keine andere Möglichkeit)

1. Die schnelle Variante, mod_rewrite zu aktivieren:

Gebe in der Shell von Linux einfach folgenden Befehl ein:

Dann musst Du noch den Apache-Server neustarten:

Falls dann in der Shell folgendes auftreten sollte …

… versuche es mit Möglichkeit 2:

2. mod_rewrite in apache-Config-Datei anschalten

Das ist etwas kniffliger: zuerst musst du die Datei apache2.config finden, was allerdings sehr einfach über folgenden Shell-Befehl geht:

Hierdurch findest du Einträge wie:

Dann gibst du folgenden Befehl ein:

Und du solltest als Ausgabe sehen, wo die HTTPD_ROOT-Directory ist und wie das SERVER_CONFIG_FILE heißt:

nun weißt du, wie der Pfad zur Datei lautet und kannst diese mit beispielsweise nano (oder alternativ auch per FTP) editieren:

Folgende Zeile muss in der Datei enthalten sein:

Nun muss nur noch der Apache-Server neu gestartet werden …

Und mod_rewrite sollte aktiviert sein.

 

 

 

In Magento ein Attribut im Nachhinein ändern (Einzeiliges Textfeld zu Mehrzeiligen Textfeld ändern)

Wenn man im Magento-Shop-System ein neues Attribut erstellt und im Wert „Katalog Eingabe-Typ für den Shopbetreiber“ einzeiliges Textfeld eingibt, so lässt sich dieser Wert im Nachhinein leider nicht mehr verändern.

Dies kann dazu führen, dass man im späteren Betrieb die Feststellung macht, dass die Zeichenlänge bei einem einzeiligen Textfeld, die auf 256 Zeichen beschränkt ist, nicht mehr ausreicht.

Abhilfe verschafft eine relativ einfache Veränderung in der Datenbank, für die ich allerdings etwas suchen musste. Deswegen sei sie hier erklärt:

  1. In der Magento-Datenbank die Tabelle eav_attribute öffnen.
  2. Zeile mit dem richtigen Attribute-Code (Spaltenname ist eav_attribute) aufrufen.
  3. Änderung von den folgenden beiden Einträgen:
    backend_type –> in text (anstatt varchar) ändern.
    frontend_input –> in textarea (anstatt text) ändern.

Das alles lässt sich über die Shell auch sehr einfach mit folgendem mySql-Befehl erledigen:

 

my_attribute_code ist natürlich der Attribute-Code von dem Magento-Attribut, dessen maximale Anzahl von Zeichen im Textfeld verändert sein sollen.

 

MySQL-Backup erstellen (Shell/Linux)

Ein Backup einer MySQL-Datenbank mit Linux bzw. mit der Shell erstellen? Nichts simpler als das. Folgendes in die Eingabezeile eingeben:

username = MySQL-Benutzername

dbname = Datenbankname