Händler-Anwendung (Ruby-on-Rails-Beispiel): Unterschied zwischen den Versionen
Kowa (Diskussion | Beiträge) |
Kowa (Diskussion | Beiträge) |
||
| Zeile 71: | Zeile 71: | ||
</source> | </source> | ||
= Anlegen | = Anlegen der Rails-Anwendung <code>haendler</code>= | ||
<source lang="bash"> | <source lang="bash"> | ||
cd /web/rails | |||
rails --database postgresql haendler | |||
</source> | |||
In der Konfigurations-Datei <code>/web/rails/haendler/config/database.yml</code>, | |||
die den Zugriff auf das DB-System regelt, wird das Passwort für den Benutzer | |||
<code>haendler</code> an drei Stellen eingetragen: | |||
<source lang="unix"> | |||
development: | |||
adapter: postgresql | |||
encoding: unicode | |||
database: haendler_development | |||
pool: 5 | |||
username: haendler | |||
password: geHEIM!? | |||
test: | |||
adapter: postgresql | |||
encoding: unicode | |||
database: haendler_test | |||
pool: 5 | |||
username: haendler | |||
password: geHEIM!? | |||
production: | |||
adapter: postgresql | |||
encoding: unicode | |||
database: haendler_production | |||
pool: 5 | |||
username: haendler | |||
password: geHEIM!? | |||
</source> | |||
Mit Hile eines <code>rake>/code> Kommandos kann überprüft werden, ob die | |||
Verbindung zur Datenbank hergestellt werden kann | |||
<source lang="bash"> | |||
cd /web/rails/haendler | |||
rake db:migrate | |||
</source> | </source> | ||
Version vom 5. Dezember 2008, 13:41 Uhr
Zweck
Anhand einer einfachen Web-Anwendung sollten die Prinzipien von Ruby on Rails erläutert werden.
Voraussetzungen
Folgende Softwarepakete wurden installiert:
- Apache 2.2.x
- PostgreSQL 8.x (am Besten zusammen mit einem Frontend wie z.B phpPgAdmin)
- Ruby 1.8.7
- Ruby on Rails
Ruby on Rails wurde zusammen mit einigen Erweiterungs-Modulen mit Hilfe des Ruby-Befehls gem installiert:
RUBY_DIR=...; export RUBY_DIR
POSTGRESQL_DIR=...; export POSTGRESQL_DIR
gem install rails --include-dependencies
gem install postgres -r -- --with-pgsql-dir=${POSTGRESQL_DIR}
gem install passenger
${RUBY_DIR}/bin/passenger-install-apache2-module
Auf dem Test-Server steht in der Datei /etc/hosts ein
Eintrag für den gewünschten virtuellen Server, auf dem die Anwendung laufen soll (die IP-Adresse
und der Rechnernamen können natürlich angepasst werden):
192.168.0.161 haendler.kowa haendler
Diese IP-Adresse ist einem echten oder virtuellen Rechner zugeordnet.
Unter SuSE 11 kann man einem Rechner ganz einfach mehrere IP-Adressen zuordnen.
Man trägt die neue IP-Adresse einfach in die Datei /etc/sysconfig/network/ifcfg-eth0 ein:
IPADDR_haendler='192.168.0.161'
NETMASK_haendler='255.255.255.0'
Danach wird der Netzwerzugriff neu gestartet:
/etc/init.d/network restart
Ein PostgreSQL-User mit Namen haendler wurde (z.B. mit Hilfe von phpPgAdmin angelegt.
Zugang zur Web-Anwendung haendler mit Hilfe von Apache
Unter der Annahme, dass Rails-Anwendungen im Verzeichnis /web/rails
angelegt werden, kann der virtuelle Server in der Apache-Konfigurationsdatei httpd.conf
eingetragen werden:
<VirtualHost 192.168.0.161:80>
ServerName haendler.kowa
DocumentRoot /web/rails/haendler/public
<Directory /web/rails/haendler/public>
AllowOverride All
Order allow,deny
Allow from all
</Directory>
CustomLog logs/haendler-access combined
ErrorLog logs/haendler-error
</VirtualHost>
Anlegen der Rails-Anwendung haendler
cd /web/rails
rails --database postgresql haendler
In der Konfigurations-Datei /web/rails/haendler/config/database.yml,
die den Zugriff auf das DB-System regelt, wird das Passwort für den Benutzer
haendler an drei Stellen eingetragen:
development:
adapter: postgresql
encoding: unicode
database: haendler_development
pool: 5
username: haendler
password: geHEIM!?
test:
adapter: postgresql
encoding: unicode
database: haendler_test
pool: 5
username: haendler
password: geHEIM!?
production:
adapter: postgresql
encoding: unicode
database: haendler_production
pool: 5
username: haendler
password: geHEIM!?Mit Hile eines rake>/code> Kommandos kann überprüft werden, ob die
Verbindung zur Datenbank hergestellt werden kann
cd /web/rails/haendler
rake db:migrate
Quellen
Dieser Artikel ist GlossarWiki-konform.