View and vote on the article here: Dinah auf Linux installieren - Schritt für Schritt
Dinah auf Linux installieren - Schritt für Schritt| Category | | | Summary | | Schritt-für-Schritt-Anleitung für die Einrichtung einer Entwicklungsumgebung unter Linux. |
| | Body | Abhängigkeiten:
- Perl 5.8.8
- MySQL 4.1+
- GNU Privacy Guard (OpenPGP/GnuPG)
- wget / curl / alternative
- Apache 1.3.xx (Current stable)
- mod_perl 1.xx (Subversion)
Ich gehe davon aus, das Perl, MySQL, wget, GPG und Subversion vorinstalliert sind, wofür ich das jeweilige Paketverwaltungssystem eurer Distribution empfehle.
Beginnen wir damit, einen User-Account für Dinah einzurichten. Ihr könntet ihn 'dinah' nennen. Sobald das geschehen ist, öffnet ein Terminal und wechselt zum neuen Benutzer:
# su - dinah
Als nächstes erstellen wir die benötigte Ordnerstruktur für Dinah, Apache, mod_perl und eventuelle Quelltexte:
# mkdir ~/src
# mkdir ~/MyDinah
# mkdir ~/APACHE
Ladet apache_1.3.xx.tar.gz und mod_perl-1.30 runter und kopiert es nach ~/.src. Anschliessend wird extrahiert:
# tar zxf apache_1.3.xx.tar.gz
# tar zxf mod_perl-1.0-current.tar.gz
Danach wechseln wir in den Ordner von mod_perl. Dort wird das Modul konfiguriert und installiert. Die Einstellungen erstellen die benötigten Apache-Module für Dinah und wir erhalten "APache AutoConf-style Interface" (APACI). Dieses erlaubt es uns mit einem AutoConf-ähnlichen "configure"-Skript den Quelltext von Apache zu konfigurieren. Die folgenden Einstellungen sind jedoch weder optimiert noch für einen Server im Produktiveinsatz geeignet.
# cd mod_perl-1.xx
# perl Makefile.PL APACHE_SRC=../apache_1.3.39/src APACHE_PREFIX=/home/int16h/APACHE DO_HTTPD=1
USE_APACI=1 APACI_ARGS='--enable-shared=access --enable-shared=alias --enable-shared=auth
--enable-shared=env --enable-shared=log_config --enable-shared=mime --enable-shared=dir
--enable-module=rewrite --enable-module=so' EVERYTHING=1
# make
# make test (optional, and requires additional perl modules for complete testing)
# su
#make install
[* optional *]
Wenn ihr zusätzlich noch Module von Drittanbietern installieren oder Extraoptionen übergeben wollt, wechselt zum Quelltext von Apache und rekonfiguriert alles (vergesst dabei aber nicht libperl.a zu aktivieren!):
# cd ../apache_1.3.xx
# ./configure --prefix=/home/int16h/APACHE --enable-shared=access --enable-shared=alias
--enable-shared=auth --enable-shared=env --enable-shared=log_config --enable-shared=mime
--enable-shared=dir --enable-module=rewrite --enable-module=so
# make install
Wenn ihr jemals schon mal probiert hattet Dinah zu installieren, werdet ihr wissen, das einige Perl-Module gebraucht werden, um vollständige Funktion zu gewährleisten. Um den Vorgang zu beschleunigen, können wir "Bundle::Apache" installieren, welches eine Vielzahl von Modulen enthält, die für die mod_perl-Entwicklung und Apache nützlich sind:
# perl -MCPAN -e 'install("Bundle::Apache")'
oder
# cpan
cpan> install Bundle::Apache
cpan> quit
#
Bevor wir weitermachen sollten wir uns Dinah's Quelltext aus CyberArmy's Subversion-Repo besorgen:
# cd ~/MyDinah
# svn co https://svn.cyberarmy.net/repos/dinah/trunk
And installieren anschliessend weitere Perl-Module aus CPAN:
# cpan
cpan> install Module::Build
cpan> install MIME::Parser XML::RSS Template Template::Plugin Net::Server
cpan> install Proc::PID_File Proc::Daemon Data::Password Algorithm::Diff
cpan> install GD Apache::Singleton MySQL::Diff
(Falls sich einige Module nicht installieren lassen, versucht vor jedem 'install' noch ein 'force' zu setzen. Meistens hilft das ;)
Wenn alles wie geplant gelaufen ist, wechselt in den MyDinah-Ordner und führt dort den 'ls'-Befehl aus. Die Ausgabe sollte folgendem ähneln:
CONTRIBUTIONS LICENSE Makefile README User.pm.README bin
conf docs htdocs lib logs support templates test
Der nächste Schritt besteht darin den Installer zu starten. Euch werden ein paar grundlegende Fragen gestellt und ein CyberArmy-Modul wird den Perl-Bibliotheken hinzugefügt:
root[MyDinah]# make install
bin/install.pl
Checking prerequisites...
Looks good
What is your hostname [bombuzal ]mydinah.net
What is your email address? [root@mydinah.net ]mail@mydinah.net
What is an SMTP relay I can use? [mydinah.net ]mydinah.net
Where is your httpd located /home/int16h/APACHE/bin/httpd
Copying lib/CyberArmy.pm -> blib/lib/CyberArmy.pm
Installing /usr/lib/perl5/site_perl/5.8.8/CyberArmy.pm
Deleting lib/CyberArmy.pm
Deleting blib
root[MyDinah]#
Wie ihr seht, fragt der Installer nach dem Hostnamen, E-Mail-Adresse, SMTP-Relay und wo sich Apache's httpd Daemon befindet. Denkt daran, das "bind" oder /etc/hosts Einträge für den Hostnamen haben sollten, der auf die lokale IP zeigt.
Nun müssen wir die httpd.conf und my.cnf usw. für Dinah konfigurieren:
root[MyDinah]# make config
bin/config.pl
Checking prerequisites...
Looks good
FIXME: You need to manually install /home/int16h/MyDinah/conf/dinah.cron at the moment at bin/config.pl line 194.
Overwrite current httpd.conf? [n] y
Where is your apache LIBEXECDIR [/home/int16h/APACHE/libexec ]
/home/int16h/APACHE/libexec
Any other places to look in?
User to run as [nobody]
nobody
Port to bind to [80] 8080
Pid file [logs/httpd.pid ]
logs/httpd.pid
Error file [logs/error_log]
logs/error_log
How many instances do you want to run? [1]
1
Where is your gpg? [/usr/bin/gpg ]
/usr/bin/gpg
Written /home/int16h/MyDinah/conf/httpd.conf
Overwrite current my.cnf? [n] y
localhost
MySQL username? [cyberarmy ] root
MySQL password? [ ]
Written /home/int16h/MyDinah/conf/my.cnf
Sync your database schema? [n ]
Wenn ihr Fehler zum Ende des Skripts erhaltet, ignoriert sie einfach.
Bevor wir weitermachen, müssen wir eine Datenbank für Dinah anlegen.
# mysqladmin -p create cyberarmy
Wenn du den Server mit anderen Leuten teilst oder kein iptables-Skript laufen hast, willst du normalerweise einen normalen MySQL-Benutzer für Dinah's Datenbank erstellen. Da meine Box allerdings ziemlich abgesichert ist, werde ich den Default-root-Account benutzen.
Jetzt importieren wir Dinah's Datenbank-Schema:
# mysql -p -C cyberarmy < conf/scheme.sql
Toll! Jetzt haben wir endlich eine Dinah/CyberArmy-Datenbank-Struktur, die im Moment allerdings noch sehr sinnlos ist, da es keine User oder Admins gibt. Deshalb benutzen wir nun bootstrap.sql:
# mysql -p -C cyberarmy < conf/bootstrap.sql
Okay, jetzt können wir loslegen!
# make start
bin/dinahctl start
#1: started
Je nachdem, wie euer Apache eingestellt ist, müsst ihr eventuell Dinah's httpd.conf leicht abändern, falls ihr 'LoadModule'-Fehler erhaltet. Guckt dafür in die ~/MyDinah/conf/httpd.conf und wenn euch etwas seltsam vorkommt, modifiziert ihr es so:
LoadModule env_module /home/int16h/APACHE/libexec/mod_env.so
LoadModule config_log_module /home/int16h/APACHE/libexec/mod_log_config.so
LoadModule mime_module /home/int16h/APACHE/libexec/mod_mime.so
LoadModule dir_module /home/int16h/APACHE/libexec/mod_dir.so
# LoadModule rewrite_module
LoadModule access_module /home/int16h/APACHE/libexec/mod_access.so
Wenn die Fehler beseitigt worden sind, solltet ihr nun 'http://mydinah.net:8080 (oder wie ihr den Host eben genannt habt) öffnen und euch mit folgenden Daten einloggen können:
Username: dinah
Password: dinah
Ich hoffe dieser Schritt-für-Schritt-Anleitung war einfach zu folgen und jeder hat nun Dinah erfolgreich bei sich installiert. Vielleicht werde ich noch einen weiteren Text zu Dinah schreiben, der sich mehr mit dem Quelltext befassen wird.
Geschrieben von int16h. Eingereicht am 21. November 2007.
Übersetzt von kasi am 17. Januar 2008.
This article was originally published by CyberArmy.net in the CyberArmy Library. |
|
There are no replies to this post yet.
|