HowTo: Apache2 Webserver inkl. MySQL, PHP5, phpMyAdmin und FTP einrichten.

Um auf dem eigenen Root- oder vServer eine Website zu betreiben benötigt man einen Webserver. Der bekannteste ist Apache2. Daher klären wir in diesem Tutorial, wie man einen Apache2 Server inklusive MySQL, PHP5, phpMyAdmin und FTP einrichtet und richtig konfiguriert.

Zuerst melden wir uns als root an unserem Server an und führen ein Update aus, um sicher zu gehen, dass das System aktuell ist.

apt-get update && apt-get upgrade

Die Installation evt. verfügbarer Updates bestätigen wir mit “Y”.

Nun installieren wir die benötigten Pakete für unseren Webserver per apt-get.

apt-get install apache2 php5 mysql-server php5-mysql phpmyadmin proftpd

Die Installation bestätigen wir mit “Y”.

Bei der Pakete Konfiguration des MySQL Servers, welche wärend der Installation erscheint müssen wir ein MySQL root Passwort festlegen.
Damit können wir und später ins phpMyAdmin einloggen.

Bei der ProFTPd Konfiguration wählen wir den Servermodus bzw. standalone aus.

In der phpMyAdmin Konfiguration muss apache2 gewählt werden.

Wenn die Installation der Pakete abgeschlossen ist müssen wir noch eine Congif eine andere einfügen, damit phpMyAdmin funktioniert und per yourdomain.com/phpmyadmin aufrufbar ist.

echo include /etc/phpmyadmin/apache.conf >> /etc/apache2/apache2.conf

Nun aktivieren wir noch mod_rewrite für .htaccess Features.

a2enmod rewrite

Nun starten wir den Apache2 Webserver neu, um die Änderung Wirksam zu machen.

/etc/init.d/apache2 restart

Nun können wir phpMyAdmin per yourdomain.com/phpmyadmin oder ip/phpmyadmin aufrufen.

Jetzt erstellen wir einen User, welcher sein Home- Verzeichnis in /var/www hat. Wir nennen diesen Beispielsweise “web”.

adduser web --home /var/www
passwd web
chown -R web:www-data /var/www

Mit diesem User können wir uns nun an unserem FTP Server einloggen.

Server: IP Adresse oder Domain
User: web
Passwort: *****
Port: 21

In das Verzeichnis /var/www können wir dann per FTP unser Website CMS o.ä. laden.

Prinzipiell ist die Installation hiermit abgeschlossen. Nun werden wir Apache2, MySQL und ProFTPd noch ein wenig konfigurieren, damit der Webserver sicherer ist.

Zuerst öffnen wir die Apache2 default mit nano und überprüfen diese.

nano /etc/apache2/sites-available/default

Die Inhalt muss evt. angepasst werden. Folgende Werte sollten gesetzt sein:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

Danach öffnen wir die Datei “security” unter /etc/apache2/conf.d

nano /etc/apache2/conf.d/security

und fügen folgendes ein, bzw passen die Werte an:

ServerTokens Prod
ServerSignature Off
TraceEnable Off
Options -Indexes 

Nachdem wir alles gespeichert haben, starten wir den Apache2 Webserver neu.

/etc/init.d/apache2 restart

Als nächstes machen wir uns an die MySQL Konfiguration.

mysql_secure_installation

Hier setzten wir folgende Werte:

login remotely, remove test database (and access to it), reload privilege tables

Zuletzt sorgen wir nch dafür, dass man per FTP nur auf das eigene Home- Vereichnis zugeifen kann.

nano /etc/proftpd/proftpd.conf

und setzten

DefaultRoot ~

Jetzt noch ProFTPd neu starten

/etc/init.d/proftpd restart

Nun kann man die eigene Website online bringen. Alleridngs sollte man die Dienste wie PHP, MySQL, Apache2 und ProFTPd noch nach seinen bedürfnissen konfigurieren. Da wir nur eine Grundlegende Sicherheit gesorgt haben, sollte man sich auch hierzu noch informieren.

Bei Fragen oder Anregungen darf gerne ein Kommentar hinterlassen werden.