Tutorial: Aufsetzen eines Webservers über Debian Etch (root server, vserver)

Dieses Thema im Forum "Linux Probleme" wurde erstellt von Nico, 07.01.2008.

  1. Nico

    Nico Ehemaliges Teammitglied

    Dabei seit:
    28.10.2005
    Beiträge:
    6.675
    Zustimmungen:
    0


    ######## Tutorial von www.pc-heaven.de. #########
    ######## Mehr Tutorials auf www.pc-heaven.de ####





    Installieren eines Webservers über SSH2 (Debian Etch 4.0)

    Sooooooo Leute, heut gehts an das Installieren eines Webservers auf Debian Etch 4.0.

    Alles was ihr dafür braucht, ist:

    - Geduld
    - Eine Thermoskanne Kaffee
    - Putty (downloadbar hier: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)
    - Das Programm 'nano' auf dem Webserver. Installationsanleitung für nano siehe Anhang.
    - Filezilla 3 mit SFTP eingerichtet (Name: root, PW: rootpasswort, Host: Server-IP, Port:22, Methode: SFTP über SSH2) downloadbar

    hier: http://www.chip.de/downloads/c1_downloads_13011076.html


    (1) Installieren und konfigurieren von Apache2

    Als erstes wirds mal Zeit, dass wir den Apache Webserver überhaupt herunterladen und dann installieren. Dies ist bei Debian

    denkbar einfach, dazu reicht uns folgender Befehl:

    Code:
    apt-get install apache2
    Da wartet ihr, bis es fertig ist, und schon ist Apache installiert.

    Wenn ihr jetzt eure IP / Domain aufruft unter der der vServer / Root Server läuft, müsstet ihr eine HTML Seite mit "It Works!"

    sehen. Wenn ja, gehts weiter!

    Als erstes sollten wir mal das mit "It Works!" löschen.

    Dazu melden wir uns mit Filezilla 3 normal an und wechseln in den Ordner /var/www (um in den Hauptordner zu kommen, ist es nötig,

    oben auf ../ zu drücken, um den ordner /root zu verlassen) und löschen da den ordner /apache2-default.

    Damit wär der Ordner weg, doch die Weiterleitung ist immer noch da?!?

    Dazu müssen wir wissen, das Apache sogenannte Virtuelle Hosts (genannt VHOST) anlegt, die dazu dienen, verschiedene Domains auf

    verschiedene Ordner weiterzuleiten. Dies jedoch in einem Anderen Tutorial ;)

    Es gibt jedoch immer einen VHOST, der zurzeit auf das Verzeichnis /var/www zeigt und bei jedem aufruf, obgleich es IP oder Domain

    ist, angezeigt wird.

    Wir öffnen jetzt die Konfigurationsdatei des VHOST mitfolgendem Befehl:

    Code:
    nano /etc/apache2/sites-enabled/000-default
    Jetzt suchen wir einfach die Zeile:

    Code:
     RedirectMatch ^/$ /apache2-default/
    Die Ersetzen wir jetzt mit


    Code:
     #RedirectMatch ^/$ /apache2-default/
    und drücken STRG+O (gleichzeitig) damit nano die änderungen speichert. eventuell fragt nano auch noch, ob gespeichert werden soll,

    die bestätigt man dann mit Y!

    jetzt ein kleiner Haken: Nicht wie bei Windows üblich werden Veränderungen sofort übernommen, sondern erst nach einem Restart

    (Neustart) des Apache servers. Dies kann man folgendermaßen ausführen:

    Code:
    /etc/init.d/apache2 restart
    und fertig.

    Damit wär die Weiterleitung ausgeschaltet und du hast soeben Apache installiert! ;)

    (2) PHP5 installieren

    Jetzt haben wir zwar Apache, schön und gut.. Aber was ist mit PHP für PHP fähige dynamische Seiten?

    Ganz einfach. Da wir jetz Apache installiert und konfiguriert haben, reicht folgender Befehl:

    Code:
    apt-get install php5
    und dann ein Apache Restart. Weißt du etwa nicht mehr wie der geht? Da oben wars schonmal :p dann eben nochmal:

    Code:
    /etc/init.d/apache2 restart
    Und dann geht PHP.

    Am besten empfehle ich noch, die php5-GDLib zu installieren, die man für bestimme Anwendungen benötigt, wie WBB3 oder Joomla!.

    Dies geht auch mit einem Code:

    Code:
    apt-get install php5-gd
    Und fertig!

    (3) MySQL Server installieren

    Was nutzt jetzt aber PHP5 wenn wir kein MYSQL für ein Forum oder ein CMS haben? Keine sorge... MySQL geht genauso einfach.

    Auch wieder mit - wer hätts geahnt - einem Befehl:

    Code:
    apt-get install mysql-server
    und dann geht des auch.

    Wenn wir jetzt allerdings versuchen, mit PHP eine mysql verbindung aufzubauen, wird das nicht funktionieren, da PHP eine MySQL

    erweiterung benötigt.

    Diese installiert man folgendermaßen:

    Code:
    apt-get install php5-mysql
    Und dann wird des auch funktionieren.

    Einfach Apache neustarten, wenns nicht gleich funktioniert.

    Was, du hast schon wieder vergessen wie das geht?

    Code:
    /etc/init.d/apache2 restart
    Merks dir jetzt endlich mal!

    (4) Abschluss

    Jetzt haben wir schon alles was ein Webserver benötigt - eigentlich.

    Ganz nützlich ist auch phpmyadmin, das wir auch - wie gewohnt - mit einem Befehl installieren:

    Code:
    apt-get install phpmyadmin
    Nun nach dem Ausführen einfach

    http://deine-ip/phpmyadmin

    bzw.

    http://www.deine-domain.de/phpmyadmin

    aufrufen.

    Hierbei mit Phpmyadmin gleich ein ROOT passwort für MySQL setzen - MySQL ohne Root PW ist wie ein Sack Geld mitten auf einer

    Straße. Dies geht einfach:

    Phpmyadmin aufrufen -> im Hauptfenster unten auf "Rechte" klicken -> hinter "root" - "localhost" auf das Bearbeiten Symbol

    Klicken. Hier dann nach dem Feld "Passwort ändern" suchen, neues Passwort eintragen und dann auf das OK Knöpfchen ganz rechts

    klicken - fertig!

    Dies muss man eventuell beim benutzer "root" - "dein -host" oder "root" - "deine IP" wiederholen.

    Und damit haben wir au schon ein funktionierendes Phpmyadmin! Und gesichertes MYSQL!

    Was fehlt denn jetzt noch.. hmm...

    Eigentlich nichts.

    Dateien werden über SFTP hochgeladen, FTP Tutorial kommt auch noch irgendwann...

    (5) Anhang

    Probleme? -----> im Thread schreiben
    Fragen? -----> im Thread schreiben!
    Wie kann ich nano installieren ------> Im Thread... nein! Ich hab ja gesagt dass ich des extra sage^^

    Also des geht auch wieder mit apt-get, nämlich so:

    Code:
    apt-get install nano
    und dann isch des auch fertig.

    (6) Installieren von Sendmail

    Wie sicher schon viele bemerkt haben geht bei dieser Konfiguration die PHP Funktion mail() nicht. (Mail Versand per PHP)

    Dies kann einfach erreicht werden indem folgender Code ausgeführt wird:

    Code:
    apt-get install postfix
    Bei der Postfix Installation muss "Internetserver" als Zweck angegeben werden. So funktioniert Sendmail auf Anhieb!

    (7) Installieren von ProFTPd mit MySQL Unterstützung (FTP benutzer per MySQL)

    Zuersteinmal müssen wir wieder mit einem apt-get install befehl beginnen.

    Dies mal mit

    Code:
    apt-get install proftpd-mysql
    Bei der Installation das evt. auftretende Fenster mit OK bestätigen.

    Nun funktioniert das ganze natürlich noch nicht.

    Um FTP User per MySQL hinzufügen zu können, fehlt uns noch eine Verbindung ProFTPd <-> MySQL und natürlich ein Allround User mit dem die ganzen User auf dem Server laufen.

    Diesem FTP-User gehören später alle Ordner/Dateien im FTP bereich, sodass man keine spezifischen Rechte mehr für jeden einzelnen Benutzer setzen muss.

    DIesen legen wir also dann mal als erstes an mit einer UserID die nicht im System belegt ist. Ich hab hierbei einfach aufs Geratewohl die ID 2593 genommen. Vorher müssen wir allerdings eine Gruppe erstellen, in der wir den User "parken". Hierbei nehme ich auch meine ID 2593.

    Somit lauten die 2 Befehle:

    Code:
    groupadd -g 2593 ftpgroup
    Code:
    useradd -u 2593 -s /bin/false -d /bin/null -g ftpgroup ftpuser
    Hiermit haben wir nun also unsern FTPUser.

    Damit der auch auf alles zugreifen kann, müssen wir das FTP verzeichnis komplett dem Benutzer zuweisen. Dies geht mit dem Befehl

    Code:
    chown -hRv ftpuser:ftpgroup /ordner/ordner
    Wenn wir FTP benutzer für einen Webspace im Apache Verzeichnis /var/www erstellen wollen, dann geht das mit

    Code:
    chown -hRv ftpuser:ftpgroup /var/www
    Jetzt fehlt also nur noch die Verbindung ProFTPd <-> MySQL. UNd dies wird jetzt ein bisschen aufwändiger.

    Als erstes müssen wir im MYSQL einen User für ProFTPd erstellen. Hierbei bietet sich besonderes Phpmyadmin an: Man klickt auf SQL und gibt folgenden Befehl ein:

    [mysql]CREATE DATABASE ftp;
    GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO 'proftpd'@'localhost' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;[/mysql]

    Bitte das Passwort auch ersetzen!!

    Als nächstes legen wir dann (wieder in phpmyadmin über DB aus wählen -> Ftp -> SQL) die Tabellen an.

    PHP:
    CREATE TABLE ftpgroup    (
       
    groupname varchar(16NOT NULL default '',
       
    gid smallint(6NOT NULL default '2593',
       
    members varchar(16NOT NULL default '',
       
    KEY groupname (groupname)
       ) 
    TYPE=MyISAM COMMENT='ProFTP group table'CREATE TABLE ftpquotalimits    (
       
    name varchar(30) default NULL,
       
    quota_type enum('user','group','class','all'NOT NULL default 'user',
       
    per_session enum('false','true'NOT NULL default 'false',
       
    limit_type enum('soft','hard'NOT NULL default 'soft',
       
    bytes_in_avail int(10unsigned NOT NULL default '0',
       
    bytes_out_avail int(10unsigned NOT NULL default '0',
       
    bytes_xfer_avail int(10unsigned NOT NULL default '0',
       
    files_in_avail int(10unsigned NOT NULL default '0',
       
    files_out_avail int(10unsigned NOT NULL default '0',
       
    files_xfer_avail int(10unsigned NOT NULL default '0'
       
    TYPE=MyISAMCREATE TABLE ftpquotatallies    (
       
    name varchar(30NOT NULL default '',
       
    quota_type enum('user','group','class','all'NOT NULL default 'user',
       
    bytes_in_used int(10unsigned NOT NULL default '0',
       
    bytes_out_used int(10unsigned NOT NULL default '0',
       
    bytes_xfer_used int(10unsigned NOT NULL default '0',
       
    files_in_used int(10unsigned NOT NULL default '0',
       
    files_out_used int(10unsigned NOT NULL default '0',
       
    files_xfer_used int(10unsigned NOT NULL default '0'
       
    TYPE=MyISAMCREATE TABLE ftpuser    (
       
    id int(10unsigned NOT NULL auto_increment,
       
    userid varchar(32NOT NULL default '',
       
    passwd varchar(32NOT NULL default '',
       
    uid smallint(6NOT NULL default '2593',
       
    gid smallint(6NOT NULL default '2593',
       
    homedir varchar(255NOT NULL default '',
       
    shell varchar(16NOT NULL default '/sbin/nologin',
       
    count int(11NOT NULL default '0',
       
    accessed datetime NOT NULL default '0000-00-00 00:00:00',
       
    modified datetime NOT NULL default '0000-00-00 00:00:00',
       
    PRIMARY KEY (id),
    UNIQUE KEY userid (userid)
       ) 
    TYPE=MyISAM COMMENT='ProFTP user table';
    Hiermit sind wir dann im MYSQL Bereich fertig und können phpmyadmin zumachen. PUH! Erstmal ein SChluck aus unserer Kaffeekanne (siehe Utensilien die man benötigt ganz oben^^)

    Jetzt muss nur noch der proftpd.conf (/etc/proftpd/proftpd.conf) beigebracht werden, wie sie zu MySQL verbinden soll!

    Als allererstes aber müssen wir ProFTPd sagen, dass wir MySQL und nicht PostgreSQL benutzen.

    Dazu öffnen wir die modules.conf folgendermaßen:

    Code:
    nano /etc/proftpd/modules.conf
    Hier suchen wir nach folgender Stelle:

    Code:
    LoadModule mod_sql_postgres.c
    und machen davor ein # um es auszukommentieren und speichern dann mit STRG+O die Datei.

    Als nächstes nehmen wir uns die proftpd.conf mit dem Befehl

    Code:
    nano /etc/proftpd/proftpd.conf
    vor.

    Hierbei fügen wir folgende Sachen ganz am Ende der Datei ein:

    DABEI UNBEDINGT DRAUF ACHTEN DASS DAS PASSWORT (BEI "
    SQLConnectInfo ftp@localhost proftpd password" IN DAS PASSWORT GEÄNDERT WIRD DASS MAN FÜR DEN FTP BENUTZER IN MYSQL ANGELEGT HAT!

    Code:
    DefaultRoot ~
    
    
    # The passwords in MySQL are encrypted using CRYPT
    SQLAuthTypes            Plaintext Crypt
    SQLAuthenticate         users* groups*
    
    
    # used to connect to the database
    # databasename@host database_user user_password
    SQLConnectInfo  ftp@localhost proftpd password
    
    
    # Here we tell ProFTPd the names of the database columns in the "usertable"
    # we want it to interact with. Match the names with those in the db
    SQLUserInfo     ftpuser userid passwd uid gid homedir shell
    
    # Here we tell ProFTPd the names of the database columns in the "grouptable"
    # we want it to interact with. Again the names match with those in the db
    SQLGroupInfo    ftpgroup groupname gid members
    
    # set min UID and GID - otherwise these are 999 each
    SQLMinID        500
    
    # create a user's home directory on demand if it doesn't exist
    SQLHomedirOnDemand on
    
    # Update count every time user logs in
    SQLLog PASS updatecount
    SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
    
    # Update modified everytime user uploads or deletes a file
    SQLLog  STOR,DELE modified
    SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
    
    # User quotas
    # ===========
    QuotaEngine on
    QuotaDirectoryTally on
    QuotaDisplayUnits Mb
    QuotaShowQuotas on
    
    SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'"
    
    SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'"
    
    SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies
    
    SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies
    
    QuotaLimitTable sql:/get-quota-limit
    QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally
    
    SQLNamedQuery gettally  SELECT "ROUND((bytes_in_used/1048576),2) FROM ftpquotatallies WHERE name='%u'"
    SQLNamedQuery getlimit  SELECT "ROUND((bytes_in_avail/1048576),2) FROM ftpquotalimits WHERE name='%u'"
    SQLNamedQuery getfree   SELECT "ROUND(((ftpquotalimits.bytes_in_avail-ftpquotatallies.bytes_in_used)/1048576),2) FROM ftpquotalimits,ftpquotatallies WHERE ftpquotalimits.name = '%u' AND ftpquotatallies.name = '%u'"
    
    SQLShowInfo   LIST    "226" "Used %{gettally}MB from %{getlimit}MB. You have %{getfree}MB available space."
    
    
    RootLogin off
    RequireValidShell off
    Dies reicht dann auch mit der Proftpd.conf.

    Dann öffnen wir wieder phpmyadmin und tragen unsere FTP Gruppe ein. (DB auswählen -> ftp -> SQL)

    PHP:
    INSERT INTO `ftpgroup`    (`groupname`, `gid`, `members`) VALUES ('ftpgroup'2593'ftpuser');
    Jetzt können wir User hinzufügen.

    Dies geht ganz einfach mit dem BEfehl (DB Auswählen -> ftp -> SQL):

    PHP:
    INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`,    `count`, `accessed`, `modified`) VALUES (1'BENUTZERNAME''PASSWORT'25932593,    '/VERZEICHNIS/VERZEICHNIS''/sbin/nologin'0'''');
    Bitte genau drauf achten dass die erfoderlichen Daten ersetzt werden.

    Nach der ganzen Prozedur den ProFTPd Server neustarten mit

    Code:
    /etc/init.d/proftpd restart
    Und dann sind wir fertig mit unserem FTP Usern verarbeiten.. auf diese art können ganz einfach neue hinzugefügt werden! Es sollte nur beachtet werden dass die Shell (/sbin/nologin) und die gid/uid (beidesmal 2593) nicht verändert werden.

    Außerdem sollte beachtet werden dass die User auf das Verzeichnis dass wir ihnen zuweisen Rechte haben - im zweifelsfall also ein
    Code:
     chown -hRv ftpuser:ftpgroup /verzeichnis/verzeichnis 
    Ausführen.

    --------------------
    (C) 2007-2008 PC-Heaven.DE. Angeboten unter Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported lizenz
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. #2 simpson-fan, 18.01.2008
    simpson-fan

    simpson-fan Erfahrener Benutzer

    Dabei seit:
    12.04.2006
    Beiträge:
    3.581
    Zustimmungen:
    0
    Hi!

    Du musst dir zuerst root-Rechte geben, da man unter Linux standardmäßig als Benutzer mit stark eingeschränkten Rechen arbeitet und zum Beispiel keine Pakete installieren darf.

    Befehl unter Debian, man bekommt root-Rechte. Man kann nachher mehrere Befehle als root ausführen.
    Code:
    su
    root-Passwort eingeben (Es erscheinen keine Sterne oder Buchstaben. Einfach blind eingeben und Enter drücken.
    apt-get install apache2
    Unter Ubuntu gibt es kein root-Passwort. Vor jedem Befehl welcher root-Rechte benötigt muss sudo an den Anfang gesetzt werden, da sudo nur für den aktuellen Befehl gilt.
    Code:
    sudo apt-get install apache2
    Benutzer-Passwort eingeben
    Mit den anderen Paketen ist das ganze genauso.

    EDIT: Ich will ja nicht den ganze Zeit rumnörgeln, allerdings ist es auch möglich alle Pakete in einem zu installieren.

    Code:
    apt-get install apache2 php5 php5-gd mysql-server phpmyadmin
    Ist um einiges effektiver

    Gruß simpson-fan
     
  4. #3 cracker726, 16.03.2008
    cracker726

    cracker726 Neuer Benutzer

    Dabei seit:
    16.03.2008
    Beiträge:
    1
    Zustimmungen:
    0
    hallo,

    Ich wollte auf mein Rootserver einen Webserver aufsetzen und da hab ich dein tutorial gesehen und hab des genauso gemacht wie du Nico das hier erklärt hast doch irgendwie kann ich mich jetzt nicht mehr mit SSH einloggen da kommt dann immer das der Benutzername falsch ist. Das hier sollte meine page werden kannste ja mal anschaun wie se jetzt aussieht www.tng-multigaming.de. Und auch wenn ich jetzt auf die page geh dann kommt da zwar phpmyadmin aber da kommt dann immer der benutzername ist falsch so wie das passwort
     
  5. Nico

    Nico Ehemaliges Teammitglied

    Dabei seit:
    28.10.2005
    Beiträge:
    6.675
    Zustimmungen:
    0
  6. AdMan

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
Thema: Tutorial: Aufsetzen eines Webservers über Debian Etch (root server, vserver)
Besucher kamen mit folgenden Suchen
  1. debian webserver

    ,
  2. debian webserver einrichten

    ,
  3. webserver debian

    ,
  4. debian webserver tutorial,
  5. debian als webserver,
  6. debian webserver aufsetzen,
  7. debian webserver installieren,
  8. debian webserver einrichten tutorial,
  9. webserver aufsetzen,
  10. linux webserver aufsetzen,
  11. debian webserver howto,
  12. debian als webserver einrichten,
  13. linux webserver einrichten anleitung,
  14. webserver auf debian,
  15. debian web server,
  16. linux webserver einrichten,
  17. debian web-server,
  18. webserver mit debian,
  19. debian tutorial,
  20. webserver auf root einrichten ,
  21. auf einen root ein webserver aufspielen,
  22. root server einrichten tutorial,
  23. debian what webserver,
  24. webserver auf root installieren,
  25. webserver tutorial
Die Seite wird geladen...

Tutorial: Aufsetzen eines Webservers über Debian Etch (root server, vserver) - Ähnliche Themen

  1. Windows Server 2012R2 Problem

    Windows Server 2012R2 Problem: Moin, wir haben das Problem, das bei Aufforderung das Benutzerpasswort zu ändern in der Windowsumgebung, die Fehlermeldung: "Das System hat...
  2. Samp Server

    Samp Server: Mein freund und ich haben einen samp server um genau zu sein einen rpg server dor könnt ihr in eine rolle schlüpfen weiteres erfährt ihr auf dem...
  3. Terminal Server von zu Hause nutzen!

    Terminal Server von zu Hause nutzen!: Hallöchen! Ich habe wahrscheinlich eine etwas ungewöhnliche Frage: Auf der Arbeit haben wir Laptops, mit denen wir uns über den TerminalServer...
  4. F-Secure Server Security Web Console nicht erreichbar

    F-Secure Server Security Web Console nicht erreichbar: Hallo, ich habe das Problem, dass ich "Die Seite kann nicht angezeigt werden " gezeigt bekomme, wenn ich auf die Security Web Console...
  5. Dateien von Linux vServer auf Google Drive hochladen?

    Dateien von Linux vServer auf Google Drive hochladen?: Hallo, ist es eigentlich irgendwie möglich, dass man Dateien direkt von einem vServer (Linux, verbunden eben mit putty) auf sein Google...