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

Computer Forum

Zurück   Computer Forum - PC Forum - ModernBoard.de > Computerprobleme > Linux Probleme


Linux Probleme Linux Forum mit Diskussionen zu Konfigurationsprobleme, Treiberkonflikte, Kernel-Fragen, Installationsschwierigkeiten u.v.m.

RB

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


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Ansicht
Alt 07.01.2008, 00:43   #1 (permalink)
Erfahrener Benutzer
 
Benutzerbild von Nico
 
Registriert seit: 28.10.2005
Beiträge: 6.669
Standard Tutorial: Aufsetzen eines Webservers über Debian Etch (root server, vserver)



######## 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-Code:
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-Code:
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-Code:
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
__________________

"And, in the end, the love you take/ Is equal to the love you make."
- Paul McCartney
Nico ist offline   Mit Zitat antworten

Alt 18.01.2008, 18:31   #2 (permalink)
Erfahrener Benutzer
 
Benutzerbild von simpson-fan
 
Registriert seit: 12.04.2006
Beiträge: 3.579
Standard RE: Tutorial: Aufsetzen eines Webservers über Debian Etch (root server, vserver)

Zitat:
Original von Nico
Code:
apt-get install apache2
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
simpson-fan ist offline   Mit Zitat antworten
Alt 16.03.2008, 12:32   #3 (permalink)
Neuer Benutzer
 
Registriert seit: 16.03.2008
Beiträge: 1
Standard

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
cracker726 ist offline   Mit Zitat antworten
Alt 13.07.2008, 15:37   #4 (permalink)
Erfahrener Benutzer
Themenstarter
 
Benutzerbild von Nico
 
Registriert seit: 28.10.2005
Beiträge: 6.669
Standard Tutorial: Aufsetzen eines Webservers über Debian Etch (root server, vserver)

Habs mal aktualisiert wie es auf PCH schon ist (übersichtlicher)

http://www.pc-heaven.de/tutorials/ho...tch-per-shell/
__________________

"And, in the end, the love you take/ Is equal to the love you make."
- Paul McCartney
Nico ist offline   Mit Zitat antworten
Antwort

RB

Empfehlung:

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

Lesezeichen


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen für: Tutorial: Aufsetzen eines Webservers über Debian Etch (root server, vserver)
Thema Autor Forum Antworten Letzter Beitrag
Debian über RealVNC fernsteuern Dutch_OnE Linux Probleme 5 12.05.2008 10:42
Tutorial: Aufsetzen eines Webservers mithilfe LAMPP (vserver, root server) Nico Linux Probleme 9 18.01.2008 19:31
Windows ROOT SERVER von STRATO DanteKingdomRo3 Windows Server 2003 Hilfe 2 26.08.2007 03:34
Root Server WCoast Webmaster Hilfe / Programmierer Forum 5 09.09.2006 17:32
Root-Server verlinken. Josch Webmaster Hilfe / Programmierer Forum 4 12.06.2006 15:23

Zurück   Computer Forum - PC Forum - ModernBoard.de > Computerprobleme > Linux Probleme

Powered by vBadvanced CMPS v3.2.2
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr.
Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO 3.6.0


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