Voraussetzung für diese kleine Anleitung ist ein funktionierender Webserver (ich benutze lighttpd per FastCGI) und ein laufenden MySQL-Server. Das Betriebssystem ist bei mir ein Ubuntu 8.04 Server, die Anleitung sollte aber auch auf vielen anderen unixoiden Systemen in ähnlicher Weise funktionieren.
Als erstes solltest du dir die neueste Version von http://www.php.net/downloads.php#v5 besorgen. Diese ist bei mir die Version 5.2.8. Downloaden, entpacken und ins Verzeichnis wechseln.
wget http://de.php.net/get/php-5.2.8.tar.bz2/from/this/mirror
tar xjf php-5.2.8.tar.bz2
cd php-5.2.8/
Bevor kompiliert werden kann, musst du noch fehlende Pakete installieren.
apt-get install libfreetype6-dev libpng12-dev libmcrypt-dev
Jetzt kommt das Wichtigste: der configure-Befehl. Dieser sollte ohne Fehler durchlaufen, dann ist das PHP bereit zum kompilieren.
./configure --prefix=/usr --bindir=/usr/bin --enable-fastcgi --with-gd --with-freetype-dir --enable-mbstring --with-mysql --enable-discard-path --enable-force-cgi-redirect --with-mcrypt --with-zlib
Als Nächstes wird PHP kompiliert.
Je nach Rechnerleistung kann das eine Weile dauern.
Danach sollte ein
laufen. Dort wird überprüft ob alles funktioniert. Eine Fehlermeldung am Ende, dass irgendetwas nicht funktionieren könnte, konnte ich ignorieren. Den Fehlerbericht hab ich trotzdem zu den Entwicklern geschickt :).
Dann ein
und PHP5 sollte für ein Typo3 (meine Version: 4.2.6) installiert sein.
There was a time, when I shared a blog. This post was written by Stephan.
See all blogpost from him or stalk him on github.
Diese Tutorial soll zeigen, welche Schritte notwendig sind, um eine Typo3 Installation unter Linux von Beginn an auf UTF-8 einzustellen. Wenn diese Schritte befolgt werden, sollte es später keine Probleme mit Sonderzeichen im Frontend geben und auch in der Datenbank wird alles korrekt abgespeichert.
Es wird davon ausgegangen, dass der Quellcode- und Dummy-Ordner von Typo3 bereits entpackt wurde und Typo3 über den Webbrowser erreichbar ist.
Weiterhin sollte sich das Installtool noch im "123" Mode befinden, d.h. es wurde noch keine Datenbankverbindung erstellt und auch sonst keine weiteren Einstellungen vorgenommen.
MySQL
Als erstes werden wir eine Verbindung zum MySQL-Server aufbauen. Dazu öffnen wir ein neues Konsolenfenster und geben folgenden Befehl ein:
Zur Erklärung:
mysql ----> Aufbau Verbindung zum MySQL-Server
-u root ----> Einwahl als Nutzer root (u=User)
-p ----> Abfrage des Passwortes für den Nutzer root
Die Anmeldung als root ist erforderlich, um neue Datenbanken anlegen zu dürfen. Dafür benötigst du natürlich
das root-Passwort. In manchen Fällen ist es nicht standardmäßig gesetzt und der Parameter -p kann weggelassen werden (z.B. bei XAMPP-Installationen).
Ist der Login erfolgreich verlaufen, können nun SQL-Anweisungen in der Konsole eingegeben werden.
Anlegen des Nutzers
Wichtig: Alle folgenden SQL-Befehle mit einem Semikolon (";") abschließen
Mit einem
CREATE USER 'typo3'@'localhost' IDENTIFIED BY 'password';
erzeugen wir nun einen neuen Datenbanknutzer. In unserem Beispiel soll dieser typo3 heißen und den lokalen MySQL-Server angehören. Werte in einfachen Anführungsstrichen sind bei Bedarf anzupassen.
Anlegen der Datenbank
Nun müssen wir noch eine neue Datenbank anlegen - natürlich mit UTF-8 Unterstützung. Dazu verwenden wir den SQL-Befehl
CREATE DATABASE `typo3` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Rechte für Datenbank anpassen
Der neue Nutzer braucht nun noch Rechte für die neue Datenbank, die wir später für Typo3 verwenden möchten. Volle Rechte an der erstellten Datenbank "typo3" erhalten wir mit dem SQL-Befehl:
GRANT ALL PRIVILEGES ON `typo3` . * TO 'typo3'@'localhost' WITH GRANT OPTION;
Im weiteren werden keine Kommandozeileneingaben mehr benötigt. Die Eingabe von
beendet die Verbindung zum MySQL-Server bzw. schließt die Konsole.
Installtool einstellen
Im Browser kann nun das Installtool im "123" Mode aufgerufen werden (siehe oben). Die Felder Nutzername, Passwort und Host werden mit den eingangs gewählten Werten gefüllt. Wenn die vorherigen Befehle eins zu eins übernommen wurden, müsste folgendes eingetragen werden:
Im nächsten Schritt wählen wir die zu verwendende Datenbank aus (hier typo3).
Nach dem Anlegen der benötigten Tabellen geht es mit der Konfiguration im Installtool von Typo3 weiter. Unter dem Menüpunkt "All configurations" müssen dann folgende Einstellungen vorgenommen werden:
Zunächst sagen wir Typo3, das es UTF-8 verwenden soll. Im Feld [forceCharset]
tragen wir deshalb folgendes ein:
Weiterhin muss im Feld [setDBinit] folgendes eingetragen werden:
SET NAMES utf8;
SET CHARACTER SET utf8;
SET SESSION character_set_server=utf8;
SET character_set_connection = utf8;
Typo3 ist nun vollständig auf UTF-8 eingestellt. Vorallem die definierten Werte unter [setDBinit] tragen dazu bei, dass die Datenbank vor dem Schreibzugriff auf UTF-8 eingestellt wird.
Bei der Verwendung eines neuen Templates muss folgende Zeile im TypoScript angegeben werden, um auch eine UTF-8 Ausgabe im Frontend zu erreichen.
config.metaCharset = utf-8
Herzlichen Glückwunsch, Typo3 und UTF-8 sollten jetzt funktionieren, let's rock
Ich habe diese Anleitung geschrieben, da ich kein wirklich durchgehendes Tutorial gefunden habe, welches das Aufsetzen eines lighttpd Webservers mit FastCGI und Ruby on Rails beschreibt. Ich verwende Fußnoten um auf andere Anleitungen zu verweisen, die mir nützlich waren und die dir vielleicht auch weiterhelfen.
Als Ausgangsposition solltest du ein funktionierendes Linuxsystem haben. Ich nutze für diese Anleitung Debian 4.0 Etch in der Minimalinstallation. Es kann also sein das du gegebenenfalls die Befehle anpassen, einen anderen Paketmanager nutzen oder andere Paketnamen verwenden musst oder manche Pakete einfach schon vorhanden sind.
lighttpd installieren
Als erstes benötigst du ein paar Pakete um lighttpd kompilieren zu können. (1)
sudo apt-get install build-essential libpcre3-dev zlib1g-dev libbz2-dev subversion libssl-dev debhelper
die neueste Lighttpd Version. Geh auf http://www.lighttpd.net/download und kopiere dir den Downloadlink. Bei mir ist die 1.4.20 die aktuellste Version. Hol dir das Paket, entpacke es und wechsel in das entpackte Verzeichnis.
wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-1.4.28.tar.gz
tar -xzf lighttpd-1.4.28.tar.gz
cd lighttpd-1.4.28
Mit einem einfachen
kannst du testen welche Pakete dir noch fehlen. Wenn das fehlerfrei durchläuft, kannst du dich um das Paket bauen kümmern.
svn checkout svn://svn.lighttpd.net/lighttpd/branches/post-upload-cleanup/debian debian
nano debian/changelog
Füge jetzt ganz oben folgendes ein:
lighttpd (1.4.28) unstable; urgency=low
* updated to 1.4.28
-- Your Name <[email protected]> Mon, 9 Feb 2009 17:48:00 -0000
Achte darauf, dass du die Version einträgst, die du runtergeladen hast.
Jetzt noch schnell kopieren
cp debian/changelog changelog
Jetzt als root folgendes ausführen:
Jetzt wird lighttpd kompiliert. Nachdem es fertig ist, wechsele ein Verzeichnis höher und installiere das Paket.
cd ..
dpkg -i lighttpd_1.4.28_i386.deb
Nun ist lighttpd erfolgreich auf deinem System!
MySQL installieren
Hier sollte ein einfaches
apt-get install mysql-server
genügen. Der Benutzer root erhält hierbei standardmässig ein leeres Passwort. Wenn dir das zu unsicher ist oder du deine Datenbank mit Programmen wie phpmyadmin öffentlich zugänglich gemacht hast solltest du mit
mysqladmin -u root -p password "geheim"
ein root-Passwort vergeben. Wenn du Rails nur mal auf deinem lokalen Rechner testen willst, kann du diesen Schritt übersrpingen. ((http://wiki.ubuntuusers.de/MySQL#Benutzer))
Ruby on Rails installieren
Hole dir als erstes die neueste Version von Ruby auf http://www.ruby-lang.org/de/downloads/. Bei mir ist das Ruby 1.8.7-p72.
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p72.tar.gz
tar -xzf ruby-1.8.7-p72.tar.gz
cd ruby-1.8.7-p72
Nun musst du die ganze Sache wieder kompilieren und installieren. Hier kann es wieder sein, dass der configure Befehl abbricht, weil Pakete fehlen, diese eventuell noch per apt-get install nachinstallieren.
./configure
make
make install
Unter Debian/Ubuntu bietet sich statt dem letzten Befehl ein "checkinstall" an um ein Paket zu erstellen und dieses zu installieren. (ggf. muss hier dann vorher ein "sudo apt-get install checkinstall" ausgeführt werden)
Wenn alles ohne Fehler durchläuft, hast du ein funktionierendes Ruby.
Nun brauchst du noch RubyGems, Ruby's eigenen Paketmanager. Dieser funktioniert genauso wie aptitude, bloß halt für Ruby. Du kannst dir die aktuelle Version auf http://rubyforge.org/frs/?group_id=126 runterladen. Nach dem Download kannst du RubyGems dann direkt installieren.
wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
tar -xzf rubygems-1.3.1.tgz
cd rubygems-1.3.1
sudo ruby setup.rb
Bei manchen System kann es notwendig sein ein --prefix=/usr an den letzten Befehl anzuhängen.
Jetzt kannst du alle benötigten Gem-Pakete und deren Abhängigkeiten per
gem install rails rake mysql fcgi
installieren. Hier kann es passieren, dass mysql und fcgi nicht installiert werden können. Mit
apt-get install libmysqlclient15-dev libfcgi-dev
kann dieses Problem behoben werden.
Ein Railsprogramm erstellen
Jetzt kannst du mit
rails myfirstapp -D -d mysql
deine erste Ruby on Rails Applikation erstellen. Der Name kann natürlich auch anders lauten. Die Option -D erzeugt den Dispatcher für unsere FCGI-Anbindung. Die Option -d mysql erzeugt eine Anbindung an die MySQL-Datenbank.
http://guides.rubyonrails.org/gettingstartedwithrails.html#creatingtheblog_application
http://guides.rubyonrails.org/gettingstartedwithrails.html#configuringadatabase
Jetzt kannst du mit
eine Datenbank für deine Railsapplikation erzeugen.
Mit FastCGI und lighttpd starten
Um dein Rails-Programm mit FastCGI ((http://www.fastcgi.com/)) und lighttpd nutzen zu können, musst du jetzt nur noch eine Änderung in der lighttpd.conf vornehmen.
nano /etc/lighttpd/lighttpd.conf
Am Ende der Datei folgendes einfügen: ((https://help.ubuntu.com/community/RubyOnRails#Lighttpd))
server.modules += ( "mod_fastcgi", "mod_rewrite" )
$HTTP["host"] == "localhost" {
server.document-root = "/home/to/myfirstapp/public/"
server.dir-listing = "disable"
server.error-handler-404 = "/dispatch.fcgi"
fastcgi.server = ( ".fcgi" => ( "myfirstapp" => (
"min-procs" => 1,
"max-procs" => 1,
"socket" => "/tmp/ruby-myfirstapp.socket",
"bin-path" => "/home/to/myfirstapp/public/dispatch.fcgi",
"bin-environment" => ( "RAILS_ENV" => "development" )
) ) )
}
Jetzt den Server mit
/etc/init.d/lighttpd restart
neustarten und im Browser localhost aufrufen.
Herzlichen Glückwunsch, du hast es geschafft! Viel Spass beim Rails nutzen!