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- Verzeichnis zugreifen 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. Allerdings 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.
super Tutorial 🙂
wie kann ich einen zweiten user anlegen, der alle verzeichnisse sehen darf?
Mit diesem Befehl und im Anschluß einfach nur den Anweisungen folgen.
adduser USER-Name –shell /bin/false –home /var/www/upload <<Verzeichnis Anpassen <<
Danke an alle. Ich fand, dass er suchte!