Händler-Anwendung (Ruby-on-Rails-Beispiel): Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Kowa (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 14: Zeile 14:


<source lang="bash">
<source lang="bash">
  RUBY_DIR=...; export RUBY_DIR
RUBY_DIR=...; export RUBY_DIR
  POSTGRESQL_DIR=...; export  POSTGRESQL_DIR
POSTGRESQL_DIR=...; export  POSTGRESQL_DIR


  gem install rails --include-dependencies
gem install rails --include-dependencies
  gem install postgres -r -- --with-pgsql-dir=${POSTGRESQL_DIR}
gem install postgres -r -- --with-pgsql-dir=${POSTGRESQL_DIR}
  gem install passenger
gem install passenger
  ${RUBY_DIR}/bin/passenger-install-apache2-module
${RUBY_DIR}/bin/passenger-install-apache2-module
</source>
</source>


Zeile 28: Zeile 28:


<source lang="text">
<source lang="text">
  192.168.0.161  haendler.kowa haendler
192.168.0.161  haendler.kowa haendler
</source>
</source>
   
   
Zeile 36: Zeile 36:


<source lang="text">
<source lang="text">
  IPADDR_haendler='192.168.0.161'
IPADDR_haendler='192.168.0.161'
  NETMASK_haendler='255.255.255.0'
NETMASK_haendler='255.255.255.0'
</source>
</source>
   
   
Zeile 43: Zeile 43:


<source lang="bash">
<source lang="bash">
  /etc/init.d/network restart
/etc/init.d/network restart
</source>
</source>


Zeile 55: Zeile 55:


<source lang="bash">
<source lang="bash">
  cd /web/rails
cd /web/rails
  rails --database postgresql haendler
rails --database postgresql haendler
</source>
</source>


Zeile 64: Zeile 64:


<source lang="text">
<source lang="text">
  development:
development:
    adapter: postgresql
  adapter: postgresql
    encoding: unicode
  encoding: unicode
    database: haendler_development
  database: haendler_development
    pool: 5
  pool: 5
    username: haendler
  username: haendler
    password: geHEIM!?
  password: geHEIM!?


  test:
test:
    adapter: postgresql
  adapter: postgresql
    encoding: unicode
  encoding: unicode
    database: haendler_test
  database: haendler_test
    pool: 5
  pool: 5
    username: haendler
  username: haendler
    password: geHEIM!?
  password: geHEIM!?


  production:
production:
    adapter: postgresql
  adapter: postgresql
    encoding: unicode
  encoding: unicode
    database: haendler_production
  database: haendler_production
    pool: 5
  pool: 5
    username: haendler
  username: haendler
    password: geHEIM!?
  password: geHEIM!?
</source>
</source>


Zeile 92: Zeile 92:
Verbindung zur Datenbank hergestellt werden kann:
Verbindung zur Datenbank hergestellt werden kann:
<source lang="bash">
<source lang="bash">
  cd /web/rails/haendler
cd /web/rails/haendler
  rake db:migrate
rake db:migrate
</source>
</source>
Wenn das <code>rake</code>-Kommando keinen Fehler ausgibt, ist alles in Ordnung.
Wenn das <code>rake</code>-Kommando keinen Fehler ausgibt, ist alles in Ordnung.
Zeile 104: Zeile 104:


<source lang="apache">
<source lang="apache">
  <VirtualHost 192.168.0.161:80>
<VirtualHost 192.168.0.161:80>
    ServerName haendler.kowa
  ServerName haendler.kowa
    DocumentRoot /web/rails/haendler/public
  DocumentRoot /web/rails/haendler/public
  <Directory /web/rails/haendler/public>
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>


    <Directory /web/rails/haendler/public>
  CustomLog    logs/haendler-access combined
      AllowOverride All
  ErrorLog    logs/haendler-error
      Order allow,deny
      Allow from all
    </Directory>
 
    CustomLog    logs/haendler-access combined
    ErrorLog    logs/haendler-error


</VirtualHost>
</VirtualHost>

Version vom 5. Dezember 2008, 16:32 Uhr

Zweck

Anhand einer einfachen Web-Anwendung sollten die Prinzipien von Ruby on Rails erläutert werden.

Voraussetzungen

Folgende Softwarepakete wurden installiert:

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-Benutzer mit Namen haendler wurde (z.B. mit Hilfe von phpPgAdmin angelegt. Für diesen Benutzer werden drei Datenbanken angelegt:

  • haendler_development (Zeichenkodierung UTF8)
  • haendler_test (Zeichenkodierung UTF8)
  • haendler_production (Zeichenkodierung UTF8)

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 Hilfe eines rake-Kommandos kann überprüft werden, ob die Verbindung zur Datenbank hergestellt werden kann:

cd /web/rails/haendler
rake db:migrate

Wenn das rake-Kommando keinen Fehler ausgibt, ist alles in Ordnung.

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>

Quellen


Dieser Artikel ist GlossarWiki-konform.