Webserver einrichten auf einem Dedicated Server


#1

Hallo,

heute erkläre ich euch wie man mit wenigen Mitteln einen funktionierenden Webserver aufsetzt. Und das ohne Zusatzprogramme wie Plesk oder ähnlichen Müll

Als erstes Installieren wir Mariadb

apt-get -y install mariadb-server mariadb-client
mysql_secure_installation

ab hier wird alles mit Enter und y bestätigt

nun Installieren wir einen Apache web Server

apt-get -y install apache2

nun können wir bereits die IP unseres Servers eingeben und erhalten die Startseite vom Apache.

Nun binden wir PHP 7.0 ein

apt-get -y install php7.0 libapache2-mod-php7.0

jetzte starten wir den apache einmal neu

service apache2 restart

Wenn Ihr wollt könnt Ihr nun auch die PHP Datei anzeigen lassen. Dafür erstellt Ihr einfach eine info.php

nano /var/www/html/info.php

und fügt ein

<?php

phpinfo();

wenn Ihr nun eure IP/info.php im Brwoser eingebt habt Ihr die Seite von PHP

Nun verbinden wir Mysql und PHP

apt-cache search php7.0

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl

und starten den apache wieder neu

service apache2 restart

nun können wir die Geschwindigkeit ein wenig erhöhen

apt-get -y install php7.0-opcache

apt-get -y install php-apcu

und starten den Apache neu

service apache2 restart

wenn wir nun die info php neu laden sehen wir mysqli funktionen

Wenn jemand unbedingt will kann man nun auch noch phpMyAdmin installieren um eine bessere kontrolle über die Datenbank zu haben.

apt-get -y install phpmyadmin

wir wählen hier apache aus, klicken auf yes und vergeben ein password

nun können wir mit unserer IP adresse/phpmyadmin/ auf das gewünschte Produkt zugreifen. Ich bin kein Freund von Oberflächen deswegen empfehle ich dies nicht.

natürlich können wir nun auch noch den root login für phpmyadmin aktiveren

echo "UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';FLUSH PRIVILEGES;" | mysql -u root -p

Alternativ können wir nun auch noch unser eigenes Openssl zertifikat erstellen um den Usern ein gefühl der Sicherheit zu geben

dafür erstellen wir einen ordner und wechseln hinein

mkdir /etc/apache2/ssl
cd /etc/apache2/ssl

erstellen uns einen Privat Key

openssl genrsa -out sslcert.key 2048

aus dem Key erstellen wir nun unsere CSR

openssl req -new -key sslcert.key -out sslcert.csr

jetzt könnt Ihr eure Daten entsprechend anpassen oder leer lassen.

jetzte erstellen wir aus der csr unser Zertifikat

openssl x509 -req -days 365 -in sslcert.csr -signkey sslcert.key -out sslcert.crt

aktiveren im apache unser SSL Modul

a2enmod ssl

und weisen den apache an den richtigen Port zu finden

nano /etc/apache2/ports.conf

das sollte dann ungefähr so aussehen

Listen 80
Listen 443 Listen 443

jetzt nurnoch eine Vhost Config für den SSL Port

nano /etc/apache2/sites-available/application-ssl.conf

hier hauen wir nun den Inhalt rein

<virtualhost>
DocumentRoot /var/www/application/public

ErrorLog /var/www/application/log/error.log
CustomLog /var/www/application/log/access.log combined

SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/sslcert.key
SSLCertificateFile /etc/apache2/ssl/sslcert.crt

<directory application="" public="" var="" www="">

    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

</directory>

und starten nun den Server neu

service apache2 restart

und schon haben wir einen vernünftig aufgebauten Server, Die Daten hochladne und die Datenbank erstellen sowie Importieren und fertig ist die Zauberei.


#2

Nicht apache sondern nginx nutzen.


#3

Bei nginx funktioniert die .htaccess nicht. Wir nutzen beide Webserver.


#4

wrathofkhan es geht hier um einsteiger Tutorials, und da erwartest du das ich mit einer Nginx Konfiguration anfange?

Eher net oder?


#5

Wieso denn nicht? nginx ist der wesenlich bessere Webserver und auch leicht zu konfigurieren da vieles intuitiv läuft. Meine Meinung.
Außerdem kann ich ja in nginx alles was apache auch kann nachrüsten. Muss man halt mit den dementsprechenden modulen selbst compilen. Geht alles wenn man nur will.


#6

apache2 finde ich intuitiver, da nur die index.html im root-Verzeichnis ausgetauscht werden muss.
Dann müssen die Dateien noch den Besitzer www-data haben und der Server läuft.