Apache2 Modul mod_rewrite unter Ubuntu aktivieren

Das Apache2 Modul mod_rewrite wird von vielen Seiten für benutzerfreundliche URLs genutzt. Auch eine gewisse Suchmaschinenfreundlichkeit kann man nicht absprechen.

Um das Modul unter Ubuntu zu aktivieren muss man einen Symbolischen Link des Moduls in /etc/apache2/sites-enabled/ erzeugen. Einfacher und mit weniger Schreibarbeit ist dieser Befehl:

$ sudo a2enmod rewrite

Damit das Modul auch korrekt arbeitet, muss in der Konfiguration für die entsprechende Site die Variable AllowOverride auf All gesetzt werden. Diese befindet sich in der/den entsprechenden <Directory> Sektion/en. Z.B. in hier:

$ sudo nano /etc/apache2/sites-available/default

Am Ende den Apachen einfach neu starten und schon kann es losgehen.

$ sudo /etc/init.d/apache2 restart

IP Addressen in MySQL speichern

IP Adressen speichern ist ein heikles Thema – nicht nur in Hinsicht auf die Datenschutzbestimmungen. Kann man nun auf die Speicherung (aus welchen Gründen auch immer) nicht verzichten, so ist es aus verschiedenen Gründen z.B. Speicherbelegung, Performance, … besser die IP als INTEGER und nicht im „Klartext“ als VARCHAR abzuspeichern.

MySQL bietet von Haus die Funktion INET_ATON() und INET_NTOA() um IP Adressen umzuwandeln.

Mit INET_ATON() kann eine IP kann nun wie folgt umgewandelt werden:

mysql> SELECT INET_ATON('192.168.192.0') AS IP;
+------------+
| IP         |
+------------+
| 3232284672 |
+------------+
1 row in set (0.00 sec)

Und anders herum verwendet man INET_NTOA():

mysql> SELECT INET_NTOA('3232284672') AS IP;
+---------------+
| IP            |
+---------------+
| 192.168.192.0 |
+---------------+
1 row in set (0.00 sec)

Hinweis: Beim Umwandeln kann eine Zahl entstehen, die die maximale Größe des INT Datentyps (max. Wert 2147483648) überschreitet. Das Feld zum Speichern des INTEGERS muss UNSIGNED (also nicht vorzeichenbehaftet) sein (max. Wert 4294967295).

Leider scheint diese Methode noch nicht kompatibel zu IPv6. Aber bis zur endgültigen Einführung wird es bestimmt auch hierfür eine Lösung geben.

Weitere Informationen zum Thema:
http://dev.mysql.com/doc/refman/5.1/de/miscellaneous-functions.html
http://dev.mysql.com/doc/refman/5.1/de/numeric-types.html

MySQL Root Passwort zurücksetzen

Anders als beim Ändern eines MySQL Benutzer Passworts, ist das Zurücksetzen des root Passworts schon etwas aufwendiger und benötigt zugriff auf das darunterliegende System – in meinem Fall Ubuntu 10.04.

Zunächst muss der MySQL Server beendet werden.

$ sudo /etc/init.d/mysql stop

Als nächstes wird MySQL ohne Berechtigungssystem wieder gestartet .

$ sudo mysqld –skip-grant-tables &

Jetzt kann man sich als root ohne Passwort an MySQL anmelden …

$ mysql -u root

… und das Passwort „GEHEIM“ vergeben.

mysql> SET PASSWORD FOR ‚root’@’localhost‘ = PASSWORD(‚GEHEIM‚);
mysql> FLUSH PRIVILEGES;

Als alternative zum FLUSH PRIVILEGES beende ich lieber den Prozess und starte den Dienst neu.

Fertig!

MySQL Passwort ändern

Mir ist es schon oft passiert, dass ich ein Passwort für einen MySQL Benutzer vergessen habe. Hier sind 2 Möglichkeiten, ein Passwort unter MySQL zu ändern.

1. Mit dem MySQL Client und SET PASSWORD Befehl:

$ mysql -u root
mysql> SET PASSWORD FOR ‚benutzer‚@’localhost‘ = PASSWORD(‚GEHEIM‚);

2. Mit dem Programm mysqladmin:

$ mysqladmin -u benutzer password GEHEIM

Natürlich kann man auch GUIs wie z.B. MySQL Workbench oder phpMyAdmin verwenden, aber die hat man auf den wenigstens Produktiv Servern zur Verfügung.

Anzahl der Zeilen in einer Datei ermitteln

Immer wieder kommt es vor, das man wissen möchte wieviele Zeilen eine Datei hat. Zwar kann man sich mit Editoren wie nano die Zeilen anzeigen lassen, aber gerade bei größeren Dateien kommt man schnell seine Grenzen. Folgender Befehl kann genutzt werden, um herauszufinden wie viele Zeilen eine oder mehrere Textdatei hat.

$ find /var/log/apache2/*.log -print0 | xargs -0 wc -l
5232 /var/log/apache2/access.log
  58 /var/log/apache2/error.log
5290 insgesamt

Hinweis: Man kann auch nur eine einzelne Datei abfragen, indem man das *.log mit einem Dateinamen z.B. access.log ersetzt.